From: <iro...@us...> - 2009-09-14 04:08:07
|
Revision: 152 http://pojomatic.svn.sourceforge.net/pojomatic/?rev=152&view=rev Author: iroberts Date: 2009-09-14 04:08:01 +0000 (Mon, 14 Sep 2009) Log Message: ----------- Some classes which are only referenced in one test method can be pulled into the method itself. Modified Paths: -------------- trunk/PojomaticAll/Pojomatic/src/test/java/org/pojomatic/internal/ClassPropertiesTest.java trunk/PojomaticAll/Pojomatic/src/test/java/org/pojomatic/internal/PojomatorImplTest.java Modified: trunk/PojomaticAll/Pojomatic/src/test/java/org/pojomatic/internal/ClassPropertiesTest.java =================================================================== --- trunk/PojomaticAll/Pojomatic/src/test/java/org/pojomatic/internal/ClassPropertiesTest.java 2009-09-07 21:35:12 UTC (rev 151) +++ trunk/PojomaticAll/Pojomatic/src/test/java/org/pojomatic/internal/ClassPropertiesTest.java 2009-09-14 04:08:01 UTC (rev 152) @@ -2,10 +2,7 @@ import static org.junit.Assert.*; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; +import java.util.*; import org.junit.Test; import org.pojomatic.PropertyElement; @@ -56,6 +53,12 @@ @Test public void testAnnotatedMethods() throws Exception { + class MethodPojo { + @Property public int getInt() { return 0; } + @Property @SuppressWarnings("unused") private String privateString() { return null; } + @Property(policy=PojomaticPolicy.EQUALS) public double onlyForEquals() { return 0.0; } + } + final PropertyElement getIntMethod = TestUtils.method(MethodPojo.class, "getInt"); final PropertyElement privateStringMethod = TestUtils.method(MethodPojo.class, "privateString"); final PropertyElement onlyForEqualsMethod = TestUtils.method(MethodPojo.class, "onlyForEquals"); @@ -93,12 +96,14 @@ @Test(expected=IllegalArgumentException.class) public void testAnnotatedMethodReturningVoid() { - ClassProperties.createInstance(MethodReturnsVoidPojo.class); + class MethodReturnsVoidPojo { @Property public void noReturn() {} } + ClassProperties.createInstance(MethodReturnsVoidPojo.class); } @Test(expected=IllegalArgumentException.class) public void testAnnotatedMethodTakingArgs() { - ClassProperties.createInstance(MethodTakesArgsPojo.class); + class MethodTakesArgsPojo { @Property public int takesArgs(String death) { return death.length(); } } + ClassProperties.createInstance(MethodTakesArgsPojo.class); } @Test @@ -135,6 +140,12 @@ @Test public void testAutoInheritanceWithOverride() throws Exception { + @AutoProperty(autoDetect=AutoDetectPolicy.METHOD) + class ChildAutoMethodPojo extends ParentPojo { + @Override public int getFoo() { return 2; } + public int getBar() { return 2; } + } + ClassProperties childClassProperties = ClassProperties.createInstance(ChildAutoMethodPojo.class); Set<PropertyElement> expected = asSet( TestUtils.method(ParentPojo.class, "getFoo"), @@ -146,6 +157,12 @@ @Test public void testAutoInheritanceAnnotatedParent() throws Exception { + @AutoProperty(autoDetect=AutoDetectPolicy.METHOD) + class ChildExtendsAnnotatedPojo extends ParentPojo { + @Override public int getFoo() { return 0; } + public String getMyString() { return "foo"; } + } + Set<PropertyElement> expectedParent = asSet(TestUtils.method(ParentPojo.class, "getFoo")); ClassProperties parentClassProperties = ClassProperties.createInstance(ParentPojo.class); assertEquals(expectedParent, asSet(parentClassProperties.getEqualsProperties())); @@ -163,6 +180,12 @@ @Test public void testAutoInheritanceAutoParentAnnotatedChild() throws Exception { + class ChildExtendsAutoPojo extends ParentAutoPojo { + @Property public String other; + @Override public int getFoo() { return 2; } + public String getBar() { return ""; } + } + Set<PropertyElement> expectedParent = asSet(TestUtils.method(ParentAutoPojo.class, "getFoo")); ClassProperties parentClassProperties = ClassProperties.createInstance(ParentAutoPojo.class); assertEquals(expectedParent, asSet(parentClassProperties.getEqualsProperties())); @@ -213,9 +236,11 @@ assertEquals(asSet(getFoo), asSet(classProperties.getHashCodeProperties())); assertEquals(asSet(getFoo), asSet(classProperties.getToStringProperties())); assertEquals(asSet(getFoo, baz), asSet(classProperties.getEqualsProperties())); - } - + + //Not all classes can be made internal. In particular, autodetect=FIELD classes cannot, because of the synthetic + //$this, and classes requiring static elements cannot. + public static class FieldPojo { @SuppressWarnings("unused") @Property @@ -250,18 +275,6 @@ public static String staticField; } - public static class MethodPojo { - @Property - public int getInt() { return 0; } - - @Property - @SuppressWarnings("unused") - private String privateString() { return null; } - - @Property(policy=PojomaticPolicy.EQUALS) - public double onlyForEquals() { return 0.0; } - } - @AutoProperty(autoDetect=AutoDetectPolicy.METHOD, policy=DefaultPojomaticPolicy.ALL) public static class AutoMethodPojo { /* Fields are not auto-detected */ @@ -293,16 +306,6 @@ public static String getStatic() { return null; } } - public static class MethodReturnsVoidPojo { - @Property - public void noReturn() {} - } - - public static class MethodTakesArgsPojo { - @Property - public int takesArgs(String death) { return death.length(); } - } - private static abstract class ParentPojo { @Property public abstract int getFoo(); @@ -315,20 +318,6 @@ @Override public int getFoo() { return 2; } } - @AutoProperty(autoDetect=AutoDetectPolicy.METHOD) - public static class ChildAutoMethodPojo extends ParentPojo { - @Override public int getFoo() { return 2; } - public int getBar() { return 2; } - } - - @AutoProperty(autoDetect=AutoDetectPolicy.METHOD) - public static class ChildExtendsAnnotatedPojo extends ParentPojo { - @Override - public int getFoo() { return 0; } - - public String getMyString() { return "foo"; } - } - @AutoProperty(autoDetect=AutoDetectPolicy.METHOD, policy=DefaultPojomaticPolicy.EQUALS) private static abstract class ParentAutoPojo { public abstract int getFoo(); @@ -347,16 +336,7 @@ int bar(); @Property(policy=PojomaticPolicy.EQUALS) int baz(); } - - public static class ChildExtendsAutoPojo extends ParentAutoPojo { - @Property - public String other; - @Override public int getFoo() { return 2; } - - public String getBar() { return ""; } - } - public static class StaticField { @Property public static int a; } @@ -364,13 +344,9 @@ public static class StaticMethod { @Property public static int a() { return 1; } } - + private static Set<PropertyElement> asSet(PropertyElement... elements) { - HashSet<PropertyElement> result = new HashSet<PropertyElement>(); - for (PropertyElement element : elements) { - result.add(element); - } - return result; + return new HashSet<PropertyElement>(Arrays.asList(elements)); } private static Set<PropertyElement> asSet(Collection<PropertyElement> elements) { Modified: trunk/PojomaticAll/Pojomatic/src/test/java/org/pojomatic/internal/PojomatorImplTest.java =================================================================== --- trunk/PojomaticAll/Pojomatic/src/test/java/org/pojomatic/internal/PojomatorImplTest.java 2009-09-07 21:35:12 UTC (rev 151) +++ trunk/PojomaticAll/Pojomatic/src/test/java/org/pojomatic/internal/PojomatorImplTest.java 2009-09-14 04:08:01 UTC (rev 152) @@ -32,9 +32,6 @@ private static Pojomator<IntProperty> INT_PROPERTY_POJOMATOR = makePojomatorImpl(IntProperty.class); - private static Pojomator<StringArrayProperty> STRING_ARRAY_PROPERTY_POJOMATOR = - makePojomatorImpl(StringArrayProperty.class); - private static final Pojomator<AccessCheckedProperties> ACCESS_CHECKED_PROPERTIES_POJOMATOR = makePojomatorImpl(AccessCheckedProperties.class); @@ -90,6 +87,13 @@ } @Test public void testObjectArrayPropertyEquals() { + class StringArrayProperty { + public StringArrayProperty(String... strings) { this.strings = strings; } + @Property String[] strings; + } + + Pojomator<StringArrayProperty> STRING_ARRAY_PROPERTY_POJOMATOR = makePojomatorImpl(StringArrayProperty.class); + String s1 = "hello"; String s2 = copyString(s1); assertTrue(STRING_ARRAY_PROPERTY_POJOMATOR.doEquals( @@ -360,14 +364,6 @@ @Property int i; } - public static class StringArrayProperty { - public StringArrayProperty(String... strings) { - this.strings = strings; - } - - @Property String[] strings; - } - public static class ExceptionThrowingProperty { @Property public int bomb() { throw new RuntimeException(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |