diff options
author | kmoore | 2011-08-08 12:01:14 +0000 |
---|---|---|
committer | kmoore | 2011-08-08 12:01:14 +0000 |
commit | 568e8d7cb85e772d1f07cd163ac104efc796c8d2 (patch) | |
tree | adb19bcfc2295114d0758c32326d3245c1b4c28a /jpa/tests | |
parent | 023e134d493ffda496708705d70e8b459f2972bb (diff) | |
download | webtools.dali-568e8d7cb85e772d1f07cd163ac104efc796c8d2.tar.gz webtools.dali-568e8d7cb85e772d1f07cd163ac104efc796c8d2.tar.xz webtools.dali-568e8d7cb85e772d1f07cd163ac104efc796c8d2.zip |
added resource model for multi-tenancy support
Diffstat (limited to 'jpa/tests')
6 files changed, 487 insertions, 2 deletions
diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/META-INF/MANIFEST.MF index 4b5094dd48..4ca6e6cbae 100644 --- a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/META-INF/MANIFEST.MF +++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/META-INF/MANIFEST.MF @@ -43,4 +43,5 @@ Export-Package: org.eclipse.jpt.jpa.eclipselink.core.tests.internal;x-internal:= org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.context;x-internal:=true, org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.context.java;x-internal:=true, org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.context.orm;x-internal:=true, - org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.context.persistence;x-internal:=true + org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.context.persistence;x-internal:=true, + org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_3.resource.java;x-internal:=true diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/JptJpaEclipselinkCoreResourceModelTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/JptJpaEclipselinkCoreResourceModelTests.java index dea557ce8f..8ba5b3e3f3 100644 --- a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/JptJpaEclipselinkCoreResourceModelTests.java +++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/JptJpaEclipselinkCoreResourceModelTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. + * Copyright (c) 2007, 2011 Oracle. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -15,6 +15,7 @@ import junit.framework.TestCase; import junit.framework.TestSuite; import org.eclipse.jpt.jpa.eclipselink.core.tests.internal.JptJpaEclipseLinkCoreTests; import org.eclipse.jpt.jpa.eclipselink.core.tests.internal.resource.java.JptEclipseLinkCoreJavaResourceModelTests; +import org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_3.resource.java.JptEclipseLink2_3CoreJavaResourceModelTests; /** * Required Java system property: @@ -27,6 +28,7 @@ public class JptJpaEclipselinkCoreResourceModelTests extends TestCase TestSuite suite = new TestSuite(JptJpaEclipselinkCoreResourceModelTests.class.getName()); if(JptJpaEclipseLinkCoreTests.requiredJarsExists()) { suite.addTest(JptEclipseLinkCoreJavaResourceModelTests.suite()); + suite.addTest(JptEclipseLink2_3CoreJavaResourceModelTests.suite()); } else { suite.addTest(TestSuite.warning(JptJpaEclipseLinkCoreTests.buildMissingJarErrorMessage())); diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_3/resource/java/EclipseLink2_3JavaResourceModelTestCase.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_3/resource/java/EclipseLink2_3JavaResourceModelTestCase.java new file mode 100644 index 0000000000..748e806fe1 --- /dev/null +++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_3/resource/java/EclipseLink2_3JavaResourceModelTestCase.java @@ -0,0 +1,34 @@ +/******************************************************************************* + * Copyright (c) 2011 Oracle. All rights reserved. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0, which accompanies this distribution + * and is available at http://www.eclipse.org/legal/epl-v10.html. + * + * Contributors: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_3.resource.java; + +import org.eclipse.jpt.common.core.AnnotationProvider; +import org.eclipse.jpt.jpa.core.internal.GenericJpaAnnotationDefinitionProvider; +import org.eclipse.jpt.jpa.core.internal.JpaAnnotationProvider; +import org.eclipse.jpt.jpa.core.tests.internal.resource.java.JpaJavaResourceModelTestCase; +import org.eclipse.jpt.jpa.eclipselink.core.internal.v2_3.EclipseLink2_3JpaAnnotationDefinitionProvider; + +public class EclipseLink2_3JavaResourceModelTestCase extends JpaJavaResourceModelTestCase +{ + + public static final String ECLIPSELINK_ANNOTATIONS_PACKAGE_NAME = "org.eclipse.persistence.annotations"; //$NON-NLS-1$ + + public EclipseLink2_3JavaResourceModelTestCase(String name) { + super(name); + } + + @Override + protected AnnotationProvider buildAnnotationProvider() { + return new JpaAnnotationProvider( + GenericJpaAnnotationDefinitionProvider.instance(), + EclipseLink2_3JpaAnnotationDefinitionProvider.instance()); + } + +} diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_3/resource/java/EclipseLinkTenantDiscriminatorColumnTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_3/resource/java/EclipseLinkTenantDiscriminatorColumnTests.java new file mode 100644 index 0000000000..aabb0d642e --- /dev/null +++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_3/resource/java/EclipseLinkTenantDiscriminatorColumnTests.java @@ -0,0 +1,330 @@ +/******************************************************************************* + * Copyright (c) 2011 Oracle. All rights reserved. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0, which accompanies this distribution + * and is available at http://www.eclipse.org/legal/epl-v10.html. + * + * Contributors: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_3.resource.java; + +import java.util.Iterator; +import org.eclipse.jdt.core.ICompilationUnit; +import org.eclipse.jpt.common.core.resource.java.JavaResourceType; +import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; +import org.eclipse.jpt.jpa.core.resource.java.DiscriminatorType; +import org.eclipse.jpt.jpa.core.resource.java.JPA; +import org.eclipse.jpt.jpa.eclipselink.core.v2_3.resource.java.EclipseLink2_3; +import org.eclipse.jpt.jpa.eclipselink.core.v2_3.resource.java.EclipseLinkTenantDiscriminatorColumnAnnotation; + +@SuppressWarnings("nls") +public class EclipseLinkTenantDiscriminatorColumnTests extends EclipseLink2_3JavaResourceModelTestCase { + + private static final String COLUMN_NAME = "MY_COLUMN"; + private static final String COLUMN_COLUMN_DEFINITION = "COLUMN_DEFINITION"; + private static final String COLUMN_CONTEXT_PROPERTY = "eclipselink.foo-id"; + private static final String COLUMN_TABLE = "MY_TABLE"; + + public EclipseLinkTenantDiscriminatorColumnTests(String name) { + super(name); + } + + private ICompilationUnit createTestTenantDiscriminatorColumn() throws Exception { + return this.createTestType(new DefaultAnnotationWriter() { + @Override + public Iterator<String> imports() { + return new ArrayIterator<String>(EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + } + @Override + public void appendTypeAnnotationTo(StringBuilder sb) { + sb.append("@TenantDiscriminatorColumn"); + } + }); + } + + private ICompilationUnit createTestTenantDiscriminatorColumnWithName() throws Exception { + return this.createTestType(new DefaultAnnotationWriter() { + @Override + public Iterator<String> imports() { + return new ArrayIterator<String>(EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + } + @Override + public void appendTypeAnnotationTo(StringBuilder sb) { + sb.append("@TenantDiscriminatorColumn(name = \"" + COLUMN_NAME + "\")"); + } + }); + } + + private ICompilationUnit createTestTenantDiscriminatorColumnWithColumnDefinition() throws Exception { + return this.createTestType(new DefaultAnnotationWriter() { + @Override + public Iterator<String> imports() { + return new ArrayIterator<String>(EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + } + @Override + public void appendTypeAnnotationTo(StringBuilder sb) { + sb.append("@TenantDiscriminatorColumn(columnDefinition = \"" + COLUMN_COLUMN_DEFINITION + "\")"); + } + }); + } + + private ICompilationUnit createTestTenantDiscriminatorColumnWithContextProperty() throws Exception { + return this.createTestType(new DefaultAnnotationWriter() { + @Override + public Iterator<String> imports() { + return new ArrayIterator<String>(EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + } + @Override + public void appendTypeAnnotationTo(StringBuilder sb) { + sb.append("@TenantDiscriminatorColumn(contextProperty = \"" + COLUMN_CONTEXT_PROPERTY + "\")"); + } + }); + } + + private ICompilationUnit createTestTenantDiscriminatorColumnWithTable() throws Exception { + return this.createTestType(new DefaultAnnotationWriter() { + @Override + public Iterator<String> imports() { + return new ArrayIterator<String>(EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + } + @Override + public void appendTypeAnnotationTo(StringBuilder sb) { + sb.append("@TenantDiscriminatorColumn(table = \"" + COLUMN_TABLE + "\")"); + } + }); + } + + private ICompilationUnit createTestTenenatDiscriminatorColumnWithDiscriminatorType() throws Exception { + return this.createTestType(new DefaultAnnotationWriter() { + @Override + public Iterator<String> imports() { + return new ArrayIterator<String>(EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN, JPA.DISCRIMINATOR_TYPE); + } + @Override + public void appendTypeAnnotationTo(StringBuilder sb) { + sb.append("@TenantDiscriminatorColumn(discriminatorType = DiscriminatorType.CHAR)"); + } + }); + } + + private ICompilationUnit createTestColumnWithIntElement(final String intElement) throws Exception { + return this.createTestType(new DefaultAnnotationWriter() { + @Override + public Iterator<String> imports() { + return new ArrayIterator<String>(EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + } + @Override + public void appendTypeAnnotationTo(StringBuilder sb) { + sb.append("@TenantDiscriminatorColumn(" + intElement + " = 5)"); + } + }); + } + + private ICompilationUnit createTestColumnWithBooleanElement(final String booleanElement) throws Exception { + return this.createTestType(new DefaultAnnotationWriter() { + @Override + public Iterator<String> imports() { + return new ArrayIterator<String>(EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + } + @Override + public void appendTypeAnnotationTo(StringBuilder sb) { + sb.append("@TenantDiscriminatorColumn(" + booleanElement + " = true)"); + } + }); + } + + public void testGetName() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumnWithName(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + assertNotNull(column); + assertEquals(COLUMN_NAME, column.getName()); + } + + public void testGetNull() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumn(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + assertNotNull(column); + assertNull(column.getName()); + assertNull(column.getDiscriminatorType()); + assertNull(column.getColumnDefinition()); + } + + public void testSetName() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumn(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + + assertNotNull(column); + assertNull(column.getName()); + + column.setName("Foo"); + assertEquals("Foo", column.getName()); + + assertSourceContains("@TenantDiscriminatorColumn(name = \"Foo\")", cu); + } + + public void testSetNameNull() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumnWithName(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + + assertEquals(COLUMN_NAME, column.getName()); + + column.setName(null); + assertNull(column.getName()); + + assertSourceDoesNotContain("(name", cu); + } + + public void testGetColumnDefinition() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumnWithColumnDefinition(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + assertEquals(COLUMN_COLUMN_DEFINITION, column.getColumnDefinition()); + } + + public void testSetColumnDefinition() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumn(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + + assertNotNull(column); + assertNull(column.getColumnDefinition()); + + column.setColumnDefinition("Foo"); + assertEquals("Foo", column.getColumnDefinition()); + + assertSourceContains("@TenantDiscriminatorColumn(columnDefinition = \"Foo\")", cu); + + + column.setColumnDefinition(null); + assertSourceDoesNotContain("(columnDefinition", cu); + } + + public void testGetLength() throws Exception { + ICompilationUnit cu = this.createTestColumnWithIntElement("length"); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + + assertEquals(Integer.valueOf(5), column.getLength()); + } + + public void testSetLength() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumn(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + + assertNotNull(column); + assertNull(column.getLength()); + + column.setLength(Integer.valueOf(5)); + assertEquals(Integer.valueOf(5), column.getLength()); + + assertSourceContains("@TenantDiscriminatorColumn(length = 5)", cu); + + column.setLength(null); + assertSourceDoesNotContain("(length", cu); + } + + public void testGetDiscriminatorType() throws Exception { + ICompilationUnit cu = this.createTestTenenatDiscriminatorColumnWithDiscriminatorType(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + assertEquals(DiscriminatorType.CHAR, column.getDiscriminatorType()); + } + + public void testSetDiscriminatorType() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumn(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + + assertNull(column.getDiscriminatorType()); + + column.setDiscriminatorType(DiscriminatorType.INTEGER); + assertEquals(DiscriminatorType.INTEGER, column.getDiscriminatorType()); + + assertSourceContains("@TenantDiscriminatorColumn(discriminatorType = INTEGER)", cu); + + column.setDiscriminatorType(null); + assertSourceDoesNotContain("(discriminatorType", cu); + } + + public void testGetContextProperty() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumnWithContextProperty(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + assertEquals(COLUMN_CONTEXT_PROPERTY, column.getContextProperty()); + } + + public void testSetContextProperty() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumn(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + + assertNotNull(column); + assertNull(column.getContextProperty()); + + column.setContextProperty("Foo"); + assertEquals("Foo", column.getContextProperty()); + + assertSourceContains("@TenantDiscriminatorColumn(contextProperty = \"Foo\")", cu); + + + column.setContextProperty(null); + assertSourceDoesNotContain("(contextProperty", cu); + } + + public void testGetTable() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumnWithTable(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + assertEquals(COLUMN_TABLE, column.getTable()); + } + + public void testSetTable() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumn(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + + assertNotNull(column); + assertNull(column.getTable()); + + column.setTable("Foo"); + assertEquals("Foo", column.getTable()); + + assertSourceContains("@TenantDiscriminatorColumn(table = \"Foo\")", cu); + + + column.setTable(null); + assertSourceDoesNotContain("(table", cu); + } + + public void testGetPrimaryKey() throws Exception { + ICompilationUnit cu = this.createTestColumnWithBooleanElement("primaryKey"); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + + assertEquals(Boolean.TRUE, column.getPrimaryKey()); + } + + public void testSetPrimaryKey() throws Exception { + ICompilationUnit cu = this.createTestTenantDiscriminatorColumn(); + JavaResourceType resourceType = buildJavaResourceType(cu); + EclipseLinkTenantDiscriminatorColumnAnnotation column = (EclipseLinkTenantDiscriminatorColumnAnnotation) resourceType.getAnnotation(0, EclipseLink2_3.TENANT_DISCRIMINATOR_COLUMN); + + assertNotNull(column); + assertNull(column.getPrimaryKey()); + + column.setPrimaryKey(Boolean.FALSE); + assertEquals(Boolean.FALSE, column.getPrimaryKey()); + + assertSourceContains("@TenantDiscriminatorColumn(primaryKey = false)", cu); + + column.setPrimaryKey(null); + assertSourceDoesNotContain("primaryKey", cu); + } + +} diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_3/resource/java/EclipselinkMultitenantAnnotationTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_3/resource/java/EclipselinkMultitenantAnnotationTests.java new file mode 100644 index 0000000000..a67b1cd97b --- /dev/null +++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_3/resource/java/EclipselinkMultitenantAnnotationTests.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2011 Oracle. All rights reserved. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0, which accompanies this distribution + * and is available at http://www.eclipse.org/legal/epl-v10.html. + * + * Contributors: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_3.resource.java; + +import java.util.Iterator; +import org.eclipse.jdt.core.ICompilationUnit; +import org.eclipse.jpt.common.core.resource.java.JavaResourceType; +import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; +import org.eclipse.jpt.jpa.eclipselink.core.v2_3.resource.java.EclipseLink2_3; +import org.eclipse.jpt.jpa.eclipselink.core.v2_3.resource.java.EclipseLinkMultitenantAnnotation; +import org.eclipse.jpt.jpa.eclipselink.core.v2_3.resource.java.MultitenantType; + +@SuppressWarnings("nls") +public class EclipselinkMultitenantAnnotationTests extends EclipseLink2_3JavaResourceModelTestCase { + + public EclipselinkMultitenantAnnotationTests(String name) { + super(name); + } + + private ICompilationUnit createTestMultitenant() throws Exception { + return this.createTestType(new DefaultAnnotationWriter() { + @Override + public Iterator<String> imports() { + return new ArrayIterator<String>(EclipseLink2_3.MULTITENANT); + } + @Override + public void appendTypeAnnotationTo(StringBuilder sb) { + sb.append("@Multitenant"); + } + }); + } + + private ICompilationUnit createTestMultitenantWithValue() throws Exception { + return this.createTestType(new DefaultAnnotationWriter() { + @Override + public Iterator<String> imports() { + return new ArrayIterator<String>(EclipseLink2_3.MULTITENANT, EclipseLink2_3.MULTITENANT_TYPE); + } + @Override + public void appendTypeAnnotationTo(StringBuilder sb) { + sb.append("@Multitenant(MultitenantType.SINGLE_TABLE)"); + } + }); + } + + public void testMultitenant() throws Exception { + ICompilationUnit cu = this.createTestMultitenant(); + JavaResourceType resourceType = buildJavaResourceType(cu); + + EclipseLinkMultitenantAnnotation multitenant = (EclipseLinkMultitenantAnnotation) resourceType.getAnnotation(EclipseLink2_3.MULTITENANT); + assertNotNull(multitenant); + } + + public void testGetValue() throws Exception { + ICompilationUnit cu = this.createTestMultitenantWithValue(); + JavaResourceType resourceType = buildJavaResourceType(cu); + + EclipseLinkMultitenantAnnotation multitenant = (EclipseLinkMultitenantAnnotation) resourceType.getAnnotation(EclipseLink2_3.MULTITENANT); + assertEquals(MultitenantType.SINGLE_TABLE, multitenant.getValue()); + } + + public void testSetValue() throws Exception { + ICompilationUnit cu = this.createTestMultitenantWithValue(); + JavaResourceType resourceType = buildJavaResourceType(cu); + + EclipseLinkMultitenantAnnotation multitenant = (EclipseLinkMultitenantAnnotation) resourceType.getAnnotation(EclipseLink2_3.MULTITENANT); + assertEquals(MultitenantType.SINGLE_TABLE, multitenant.getValue()); + + multitenant.setValue(MultitenantType.TABLE_PER_TENANT); + assertEquals(MultitenantType.TABLE_PER_TENANT, multitenant.getValue()); + + assertSourceContains("@Multitenant(TABLE_PER_TENANT)", cu); + + multitenant.setValue(null); + assertNull(multitenant.getValue()); + + assertSourceDoesNotContain("(TABLE_PER_TENANT)", cu); + assertSourceContains("@Multitenant", cu); + assertSourceDoesNotContain("@Multitenant(", cu); + } +} diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_3/resource/java/JptEclipseLink2_3CoreJavaResourceModelTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_3/resource/java/JptEclipseLink2_3CoreJavaResourceModelTests.java new file mode 100644 index 0000000000..bd2c48691e --- /dev/null +++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_3/resource/java/JptEclipseLink2_3CoreJavaResourceModelTests.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2011 Oracle. All rights reserved. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0, which accompanies this distribution + * and is available at http://www.eclipse.org/legal/epl-v10.html. + * + * Contributors: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_3.resource.java; + +import junit.framework.Test; +import junit.framework.TestSuite; + +public class JptEclipseLink2_3CoreJavaResourceModelTests { + + public static Test suite() { + TestSuite suite = new TestSuite(JptEclipseLink2_3CoreJavaResourceModelTests.class.getName()); + suite.addTestSuite(EclipselinkMultitenantAnnotationTests.class); + suite.addTestSuite(EclipseLinkTenantDiscriminatorColumnTests.class); + + return suite; + } + + private JptEclipseLink2_3CoreJavaResourceModelTests() { + super(); + throw new UnsupportedOperationException(); + } + +} |