blob: 10947d9ae440cd5ce0478a845b78876e5a03ce33 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2008 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.core.tests.internal.utility.jdt;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.dom.Annotation;
import org.eclipse.jdt.core.dom.MemberValuePair;
import org.eclipse.jdt.core.dom.NormalAnnotation;
import org.eclipse.jdt.core.dom.StringLiteral;
import org.eclipse.jpt.core.internal.utility.jdt.CombinationIndexedDeclarationAnnotationAdapter;
import org.eclipse.jpt.core.internal.utility.jdt.JDTTools;
import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter;
import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter;
import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter;
import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter;
import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter;
public class CombinationIndexedDeclarationAnnotationAdapterTests extends AnnotationTestCase {
public CombinationIndexedDeclarationAnnotationAdapterTests(String name) {
super(name);
}
private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception {
this.javaProject.createCompilationUnit("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }");
}
public void testAnnotation1() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID\")");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", 0);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName());
assertTrue(annotation.isNormalAnnotation());
}
public void testAnnotation2() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID\")");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
}
public void testAnnotation3() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(@annot.JoinColumn(name=\"ADDRESS_ID\"))");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", 0);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName());
assertTrue(annotation.isNormalAnnotation());
}
public void testAnnotation4() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(@annot.JoinColumn(name=\"ADDRESS_ID\"))");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
}
public void testAnnotation5() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName());
assertTrue(annotation.isNormalAnnotation());
String value = ((StringLiteral) ((MemberValuePair) ((NormalAnnotation) annotation).values().get(0)).getValue()).getLiteralValue();
assertEquals("ADDRESS_ID2", value);
}
public void testAnnotation6() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
}
public void testAnnotation7() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName());
assertTrue(annotation.isNormalAnnotation());
String value = ((StringLiteral) ((MemberValuePair) ((NormalAnnotation) annotation).values().get(0)).getValue()).getLiteralValue();
assertEquals("ADDRESS_ID2", value);
}
public void testAnnotation8() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
}
public void testRemoveAnnotation1() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID\")");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", 0);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
aa.removeAnnotation();
this.assertSourceDoesNotContain("JoinColumn", cu);
}
public void testRemoveAnnotation2() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(@annot.JoinColumn(name=\"ADDRESS_ID\"))");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", 0);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
aa.removeAnnotation();
this.assertSourceDoesNotContain("JoinColumns", cu);
this.assertSourceDoesNotContain("JoinColumn", cu);
}
public void testRemoveAnnotation3() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
aa.removeAnnotation();
this.assertSourceDoesNotContain("JoinColumns", cu);
this.assertSourceDoesNotContain("ADDRESS_ID2", cu);
this.assertSourceContains("@JoinColumn(name=\"ADDRESS_ID1\")", cu);
}
public void testRemoveAnnotation4() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
aa.removeAnnotation();
this.assertSourceDoesNotContain("JoinColumns", cu);
this.assertSourceDoesNotContain("ADDRESS_ID2", cu);
this.assertSourceContains("@JoinColumn(name=\"ADDRESS_ID1\")", cu);
}
public void testRemoveAnnotation5() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "String comment(); JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(comment=\"test\",columns={@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
aa.removeAnnotation();
this.assertSourceContains("@annot.JoinColumns(comment=\"test\",columns=@annot.JoinColumn(name=\"ADDRESS_ID1\"))", cu);
}
public void testRemoveAnnotation6() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(null)");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", 0);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
aa.removeAnnotation();
this.assertSourceContains("@annot.JoinColumns(null)", cu);
}
public void testRemoveAnnotation12() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
String expected = "@JoinColumn(name=\"ADDRESS_ID0\")";
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "value", 2);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
aa.removeAnnotation();
this.assertSourceContains(expected, cu);
this.assertSourceDoesNotContain("JoinColumns", cu);
}
public void testRemoveAnnotation13() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns({null, @annot.JoinColumn(name=\"ADDRESS_ID1\")})");
this.assertSourceContains("@annot.JoinColumn", cu);
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "value", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
aa.removeAnnotation();
this.assertSourceDoesNotContain("JoinColumn", cu);
}
public void testRemoveAnnotation14() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\"), null})");
String expected = "@JoinColumn(name=\"ADDRESS_ID0\")";
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "value", 2);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
aa.removeAnnotation();
this.assertSourceContains(expected, cu);
}
public void testRemoveAnnotation15() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID3\")})");
String expected = "@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, null, @annot.JoinColumn(name=\"ADDRESS_ID3\")})";
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "value", 2);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
aa.removeAnnotation();
this.assertSourceContains(expected, cu);
}
public void testRemoveAnnotation16() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID3\")})");
String expected = "@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})";
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "value", 3);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
aa.removeAnnotation();
this.assertSourceContains(expected, cu);
}
public void testRemoveAnnotation17() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns({null, null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
this.assertSourceContains("@annot.JoinColumn", cu);
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "value", 2);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
aa.removeAnnotation();
this.assertSourceDoesNotContain("JoinColumn", cu);
}
public void testNewMarkerAnnotation1() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType();
this.assertSourceDoesNotContain("JoinColumn", cu);
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
aa.newMarkerAnnotation();
this.assertSourceContains("JoinColumn", cu);
this.assertSourceDoesNotContain("JoinColumns", cu);
}
public void testNewMarkerAnnotation2() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumn");
this.assertSourceDoesNotContain("JoinColumns", cu);
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
aa.newMarkerAnnotation();
this.assertSourceContains("@JoinColumns(columns={@JoinColumn,@JoinColumn})", cu);
}
public void testNewMarkerAnnotation3() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn, @annot.JoinColumn})");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 2);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
aa.newMarkerAnnotation();
this.assertSourceContains("@annot.JoinColumns(columns={@annot.JoinColumn, @annot.JoinColumn," + CR + " @JoinColumn})", cu);
}
public void testNewMarkerAnnotation4() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumn(77)");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
aa.newMarkerAnnotation();
this.assertSourceContains("JoinColumn", cu);
this.assertSourceDoesNotContain("JoinColumns", cu);
this.assertSourceDoesNotContain("77", cu);
}
public void testNewMarkerAnnotation5() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns=@annot.JoinColumn(77))");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
aa.newMarkerAnnotation();
this.assertSourceContains("@annot.JoinColumns(columns=@JoinColumn)", cu);
this.assertSourceDoesNotContain("77", cu);
}
public void testNewMarkerAnnotation6() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns=@annot.JoinColumn(77))");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
aa.newMarkerAnnotation();
this.assertSourceContains("@annot.JoinColumns(columns={@annot.JoinColumn(77),@JoinColumn})", cu);
}
public void testNewMarkerAnnotation7() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumn(77)");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
aa.newMarkerAnnotation();
this.assertSourceContains("@JoinColumns(columns={@JoinColumn(77),@JoinColumn})", cu);
}
public void testNewMarkerAnnotation8() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(77),@annot.JoinColumn(88)})");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
aa.newMarkerAnnotation();
this.assertSourceContains("@annot.JoinColumns(columns={@annot.JoinColumn(77),@JoinColumn})", cu);
}
public void testNewMarkerAnnotation9() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name(); String text(); int num();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumn(text=\"blah\",num=42)");
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
Annotation annotation = aa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
aa.newMarkerAnnotation();
this.assertSourceContains("@JoinColumns(columns={@JoinColumn(text=\"blah\", num=42),@JoinColumn})", cu);
}
public void testNewMarkerAnnotation23() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name(); String text(); int num();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumn(text=\"blah\",num=42)");
String expected = "@JoinColumns(columns={@JoinColumn(text=\"blah\", num=42),null,@JoinColumn})";
this.assertSourceDoesNotContain(expected, cu);
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 2);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
aa.newMarkerAnnotation();
this.assertSourceContains(expected, cu);
}
public void testNewMarkerAnnotation24() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name(); String text(); int num();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumn(text=\"blah\",num=42)");
String expected1 = "@JoinColumns({";
String expected2 = "@JoinColumn(text=\"blah\", num=42),null,";
String expected3 = "@JoinColumn" + CR + " })";
this.assertSourceDoesNotContain(expected1, cu);
this.assertSourceDoesNotContain(expected2, cu);
this.assertSourceDoesNotContain(expected3, cu);
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "value", 2);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
aa.newMarkerAnnotation();
this.assertSourceContains(expected1, cu);
this.assertSourceContains(expected2, cu);
this.assertSourceContains(expected3, cu);
}
public void testNewMarkerAnnotation25() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})");
String expected1 = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), null, null,"; // the line gets split
String expected2 = "@JoinColumn})";
this.assertSourceDoesNotContain(expected1, cu);
this.assertSourceDoesNotContain(expected2, cu);
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 4);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
aa.newMarkerAnnotation();
this.assertSourceContains(expected1, cu);
this.assertSourceContains(expected2, cu);
}
public void testNewMarkerAnnotation26() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})");
String expected1 = "@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), null, null,"; // the line gets split
String expected2 = "@JoinColumn})";
this.assertSourceDoesNotContain(expected1, cu);
this.assertSourceDoesNotContain(expected2, cu);
DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "value", 4);
AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
aa.newMarkerAnnotation();
this.assertSourceContains(expected1, cu);
this.assertSourceContains(expected2, cu);
}
public void testMoveAnnotation1() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID0\")");
String expected = "@JoinColumns(columns={null,@JoinColumn(name=\"ADDRESS_ID0\")})";
this.assertSourceDoesNotContain(expected, cu);
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
iaa.moveAnnotation(1);
this.assertSourceContains(expected, cu);
}
public void testMoveAnnotation2() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={null,@annot.JoinColumn(name=\"ADDRESS_ID1\")})");
String expected = "@JoinColumn(name=\"ADDRESS_ID1\")";
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
iaa.moveAnnotation(0);
this.assertSourceContains(expected, cu);
this.assertSourceDoesNotContain("JoinColumns", cu);
}
public void testMoveAnnotation2a() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns({null,@annot.JoinColumn(name=\"ADDRESS_ID1\")})");
String expected = "@JoinColumn(name=\"ADDRESS_ID1\")";
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "value", 1);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
iaa.moveAnnotation(0);
this.assertSourceContains(expected, cu);
this.assertSourceDoesNotContain("JoinColumns", cu);
}
public void testMoveAnnotation3() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID3\")})");
String expected = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID3\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})";
this.assertSourceDoesNotContain(expected, cu);
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
iaa.moveAnnotation(0);
this.assertSourceContains(expected, cu);
}
public void testMoveAnnotation4() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID3\"), @annot.JoinColumn(name=\"ADDRESS_ID4\")})");
String expected = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID3\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), null, @annot.JoinColumn(name=\"ADDRESS_ID4\")})";
this.assertSourceDoesNotContain(expected, cu);
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
iaa.moveAnnotation(0);
this.assertSourceContains(expected, cu);
}
public void testMoveAnnotation5() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
String expected = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})";
this.assertSourceDoesNotContain(expected, cu);
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 2);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
iaa.moveAnnotation(3);
this.assertSourceContains(expected, cu);
}
public void testMoveAnnotation6() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
String expected = "@annot.JoinColumns(columns={null, @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID0\")})";
this.assertSourceDoesNotContain(expected, cu);
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
iaa.moveAnnotation(3);
this.assertSourceContains(expected, cu);
}
public void testMoveAnnotation7() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
String expected = "@annot.JoinColumns(columns={null, @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})";
this.assertSourceDoesNotContain(expected, cu);
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
iaa.moveAnnotation(0);
this.assertSourceContains(expected, cu);
}
public void testMoveAnnotation8() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), null, @annot.JoinColumn(name=\"ADDRESS_ID4\")})");
String expected = "@annot.JoinColumns(columns={null, @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), null, @annot.JoinColumn(name=\"ADDRESS_ID4\")})";
this.assertSourceDoesNotContain(expected, cu);
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
iaa.moveAnnotation(0);
this.assertSourceContains(expected, cu);
}
public void testMoveAnnotation9() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
String expected = "@annot.JoinColumns(columns={null, @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})";
ICompilationUnit cu = this.createTestType(expected); // the source should be unchanged
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
iaa.moveAnnotation(3);
this.assertSourceContains(expected, cu);
}
public void testMoveAnnotation10() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})");
String expected = "@JoinColumn(name=\"ADDRESS_ID0\")";
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 2);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
iaa.moveAnnotation(1);
this.assertSourceContains(expected, cu);
this.assertSourceDoesNotContain("@annot.JoinColumns", cu);
}
public void testMoveAnnotation10a() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})");
String expected = "@JoinColumn(name=\"ADDRESS_ID0\")";
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "value", 2);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
iaa.moveAnnotation(1);
this.assertSourceContains(expected, cu);
this.assertSourceDoesNotContain("@annot.JoinColumns", cu);
}
public void testMoveAnnotation11() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID0\")");
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNull(annotation);
iaa.moveAnnotation(0);
this.assertSourceDoesNotContain("JoinColumn", cu);
}
public void testMoveAnnotation12() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
String expected = "@JoinColumn(name=\"ADDRESS_ID2\")";
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 2);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
iaa.moveAnnotation(0);
this.assertSourceContains(expected, cu);
this.assertSourceDoesNotContain("@annot.JoinColumns", cu);
}
public void testMoveAnnotation13() throws Exception {
this.createAnnotationAndMembers("JoinColumn", "String name();");
this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), null, @annot.JoinColumn(name=\"ADDRESS_ID3\")})");
String expected = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID3\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})";
IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
Annotation annotation = iaa.getAnnotation(JDTTools.buildASTRoot(cu));
assertNotNull(annotation);
iaa.moveAnnotation(0);
this.assertSourceContains(expected, cu);
}
}