From: <th...@us...> - 2009-08-24 01:59:29
|
Revision: 10291 http://pcgen.svn.sourceforge.net/pcgen/?rev=10291&view=rev Author: thpr Date: 2009-08-24 01:59:22 +0000 (Mon, 24 Aug 2009) Log Message: ----------- Additional tests (EqMod unparse) Modified Paths: -------------- Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/ArmortypeTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/ChargesTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/FormatcatTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/NameoptTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/VisibleTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/testsupport/AbstractTextPropertyTokenTestCase.java Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/ArmortypeTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/ArmortypeTokenTest.java 2009-08-23 16:10:14 UTC (rev 10290) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/ArmortypeTokenTest.java 2009-08-24 01:59:22 UTC (rev 10291) @@ -17,8 +17,13 @@ */ package plugin.lsttokens.equipmentmodifier; +import java.util.Arrays; +import java.util.List; + import org.junit.Test; +import pcgen.cdom.enumeration.ListKey; +import pcgen.cdom.modifier.ChangeArmorType; import pcgen.core.EquipmentModifier; import pcgen.persistence.PersistenceLayerException; import pcgen.rules.persistence.CDOMLoader; @@ -60,7 +65,7 @@ assertNoSideEffects(); } - @Test + @Test public void testInvalidInputNoResult() throws PersistenceLayerException { assertFalse(parse("Medium")); @@ -124,4 +129,97 @@ { return ConsolidationRule.SEPARATE; } + + @Test + public void testUnparseNull() throws PersistenceLayerException + { + primaryProf.removeListFor(ListKey.ARMORTYPE); + assertNull(getToken().unparse(primaryContext, primaryProf)); + } + + @Test + public void testUnparseSingle() throws PersistenceLayerException + { + primaryProf.addToListFor(ListKey.ARMORTYPE, new ChangeArmorType( + "Light", "Medium")); + String[] unparsed = getToken().unparse(primaryContext, primaryProf); + expectSingle(unparsed, "Light|Medium"); + } + + @Test + public void testUnparseNullInList() throws PersistenceLayerException + { + primaryProf.addToListFor(ListKey.ARMORTYPE, null); + try + { + getToken().unparse(primaryContext, primaryProf); + fail(); + } + catch (NullPointerException e) + { + // Yep! + } + } + + @Test + public void testUnparseMultiple() throws PersistenceLayerException + { + primaryProf.addToListFor(ListKey.ARMORTYPE, new ChangeArmorType( + "Medium", "Light")); + primaryProf.addToListFor(ListKey.ARMORTYPE, new ChangeArmorType( + "Heavy", "Medium")); + String[] unparsed = getToken().unparse(primaryContext, primaryProf); + assertNotNull(unparsed); + assertEquals(2, unparsed.length); + List<String> upList = Arrays.asList(unparsed); + assertTrue(upList.contains("Medium|Light")); + assertTrue(upList.contains("Heavy|Medium")); + } + + @Test + public void testUnparseGenericsFail() throws PersistenceLayerException + { + ListKey objectKey = ListKey.ARMORTYPE; + primaryProf.addToListFor(objectKey, new Object()); + try + { + getToken().unparse(primaryContext, primaryProf); + fail(); + } + catch (ClassCastException e) + { + // Yep! + } + } + + @Test + public void testUnparseNullSource() throws PersistenceLayerException + { + try + { + primaryProf.addToListFor(ListKey.ARMORTYPE, new ChangeArmorType( + null, "Medium")); + assertBadUnparse(); + } + catch (IllegalArgumentException e) + { + // Good here too :) + } + } + + @Test + public void testUnparseNullTarget() throws PersistenceLayerException + { + try + { + primaryProf.addToListFor(ListKey.ARMORTYPE, new ChangeArmorType( + "Heavy", null)); + assertBadUnparse(); + } + catch (IllegalArgumentException e) + { + // Good here too :) + } + } + } Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/ChargesTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/ChargesTokenTest.java 2009-08-23 16:10:14 UTC (rev 10290) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/ChargesTokenTest.java 2009-08-24 01:59:22 UTC (rev 10291) @@ -19,6 +19,7 @@ import org.junit.Test; +import pcgen.cdom.enumeration.IntegerKey; import pcgen.core.EquipmentModifier; import pcgen.persistence.PersistenceLayerException; import pcgen.rules.persistence.CDOMLoader; @@ -137,4 +138,69 @@ { return ConsolidationRule.OVERWRITE; } + + @Test + public void testUnparseMinNull() throws PersistenceLayerException + { + primaryProf.put(IntegerKey.MIN_CHARGES, null); + primaryProf.put(IntegerKey.MAX_CHARGES, 1); + assertNull(getToken().unparse(primaryContext, primaryProf)); + } + + @Test + public void testUnparseMaxNull() throws PersistenceLayerException + { + primaryProf.put(IntegerKey.MIN_CHARGES, 1); + primaryProf.put(IntegerKey.MAX_CHARGES, null); + assertNull(getToken().unparse(primaryContext, primaryProf)); + } + + @Test + public void testUnparseNormal() throws PersistenceLayerException + { + expectSingle(setAndUnparse(5, 10), "5|10"); + } + + @Test + public void testUnparseEqual() throws PersistenceLayerException + { + expectSingle(setAndUnparse(5, 5), "5|5"); + } + + @Test + public void testUnparseZeroMin() throws PersistenceLayerException + { + expectSingle(setAndUnparse(0, 5), "0|5"); + } + + @Test + public void testUnparseZeroMinMax() throws PersistenceLayerException + { + expectSingle(setAndUnparse(0, 0), "0|0"); + } + + @Test + public void testUnparseMaxLTMin() throws PersistenceLayerException + { + assertNull(setAndUnparse(10, 5)); + } + + @Test + public void testUnparseNegativeMin() throws PersistenceLayerException + { + assertNull(setAndUnparse(-5, 10)); + } + + @Test + public void testUnparseNegativeMax() throws PersistenceLayerException + { + assertNull(setAndUnparse(5, -10)); + } + + protected String[] setAndUnparse(int min, int max) + { + primaryProf.put(IntegerKey.MIN_CHARGES, min); + primaryProf.put(IntegerKey.MAX_CHARGES, max); + return getToken().unparse(primaryContext, primaryProf); + } } Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/FormatcatTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/FormatcatTokenTest.java 2009-08-23 16:10:14 UTC (rev 10290) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/FormatcatTokenTest.java 2009-08-24 01:59:22 UTC (rev 10291) @@ -136,4 +136,39 @@ { return ConsolidationRule.OVERWRITE; } + + @Test + public void testUnparseNull() throws PersistenceLayerException + { + primaryProf.put(getObjectKey(), null); + assertNull(getToken().unparse(primaryContext, primaryProf)); + } + + private ObjectKey<EqModFormatCat> getObjectKey() + { + return ObjectKey.FORMAT; + } + + @Test + public void testUnparseLegal() throws PersistenceLayerException + { + primaryProf.put(getObjectKey(), EqModFormatCat.FRONT); + expectSingle(getToken().unparse(primaryContext, primaryProf), EqModFormatCat.FRONT.toString()); + } + + @Test + public void testUnparseGenericsFail() throws PersistenceLayerException + { + ObjectKey objectKey = getObjectKey(); + primaryProf.put(objectKey, new Object()); + try + { + getToken().unparse(primaryContext, primaryProf); + fail(); + } + catch (ClassCastException e) + { + //Yep! + } + } } Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/NameoptTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/NameoptTokenTest.java 2009-08-23 16:10:14 UTC (rev 10290) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/NameoptTokenTest.java 2009-08-24 01:59:22 UTC (rev 10291) @@ -19,6 +19,9 @@ import org.junit.Test; +import pcgen.cdom.enumeration.EqModNameOpt; +import pcgen.cdom.enumeration.ObjectKey; +import pcgen.cdom.enumeration.StringKey; import pcgen.core.EquipmentModifier; import pcgen.persistence.PersistenceLayerException; import pcgen.rules.persistence.CDOMLoader; @@ -139,4 +142,89 @@ { return ConsolidationRule.OVERWRITE; } + + + @Test + public void testOverwriteToText() throws PersistenceLayerException + { + parse("SPELL"); + validateUnparsed(primaryContext, primaryProf, "SPELL"); + parse("TEXT=This is the text"); + validateUnparsed(primaryContext, primaryProf, getConsolidationRule() + .getAnswer("SPELL", "TEXT=This is the text")); + } + + @Test + public void testOverwriteFromText() throws PersistenceLayerException + { + parse("TEXT=This is the text"); + validateUnparsed(primaryContext, primaryProf, "TEXT=This is the text"); + parse("NOTHING"); + validateUnparsed(primaryContext, primaryProf, getConsolidationRule() + .getAnswer("TEXT=This is the text", "NOTHING")); + } + @Test + public void testUnparseNull() throws PersistenceLayerException + { + primaryProf.put(getObjectKey(), null); + assertNull(getToken().unparse(primaryContext, primaryProf)); + } + + private ObjectKey<EqModNameOpt> getObjectKey() + { + return ObjectKey.NAME_OPT; + } + + @Test + public void testUnparseLegal() throws PersistenceLayerException + { + primaryProf.put(getObjectKey(), EqModNameOpt.SPELL); + expectSingle(getToken().unparse(primaryContext, primaryProf), + EqModNameOpt.SPELL.toString()); + } + + @Test + public void testUnparseLegalName() throws PersistenceLayerException + { + primaryProf.put(StringKey.NAME_TEXT, "MyText"); + primaryProf.put(ObjectKey.NAME_OPT, EqModNameOpt.TEXT); + expectSingle(getToken().unparse(primaryContext, primaryProf), + "TEXT=MyText"); + } + + @Test + public void testUnparseGenericsFail() throws PersistenceLayerException + { + ObjectKey objectKey = getObjectKey(); + primaryProf.put(objectKey, new Object()); + try + { + getToken().unparse(primaryContext, primaryProf); + fail(); + } + catch (ClassCastException e) + { + // Yep! + } + } + + @Test + public void testUnparseIncompleteSpell() throws PersistenceLayerException + { + primaryProf.put(ObjectKey.NAME_OPT, EqModNameOpt.TEXT); + assertBadUnparse(); + } + + /* + * TODO Another item that is overwrite sensitive, need to understand how + * this should work and whether this is ok based on overwrite unit tests + * above, or whether this is invalid + */ + // @Test + // public void testUnparseOther() throws PersistenceLayerException + // { + // primaryProf.put(ObjectKey.NAME_OPT, EqModNameOpt.SPELL); + // primaryProf.put(StringKey.NAME_TEXT, "MyText"); + // assertBadUnparse(); + // } } Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/VisibleTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/VisibleTokenTest.java 2009-08-23 16:10:14 UTC (rev 10290) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/equipmentmodifier/VisibleTokenTest.java 2009-08-24 01:59:22 UTC (rev 10291) @@ -145,4 +145,46 @@ { return ConsolidationRule.OVERWRITE; } + + @Test + public void testUnparseNull() throws PersistenceLayerException + { + primaryProf.put(getObjectKey(), null); + assertNull(getToken().unparse(primaryContext, primaryProf)); + } + + private ObjectKey<Visibility> getObjectKey() + { + return ObjectKey.VISIBILITY; + } + + @Test + public void testUnparseLegal() throws PersistenceLayerException + { + primaryProf.put(getObjectKey(), Visibility.DEFAULT); + expectSingle(getToken().unparse(primaryContext, primaryProf), Visibility.DEFAULT.getLSTFormat()); + } + + @Test + public void testUnparseIllegal() throws PersistenceLayerException + { + primaryProf.put(getObjectKey(), Visibility.OUTPUT_ONLY); + assertBadUnparse(); + } + + @Test + public void testUnparseGenericsFail() throws PersistenceLayerException + { + ObjectKey objectKey = getObjectKey(); + primaryProf.put(objectKey, new Object()); + try + { + getToken().unparse(primaryContext, primaryProf); + fail(); + } + catch (ClassCastException e) + { + //Yep! + } + } } Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/testsupport/AbstractTextPropertyTokenTestCase.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/testsupport/AbstractTextPropertyTokenTestCase.java 2009-08-23 16:10:14 UTC (rev 10290) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/testsupport/AbstractTextPropertyTokenTestCase.java 2009-08-24 01:59:22 UTC (rev 10291) @@ -18,12 +18,16 @@ package plugin.lsttokens.testsupport; import java.net.URISyntaxException; +import java.util.Arrays; +import java.util.List; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import pcgen.cdom.base.CDOMObject; +import pcgen.cdom.enumeration.ListKey; +import pcgen.core.SpecialProperty; import pcgen.persistence.PersistenceLayerException; import plugin.pretokens.parser.PreClassParser; import plugin.pretokens.parser.PreLevelParser; @@ -38,7 +42,7 @@ @BeforeClass public static final void localClassSetUp() throws URISyntaxException, - PersistenceLayerException + PersistenceLayerException { TokenRegistration.register(new PreLevelParser()); TokenRegistration.register(new PreClassParser()); @@ -100,13 +104,13 @@ assertNoSideEffects(); } - //TODO Special Property allowed this :( -// @Test -// public void testInvalidEmbeddedNotPre() throws PersistenceLayerException -// { -// assertFalse(parse("Yarra Valley|!PRELEVEL:MIN=3|Rheinhessen")); -// assertNoSideEffects(); -// } + // TODO Special Property allowed this :( + // @Test + // public void testInvalidEmbeddedNotPre() throws PersistenceLayerException + // { + // assertFalse(parse("Yarra Valley|!PRELEVEL:MIN=3|Rheinhessen")); + // assertNoSideEffects(); + // } @Test public void testInvalidBadPre() throws PersistenceLayerException @@ -122,13 +126,13 @@ assertNoSideEffects(); } - //TODO Special Property allowed this :( -// @Test -// public void testInvalidEmbeddedPre() throws PersistenceLayerException -// { -// assertFalse(parse("Yarra Valley|PRELEVEL:MIN=4|Rheinhessen")); -// assertNoSideEffects(); -// } + // TODO Special Property allowed this :( + // @Test + // public void testInvalidEmbeddedPre() throws PersistenceLayerException + // { + // assertFalse(parse("Yarra Valley|PRELEVEL:MIN=4|Rheinhessen")); + // assertNoSideEffects(); + // } @Test public void testRoundRobinBase() throws PersistenceLayerException @@ -202,6 +206,80 @@ return "Rheinhessen|VarOne|VarTwo|PRELEVEL:MIN=5"; } + @Test + public void testUnparseNull() throws PersistenceLayerException + { + primaryProf.removeListFor(getListKey()); + assertNull(getToken().unparse(primaryContext, primaryProf)); + } + + @Test + public void testUnparseSingle() throws PersistenceLayerException + { + primaryProf.addToListFor(getListKey(), getConstant(getLegalValue())); + String[] unparsed = getToken().unparse(primaryContext, primaryProf); + expectSingle(unparsed, getLegalValue()); + } + + private SpecialProperty getConstant(String value) + { + return SpecialProperty.createFromLst(value); + } + + @Test + public void testUnparseNullInList() throws PersistenceLayerException + { + primaryProf.addToListFor(getListKey(), null); + try + { + getToken().unparse(primaryContext, primaryProf); + fail(); + } + catch (NullPointerException e) + { + // Yep! + } + } + + @Test + public void testUnparseMultiple() throws PersistenceLayerException + { + primaryProf.addToListFor(getListKey(), getConstant(getLegalValue())); + primaryProf.addToListFor(getListKey(), + getConstant(getAlternateLegalValue())); + String[] unparsed = getToken().unparse(primaryContext, primaryProf); + assertNotNull(unparsed); + assertEquals(2, unparsed.length); + List<String> upList = Arrays.asList(unparsed); + assertTrue(upList.contains(getLegalValue())); + assertTrue(upList.contains(getAlternateLegalValue())); + } + + private ListKey<SpecialProperty> getListKey() + { + return ListKey.SPECIAL_PROPERTIES; + } + + /* + * TODO Need to define the appropriate behavior here - is this the token's + * responsibility? + */ + @Test + public void testUnparseGenericsFail() throws PersistenceLayerException + { + ListKey objectKey = getListKey(); + primaryProf.addToListFor(objectKey, new Object()); + try + { + String[] unparsed = getToken().unparse(primaryContext, primaryProf); + fail(); + } + catch (ClassCastException e) + { + // Yep! + } + } + @Override protected ConsolidationRule getConsolidationRule() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |