From: <th...@us...> - 2008-12-30 20:58:16
|
Revision: 8723 http://pcgen.svn.sourceforge.net/pcgen/?rev=8723&view=rev Author: thpr Date: 2008-12-30 20:58:12 +0000 (Tue, 30 Dec 2008) Log Message: ----------- additional token tests Modified Paths: -------------- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/AddDomainsTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/AttackCycleTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/DomainTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/LevelsPerFeatTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/SkillListTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/SpellListTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/level/AddDomainsTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/level/DomainTokenTest.java Added Paths: ----------- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/ItemCreateTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/ProhibitedTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/RaceTypeTokenTest.java Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/AddDomainsTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/AddDomainsTokenTest.java 2008-12-30 20:57:43 UTC (rev 8722) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/AddDomainsTokenTest.java 2008-12-30 20:58:12 UTC (rev 8723) @@ -178,4 +178,14 @@ runRoundRobin("TestWP1[PRERACE:1,Dwarf]" + getJoinCharacter() + "TestWP2[PRERACE:1,Human]" + getJoinCharacter() + "TestWP3"); } + + @Test + public void testInvalidInputBadPrerequisite() + throws PersistenceLayerException + { + construct(primaryContext, "TestWP1"); + construct(secondaryContext, "TestWP1"); + assertFalse(parse("TestWP1[PREFOO:1,Human]")); + assertNoSideEffects(); + } } Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/AttackCycleTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/AttackCycleTokenTest.java 2008-12-30 20:57:43 UTC (rev 8722) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/AttackCycleTokenTest.java 2008-12-30 20:58:12 UTC (rev 8723) @@ -94,6 +94,13 @@ } @Test + public void testInvalidInputNaN() throws PersistenceLayerException + { + assertFalse(parse("BAB|x")); + assertNoSideEffects(); + } + + @Test public void testInvalidInputDoublePipeTypeOne() throws PersistenceLayerException { Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/DomainTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/DomainTokenTest.java 2008-12-30 20:57:43 UTC (rev 8722) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/DomainTokenTest.java 2008-12-30 20:58:12 UTC (rev 8723) @@ -97,7 +97,7 @@ @Override public boolean isClearLegal() { - return false; + return true; } @Override @@ -170,4 +170,13 @@ + "TestWP2[PRERACE:1,Human]" + getJoinCharacter() + "TestWP3"); } + @Test + public void testInvalidInputBadPrerequisite() + throws PersistenceLayerException + { + construct(primaryContext, "TestWP1"); + construct(secondaryContext, "TestWP1"); + assertFalse(parse("TestWP1[PREFOO:1,Human]")); + assertNoSideEffects(); + } } Added: Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/ItemCreateTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/ItemCreateTokenTest.java (rev 0) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/ItemCreateTokenTest.java 2008-12-30 20:58:12 UTC (rev 8723) @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2007 Tom Parker <th...@us...> + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ +package plugin.lsttokens.pcclass; + +import pcgen.cdom.enumeration.StringKey; +import pcgen.core.PCClass; +import pcgen.rules.persistence.CDOMLoader; +import pcgen.rules.persistence.token.CDOMPrimaryToken; +import plugin.lsttokens.testsupport.AbstractStringTokenTestCase; +import plugin.lsttokens.testsupport.CDOMTokenLoader; + +public class ItemCreateTokenTest extends AbstractStringTokenTestCase<PCClass> +{ + + static ItemcreateToken token = new ItemcreateToken(); + static CDOMTokenLoader<PCClass> loader = new CDOMTokenLoader<PCClass>( + PCClass.class); + + @Override + public Class<PCClass> getCDOMClass() + { + return PCClass.class; + } + + @Override + public CDOMLoader<PCClass> getLoader() + { + return loader; + } + + @Override + public CDOMPrimaryToken<PCClass> getToken() + { + return token; + } + + @Override + protected boolean isClearLegal() + { + return false; + } + + @Override + public StringKey getStringKey() + { + return StringKey.ITEMCREATE; + } +} Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/LevelsPerFeatTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/LevelsPerFeatTokenTest.java 2008-12-30 20:57:43 UTC (rev 8722) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/LevelsPerFeatTokenTest.java 2008-12-30 20:58:12 UTC (rev 8723) @@ -89,6 +89,13 @@ } @Test + public void testInvalidMissingLevelType1() throws PersistenceLayerException + { + assertFalse(parse("4|")); + assertNoSideEffects(); + } + + @Test public void testInvalidMissingLevelType() throws PersistenceLayerException { assertFalse(parse("4|Foo")); @@ -110,6 +117,27 @@ } @Test + public void testInvalidMissingFormula() throws PersistenceLayerException + { + assertFalse(parse("|LEVELTYPE=Foo")); + assertNoSideEffects(); + } + + @Test + public void testInvalidTooManyPipes() throws PersistenceLayerException + { + assertFalse(parse("4|LEVELTYPE=Foo|LEVELTYPE=Bar")); + assertNoSideEffects(); + } + + @Test + public void testInvalidTooManyMiddlePipes() throws PersistenceLayerException + { + assertFalse(parse("4||LEVELTYPE=Foo")); + assertNoSideEffects(); + } + + @Test public void testInvalidMissingLevelType4() throws PersistenceLayerException { assertFalse(parse("4|=Foo")); Added: Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/ProhibitedTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/ProhibitedTokenTest.java (rev 0) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/ProhibitedTokenTest.java 2008-12-30 20:58:12 UTC (rev 8723) @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2007 Tom Parker <th...@us...> + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ +package plugin.lsttokens.pcclass; + +import java.net.URISyntaxException; + +import org.junit.Before; +import org.junit.Test; + +import pcgen.core.PCClass; +import pcgen.persistence.PersistenceLayerException; +import pcgen.rules.persistence.CDOMLoader; +import pcgen.rules.persistence.token.CDOMPrimaryToken; +import plugin.lsttokens.testsupport.AbstractTokenTestCase; +import plugin.lsttokens.testsupport.CDOMTokenLoader; +import plugin.lsttokens.testsupport.TokenRegistration; +import plugin.pretokens.parser.PreClassParser; +import plugin.pretokens.parser.PreRaceParser; +import plugin.pretokens.writer.PreClassWriter; +import plugin.pretokens.writer.PreRaceWriter; + +public class ProhibitedTokenTest extends AbstractTokenTestCase<PCClass> +{ + + static ProhibitedToken token = new ProhibitedToken(); + static CDOMTokenLoader<PCClass> loader = new CDOMTokenLoader<PCClass>( + PCClass.class); + + PreClassParser preclass = new PreClassParser(); + PreClassWriter preclasswriter = new PreClassWriter(); + PreRaceParser prerace = new PreRaceParser(); + PreRaceWriter preracewriter = new PreRaceWriter(); + + @Override + @Before + public void setUp() throws PersistenceLayerException, URISyntaxException + { + super.setUp(); + TokenRegistration.register(preclass); + TokenRegistration.register(preclasswriter); + TokenRegistration.register(prerace); + TokenRegistration.register(preracewriter); + } + + @Override + public Class<PCClass> getCDOMClass() + { + return PCClass.class; + } + + @Override + public CDOMLoader<PCClass> getLoader() + { + return loader; + } + + @Override + public CDOMPrimaryToken<PCClass> getToken() + { + return token; + } + + @Test + public void testInvalidInputEmpty() throws PersistenceLayerException + { + assertFalse(parse("")); + assertNoSideEffects(); + } + + @Test + public void testInvalidInputLeadingComma() throws PersistenceLayerException + { + assertFalse(parse(",Good")); + assertNoSideEffects(); + } + + @Test + public void testInvalidInputTrailingComma() + throws PersistenceLayerException + { + assertFalse(parse("Fireball,")); + assertNoSideEffects(); + } + + @Test + public void testInvalidInputDoubleCommaSeparator() + throws PersistenceLayerException + { + assertFalse(parse("Fireball,,Lightning Bolt")); + assertNoSideEffects(); + } + + @Test + public void testRoundRobinDescriptorSimple() + throws PersistenceLayerException + { + runRoundRobin("Fire"); + } + + @Test + public void testRoundRobinDescriptorAnd() throws PersistenceLayerException + { + runRoundRobin("Fear,Fire"); + } + +} Added: Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/RaceTypeTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/RaceTypeTokenTest.java (rev 0) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/RaceTypeTokenTest.java 2008-12-30 20:58:12 UTC (rev 8723) @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2007 Tom Parker <th...@us...> + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ +package plugin.lsttokens.pcclass; + +import org.junit.Test; + +import pcgen.core.PCClass; +import pcgen.persistence.PersistenceLayerException; +import pcgen.rules.persistence.CDOMLoader; +import pcgen.rules.persistence.token.CDOMPrimaryToken; +import plugin.lsttokens.testsupport.AbstractTokenTestCase; +import plugin.lsttokens.testsupport.CDOMTokenLoader; + +public class RaceTypeTokenTest extends AbstractTokenTestCase<PCClass> +{ + + static PreracetypeToken token = new PreracetypeToken(); + static CDOMTokenLoader<PCClass> loader = new CDOMTokenLoader<PCClass>( + PCClass.class); + + @Override + public Class<PCClass> getCDOMClass() + { + return PCClass.class; + } + + @Override + public CDOMLoader<PCClass> getLoader() + { + return loader; + } + + @Override + public CDOMPrimaryToken<PCClass> getToken() + { + return token; + } + + @Test + public void testInvalidEmptyInput() throws PersistenceLayerException + { + assertFalse(parse("")); + assertNoSideEffects(); + } + + @Test + public void testRoundRobinBase() throws PersistenceLayerException + { + runRoundRobin("Rheinhessen"); + } + + @Test + public void testRoundRobinWithSpace() throws PersistenceLayerException + { + runRoundRobin("Finger Lakes"); + } + + @Test + public void testRoundRobinNonEnglishAndN() throws PersistenceLayerException + { + runRoundRobin("Nieder\xF6sterreich"); + } + + @Test + public void testRoundRobinHyphen() throws PersistenceLayerException + { + runRoundRobin("Languedoc-Roussillon"); + } + + @Test + public void testRoundRobinY() throws PersistenceLayerException + { + runRoundRobin("Yarra Valley"); + } +} Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/SkillListTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/SkillListTokenTest.java 2008-12-30 20:57:43 UTC (rev 8722) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/SkillListTokenTest.java 2008-12-30 20:58:12 UTC (rev 8723) @@ -60,6 +60,13 @@ } @Test + public void testInvalidInputOnlyNumber() throws PersistenceLayerException + { + assertFalse(parse("1")); + assertNoSideEffects(); + } + + @Test public void testInvalidInputNaN() throws PersistenceLayerException { construct(primaryContext, "TestWP1"); Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/SpellListTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/SpellListTokenTest.java 2008-12-30 20:57:43 UTC (rev 8722) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/SpellListTokenTest.java 2008-12-30 20:58:12 UTC (rev 8723) @@ -61,6 +61,13 @@ } @Test + public void testInvalidInputOnlyNumber() throws PersistenceLayerException + { + assertFalse(parse("1")); + assertNoSideEffects(); + } + + @Test public void testInvalidNoObject() throws PersistenceLayerException { assertFalse(parse("1|")); Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/level/AddDomainsTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/level/AddDomainsTokenTest.java 2008-12-30 20:57:43 UTC (rev 8722) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/level/AddDomainsTokenTest.java 2008-12-30 20:58:12 UTC (rev 8723) @@ -194,4 +194,15 @@ runRoundRobin("TestWP1[PRERACE:1,Dwarf]" + getJoinCharacter() + "TestWP2[PRERACE:1,Human]" + getJoinCharacter() + "TestWP3"); } + + @Test + public void testInvalidInputBadPrerequisite() + throws PersistenceLayerException + { + construct(primaryContext, "TestWP1"); + construct(secondaryContext, "TestWP1"); + assertFalse(parse("TestWP1[PREFOO:1,Human]")); + assertNoSideEffects(); + } + } Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/level/DomainTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/level/DomainTokenTest.java 2008-12-30 20:57:43 UTC (rev 8722) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/pcclass/level/DomainTokenTest.java 2008-12-30 20:58:12 UTC (rev 8723) @@ -113,7 +113,7 @@ @Override public boolean isClearLegal() { - return false; + return true; } @Override @@ -186,4 +186,13 @@ + "TestWP2[PRERACE:1,Human]" + getJoinCharacter() + "TestWP3"); } + @Test + public void testInvalidInputBadPrerequisite() + throws PersistenceLayerException + { + construct(primaryContext, "TestWP1"); + construct(secondaryContext, "TestWP1"); + assertFalse(parse("TestWP1[PREFOO:1,Human]")); + assertNoSideEffects(); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |