|
From: <th...@us...> - 2008-12-31 03:56:05
|
Revision: 8744
http://pcgen.svn.sourceforge.net/pcgen/?rev=8744&view=rev
Author: thpr
Date: 2008-12-31 03:55:56 +0000 (Wed, 31 Dec 2008)
Log Message:
-----------
additional token tests
Modified Paths:
--------------
Trunk/pcgen/code/src/utest/plugin/lsttokens/testsupport/AbstractAddTokenTestCase.java
Added Paths:
-----------
Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/
Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/ArmorProfTokenTest.java
Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/EquipTokenTest.java
Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/FeatTokenTest.java
Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/ShieldProfTokenTest.java
Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/WeaponProfTokenTest.java
Added: Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/ArmorProfTokenTest.java
===================================================================
--- Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/ArmorProfTokenTest.java (rev 0)
+++ Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/ArmorProfTokenTest.java 2008-12-31 03:55:56 UTC (rev 8744)
@@ -0,0 +1,206 @@
+/*
+ *
+ * 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.auto;
+
+import org.junit.Test;
+
+import pcgen.cdom.base.CDOMObject;
+import pcgen.core.ArmorProf;
+import pcgen.core.PCTemplate;
+import pcgen.persistence.PersistenceLayerException;
+import pcgen.rules.persistence.CDOMLoader;
+import pcgen.rules.persistence.token.CDOMPrimaryToken;
+import pcgen.rules.persistence.token.CDOMSecondaryToken;
+import plugin.lsttokens.AutoLst;
+import plugin.lsttokens.testsupport.AbstractAddTokenTestCase;
+import plugin.lsttokens.testsupport.CDOMTokenLoader;
+
+public class ArmorProfTokenTest extends
+ AbstractAddTokenTestCase<CDOMObject, ArmorProf>
+{
+
+ static AutoLst token = new AutoLst();
+ static ArmorProfToken subtoken = new ArmorProfToken();
+ static CDOMTokenLoader<CDOMObject> loader = new CDOMTokenLoader<CDOMObject>(
+ CDOMObject.class);
+
+ @Override
+ public char getJoinCharacter()
+ {
+ return '|';
+ }
+
+ @Override
+ public Class<PCTemplate> getCDOMClass()
+ {
+ return PCTemplate.class;
+ }
+
+ @Override
+ public CDOMLoader<CDOMObject> getLoader()
+ {
+ return loader;
+ }
+
+ @Override
+ public CDOMPrimaryToken<CDOMObject> getToken()
+ {
+ return token;
+ }
+
+ @Override
+ public CDOMSecondaryToken<?> getSubToken()
+ {
+ return subtoken;
+ }
+
+ @Override
+ public Class<ArmorProf> getTargetClass()
+ {
+ return ArmorProf.class;
+ }
+
+ @Override
+ public boolean isAllLegal()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isTypeLegal()
+ {
+ return true;
+ }
+
+ @Test
+ public void testEmpty()
+ {
+ // Just to get Eclipse to recognize this as a JUnit 4.0 Test Case
+ }
+
+ @Override
+ public boolean allowsParenAsSub()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean allowsFormula()
+ {
+ return false;
+ }
+
+ @Override
+ public String getTypePrefix()
+ {
+ return "ARMOR";
+ }
+
+ @Test
+ public void testRoundRobinList() throws PersistenceLayerException
+ {
+ runRoundRobin(getSubTokenName() + '|' + "%LIST");
+ }
+
+
+ @Test
+ public void testInvalidEmptyPre() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[]"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidEmptyPre2() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1["));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidEmptyPre3() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ boolean parse = parse(getSubTokenName() + '|' + "TestWP1]");
+ if (parse)
+ {
+ assertFalse(primaryContext.ref.validate());
+ }
+ else
+ {
+ assertNoSideEffects();
+ }
+ }
+
+ @Test
+ public void testInvalidMismatchedBracket() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[PRERACE:Dwarf"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidTrailingAfterBracket()
+ throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[PRERACE:Dwarf]Hi"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testRoundRobinOnePre() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(primaryContext, "TestWP2");
+ construct(secondaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP2");
+ runRoundRobin(getSubTokenName() + '|' + "TestWP1[PRERACE:1,Dwarf]");
+ }
+
+ @Test
+ public void testRoundRobinDupeTwoPrereqs() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(primaryContext, "TestWP2");
+ construct(secondaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP2");
+ runRoundRobin(getSubTokenName() + '|' + "TestWP1[PRERACE:1,Dwarf]",
+ getSubTokenName() + '|' + "TestWP1[PRERACE:1,Human]");
+ }
+
+ @Test
+ public void testInvalidInputBadPrerequisite()
+ throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[PREFOO:1,Human]"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testRoundRobinListPre() throws PersistenceLayerException
+ {
+ runRoundRobin(getSubTokenName() + '|' + "%LIST[PRERACE:1,Dwarf]");
+ }
+
+}
Added: Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/EquipTokenTest.java
===================================================================
--- Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/EquipTokenTest.java (rev 0)
+++ Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/EquipTokenTest.java 2008-12-31 03:55:56 UTC (rev 8744)
@@ -0,0 +1,223 @@
+/*
+ *
+ * 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.auto;
+
+import java.net.URISyntaxException;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import pcgen.cdom.base.CDOMObject;
+import pcgen.core.Equipment;
+import pcgen.core.PCTemplate;
+import pcgen.persistence.PersistenceLayerException;
+import pcgen.rules.persistence.CDOMLoader;
+import pcgen.rules.persistence.token.CDOMPrimaryToken;
+import pcgen.rules.persistence.token.CDOMSecondaryToken;
+import plugin.lsttokens.AutoLst;
+import plugin.lsttokens.testsupport.AbstractAddTokenTestCase;
+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 EquipTokenTest extends
+ AbstractAddTokenTestCase<CDOMObject, Equipment>
+{
+
+ PreClassParser preclass = new PreClassParser();
+ PreClassWriter preclasswriter = new PreClassWriter();
+ PreRaceParser prerace = new PreRaceParser();
+ PreRaceWriter preracewriter = new PreRaceWriter();
+
+ static AutoLst token = new AutoLst();
+ static EquipToken subtoken = new EquipToken();
+ static CDOMTokenLoader<CDOMObject> loader = new CDOMTokenLoader<CDOMObject>(
+ CDOMObject.class);
+
+ @Override
+ @Before
+ public void setUp() throws PersistenceLayerException, URISyntaxException
+ {
+ super.setUp();
+ TokenRegistration.register(preclass);
+ TokenRegistration.register(preclasswriter);
+ TokenRegistration.register(prerace);
+ TokenRegistration.register(preracewriter);
+ }
+
+ @Override
+ public char getJoinCharacter()
+ {
+ return '|';
+ }
+
+ @Override
+ public Class<PCTemplate> getCDOMClass()
+ {
+ return PCTemplate.class;
+ }
+
+ @Override
+ public CDOMLoader<CDOMObject> getLoader()
+ {
+ return loader;
+ }
+
+ @Override
+ public CDOMPrimaryToken<CDOMObject> getToken()
+ {
+ return token;
+ }
+
+ @Override
+ public CDOMSecondaryToken<?> getSubToken()
+ {
+ return subtoken;
+ }
+
+ @Override
+ public Class<Equipment> getTargetClass()
+ {
+ return Equipment.class;
+ }
+
+ @Override
+ public boolean isAllLegal()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean isTypeLegal()
+ {
+ return true;
+ }
+
+ @Test
+ public void testEmpty()
+ {
+ // Just to get Eclipse to recognize this as a JUnit 4.0 Test Case
+ }
+
+ @Override
+ public boolean allowsParenAsSub()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean allowsFormula()
+ {
+ return false;
+ }
+
+ @Test
+ public void testRoundRobinList() throws PersistenceLayerException
+ {
+ runRoundRobin(getSubTokenName() + '|' + "%LIST");
+ }
+
+ @Test
+ public void testInvalidEmptyPre() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[]"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidEmptyPre2() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1["));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidEmptyPre3() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ boolean parse = parse(getSubTokenName() + '|' + "TestWP1]");
+ if (parse)
+ {
+ assertFalse(primaryContext.ref.validate());
+ }
+ else
+ {
+ assertNoSideEffects();
+ }
+ }
+
+ @Test
+ public void testInvalidMismatchedBracket() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[PRERACE:Dwarf"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidTrailingAfterBracket()
+ throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[PRERACE:Dwarf]Hi"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testRoundRobinOnePre() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(primaryContext, "TestWP2");
+ construct(secondaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP2");
+ runRoundRobin(getSubTokenName() + '|' + "TestWP1[PRERACE:1,Dwarf]");
+ }
+
+ @Test
+ public void testRoundRobinListPre() throws PersistenceLayerException
+ {
+ runRoundRobin(getSubTokenName() + '|' + "%LIST[PRERACE:1,Dwarf]");
+ }
+
+ @Test
+ public void testRoundRobinDupeTwoPrereqs() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(primaryContext, "TestWP2");
+ construct(secondaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP2");
+ runRoundRobin(getSubTokenName() + '|' + "TestWP1[PRERACE:1,Dwarf]",
+ getSubTokenName() + '|' + "TestWP1[PRERACE:1,Human]");
+ }
+
+ @Test
+ public void testInvalidInputBadPrerequisite()
+ throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[PREFOO:1,Human]"));
+ assertNoSideEffects();
+ }
+
+}
Added: Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/FeatTokenTest.java
===================================================================
--- Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/FeatTokenTest.java (rev 0)
+++ Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/FeatTokenTest.java 2008-12-31 03:55:56 UTC (rev 8744)
@@ -0,0 +1,199 @@
+/*
+ *
+ * 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.auto;
+
+import java.net.URISyntaxException;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import pcgen.cdom.base.CDOMObject;
+import pcgen.core.Ability;
+import pcgen.core.AbilityCategory;
+import pcgen.core.Equipment;
+import pcgen.core.PCTemplate;
+import pcgen.persistence.PersistenceLayerException;
+import pcgen.rules.context.LoadContext;
+import pcgen.rules.persistence.CDOMLoader;
+import pcgen.rules.persistence.token.CDOMPrimaryToken;
+import pcgen.rules.persistence.token.CDOMSecondaryToken;
+import plugin.lsttokens.AutoLst;
+import plugin.lsttokens.testsupport.AbstractAddTokenTestCase;
+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 FeatTokenTest extends
+ AbstractAddTokenTestCase<CDOMObject, Equipment>
+{
+
+ 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);
+ }
+
+ static AutoLst token = new AutoLst();
+ static FeatToken subtoken = new FeatToken();
+ static CDOMTokenLoader<CDOMObject> loader = new CDOMTokenLoader<CDOMObject>(
+ CDOMObject.class);
+
+ @Override
+ protected void construct(LoadContext loadContext, String one)
+ {
+ Ability obj = loadContext.ref.constructCDOMObject(Ability.class, one);
+ loadContext.ref.reassociateCategory(AbilityCategory.FEAT, obj);
+ }
+
+ @Override
+ public char getJoinCharacter()
+ {
+ return '|';
+ }
+
+ @Override
+ public Class<PCTemplate> getCDOMClass()
+ {
+ return PCTemplate.class;
+ }
+
+ @Override
+ public CDOMLoader<CDOMObject> getLoader()
+ {
+ return loader;
+ }
+
+ @Override
+ public CDOMPrimaryToken<CDOMObject> getToken()
+ {
+ return token;
+ }
+
+ @Override
+ public CDOMSecondaryToken<?> getSubToken()
+ {
+ return subtoken;
+ }
+
+ @Override
+ public Class<Equipment> getTargetClass()
+ {
+ return Equipment.class;
+ }
+
+ @Override
+ public boolean isAllLegal()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean isTypeLegal()
+ {
+ return true;
+ }
+
+ @Test
+ public void testEmpty()
+ {
+ // Just to get Eclipse to recognize this as a JUnit 4.0 Test Case
+ }
+
+ @Override
+ public boolean allowsParenAsSub()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean allowsFormula()
+ {
+ return false;
+ }
+
+ @Test
+ public void testInvalidEmptyPre() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1|"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidOnlyPre() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "PRERACE:1,Dwarf"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testRoundRobinOnePre() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(primaryContext, "TestWP2");
+ construct(secondaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP2");
+ runRoundRobin(getSubTokenName() + '|' + "TestWP1|PRERACE:1,Dwarf");
+ }
+
+ @Test
+ public void testRoundRobinTwoPre() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(primaryContext, "TestWP2");
+ construct(secondaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP2");
+ runRoundRobin(getSubTokenName() + '|' + "TestWP1|PRECLASS:1,Fighter=3|PRERACE:1,Dwarf");
+ }
+
+ @Test
+ public void testRoundRobinDupeTwoPrereqs() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(primaryContext, "TestWP2");
+ construct(secondaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP2");
+ runRoundRobin(getSubTokenName() + '|' + "TestWP1|PRERACE:1,Dwarf",
+ getSubTokenName() + '|' + "TestWP1|PRERACE:1,Human");
+ }
+
+ @Test
+ public void testInvalidInputBadPrerequisite()
+ throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1|PREFOO:1,Human"));
+ assertNoSideEffects();
+ }
+
+}
Added: Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/ShieldProfTokenTest.java
===================================================================
--- Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/ShieldProfTokenTest.java (rev 0)
+++ Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/ShieldProfTokenTest.java 2008-12-31 03:55:56 UTC (rev 8744)
@@ -0,0 +1,229 @@
+/*
+ *
+ * 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.auto;
+
+import java.net.URISyntaxException;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import pcgen.cdom.base.CDOMObject;
+import pcgen.core.PCTemplate;
+import pcgen.core.ShieldProf;
+import pcgen.persistence.PersistenceLayerException;
+import pcgen.rules.persistence.CDOMLoader;
+import pcgen.rules.persistence.token.CDOMPrimaryToken;
+import pcgen.rules.persistence.token.CDOMSecondaryToken;
+import plugin.lsttokens.AutoLst;
+import plugin.lsttokens.testsupport.AbstractAddTokenTestCase;
+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 ShieldProfTokenTest extends
+ AbstractAddTokenTestCase<CDOMObject, ShieldProf>
+{
+
+ PreClassParser preclass = new PreClassParser();
+ PreClassWriter preclasswriter = new PreClassWriter();
+ PreRaceParser prerace = new PreRaceParser();
+ PreRaceWriter preracewriter = new PreRaceWriter();
+
+ static AutoLst token = new AutoLst();
+ static ShieldProfToken subtoken = new ShieldProfToken();
+ static CDOMTokenLoader<CDOMObject> loader = new CDOMTokenLoader<CDOMObject>(
+ CDOMObject.class);
+
+ @Override
+ @Before
+ public void setUp() throws PersistenceLayerException, URISyntaxException
+ {
+ super.setUp();
+ TokenRegistration.register(preclass);
+ TokenRegistration.register(preclasswriter);
+ TokenRegistration.register(prerace);
+ TokenRegistration.register(preracewriter);
+ }
+
+ @Override
+ public char getJoinCharacter()
+ {
+ return '|';
+ }
+
+ @Override
+ public Class<PCTemplate> getCDOMClass()
+ {
+ return PCTemplate.class;
+ }
+
+ @Override
+ public CDOMLoader<CDOMObject> getLoader()
+ {
+ return loader;
+ }
+
+ @Override
+ public CDOMPrimaryToken<CDOMObject> getToken()
+ {
+ return token;
+ }
+
+ @Override
+ public CDOMSecondaryToken<?> getSubToken()
+ {
+ return subtoken;
+ }
+
+ @Override
+ public Class<ShieldProf> getTargetClass()
+ {
+ return ShieldProf.class;
+ }
+
+ @Override
+ public boolean isAllLegal()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isTypeLegal()
+ {
+ return true;
+ }
+
+ @Test
+ public void testEmpty()
+ {
+ // Just to get Eclipse to recognize this as a JUnit 4.0 Test Case
+ }
+
+ @Override
+ public boolean allowsParenAsSub()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean allowsFormula()
+ {
+ return false;
+ }
+
+ @Override
+ public String getTypePrefix()
+ {
+ return "SHIELD";
+ }
+
+ @Test
+ public void testRoundRobinList() throws PersistenceLayerException
+ {
+ runRoundRobin(getSubTokenName() + '|' + "%LIST");
+ }
+
+ @Test
+ public void testInvalidEmptyPre() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[]"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidEmptyPre2() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1["));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidEmptyPre3() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ boolean parse = parse(getSubTokenName() + '|' + "TestWP1]");
+ if (parse)
+ {
+ assertFalse(primaryContext.ref.validate());
+ }
+ else
+ {
+ assertNoSideEffects();
+ }
+ }
+
+ @Test
+ public void testInvalidMismatchedBracket() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[PRERACE:Dwarf"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidTrailingAfterBracket()
+ throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[PRERACE:Dwarf]Hi"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testRoundRobinOnePre() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(primaryContext, "TestWP2");
+ construct(secondaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP2");
+ runRoundRobin(getSubTokenName() + '|' + "TestWP1[PRERACE:1,Dwarf]");
+ }
+
+ @Test
+ public void testRoundRobinListPre() throws PersistenceLayerException
+ {
+ runRoundRobin(getSubTokenName() + '|' + "%LIST[PRERACE:1,Dwarf]");
+ }
+
+ @Test
+ public void testRoundRobinDupeTwoPrereqs() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(primaryContext, "TestWP2");
+ construct(secondaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP2");
+ runRoundRobin(getSubTokenName() + '|' + "TestWP1[PRERACE:1,Dwarf]",
+ getSubTokenName() + '|' + "TestWP1[PRERACE:1,Human]");
+ }
+
+ @Test
+ public void testInvalidInputBadPrerequisite()
+ throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[PREFOO:1,Human]"));
+ assertNoSideEffects();
+ }
+
+}
Added: Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/WeaponProfTokenTest.java
===================================================================
--- Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/WeaponProfTokenTest.java (rev 0)
+++ Trunk/pcgen/code/src/utest/plugin/lsttokens/auto/WeaponProfTokenTest.java 2008-12-31 03:55:56 UTC (rev 8744)
@@ -0,0 +1,211 @@
+/*
+ *
+ * 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.auto;
+
+import org.junit.Test;
+
+import pcgen.cdom.base.CDOMObject;
+import pcgen.core.PCTemplate;
+import pcgen.core.WeaponProf;
+import pcgen.persistence.PersistenceLayerException;
+import pcgen.rules.persistence.CDOMLoader;
+import pcgen.rules.persistence.token.CDOMPrimaryToken;
+import pcgen.rules.persistence.token.CDOMSecondaryToken;
+import plugin.lsttokens.AutoLst;
+import plugin.lsttokens.testsupport.AbstractAddTokenTestCase;
+import plugin.lsttokens.testsupport.CDOMTokenLoader;
+
+public class WeaponProfTokenTest extends
+ AbstractAddTokenTestCase<CDOMObject, WeaponProf>
+{
+
+ static AutoLst token = new AutoLst();
+ static WeaponProfToken subtoken = new WeaponProfToken();
+ static CDOMTokenLoader<CDOMObject> loader = new CDOMTokenLoader<CDOMObject>(
+ CDOMObject.class);
+
+ @Override
+ public char getJoinCharacter()
+ {
+ return '|';
+ }
+
+ @Override
+ public Class<PCTemplate> getCDOMClass()
+ {
+ return PCTemplate.class;
+ }
+
+ @Override
+ public CDOMLoader<CDOMObject> getLoader()
+ {
+ return loader;
+ }
+
+ @Override
+ public CDOMPrimaryToken<CDOMObject> getToken()
+ {
+ return token;
+ }
+
+ @Override
+ public CDOMSecondaryToken<?> getSubToken()
+ {
+ return subtoken;
+ }
+
+ @Override
+ public Class<WeaponProf> getTargetClass()
+ {
+ return WeaponProf.class;
+ }
+
+ @Override
+ public boolean isAllLegal()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isTypeLegal()
+ {
+ return true;
+ }
+
+ @Test
+ public void testEmpty()
+ {
+ // Just to get Eclipse to recognize this as a JUnit 4.0 Test Case
+ }
+
+ @Override
+ public boolean allowsParenAsSub()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean allowsFormula()
+ {
+ return false;
+ }
+
+ @Test
+ public void testRoundRobinList() throws PersistenceLayerException
+ {
+ runRoundRobin(getSubTokenName() + '|' + "%LIST");
+ }
+
+ @Test
+ public void testRoundRobinDeityWeapons() throws PersistenceLayerException
+ {
+ runRoundRobin(getSubTokenName() + '|' + "DEITYWEAPONS");
+ }
+
+
+ @Test
+ public void testInvalidEmptyPre() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[]"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidEmptyPre2() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1["));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidEmptyPre3() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ boolean parse = parse(getSubTokenName() + '|' + "TestWP1]");
+ if (parse)
+ {
+ assertFalse(primaryContext.ref.validate());
+ }
+ else
+ {
+ assertNoSideEffects();
+ }
+ }
+
+ @Test
+ public void testInvalidMismatchedBracket() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[PRERACE:Dwarf"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testInvalidTrailingAfterBracket()
+ throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[PRERACE:Dwarf]Hi"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testRoundRobinOnePre() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(primaryContext, "TestWP2");
+ construct(secondaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP2");
+ runRoundRobin(getSubTokenName() + '|' + "TestWP1[PRERACE:1,Dwarf]");
+ }
+
+ @Test
+ public void testRoundRobinDupeTwoPrereqs() throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(primaryContext, "TestWP2");
+ construct(secondaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP2");
+ runRoundRobin(getSubTokenName() + '|' + "TestWP1[PRERACE:1,Dwarf]",
+ getSubTokenName() + '|' + "TestWP1[PRERACE:1,Human]");
+ }
+
+ @Test
+ public void testInvalidInputBadPrerequisite()
+ throws PersistenceLayerException
+ {
+ construct(primaryContext, "TestWP1");
+ construct(secondaryContext, "TestWP1");
+ assertFalse(parse(getSubTokenName() + '|' + "TestWP1[PREFOO:1,Human]"));
+ assertNoSideEffects();
+ }
+
+ @Test
+ public void testRoundRobinListPre() throws PersistenceLayerException
+ {
+ runRoundRobin(getSubTokenName() + '|' + "%LIST[PRERACE:1,Dwarf]");
+ }
+
+ @Test
+ public void testRoundRobinDeityWeaponsPre() throws PersistenceLayerException
+ {
+ runRoundRobin(getSubTokenName() + '|' + "DEITYWEAPONS[PRERACE:1,Dwarf]");
+ }
+}
Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/testsupport/AbstractAddTokenTestCase.java
===================================================================
--- Trunk/pcgen/code/src/utest/plugin/lsttokens/testsupport/AbstractAddTokenTestCase.java 2008-12-31 03:55:19 UTC (rev 8743)
+++ Trunk/pcgen/code/src/utest/plugin/lsttokens/testsupport/AbstractAddTokenTestCase.java 2008-12-31 03:55:56 UTC (rev 8744)
@@ -48,6 +48,11 @@
return "ALL";
}
+ public String getTypePrefix()
+ {
+ return "";
+ }
+
public abstract boolean allowsParenAsSub();
public abstract boolean allowsFormula();
@@ -168,7 +173,7 @@
{
if (isTypeLegal())
{
- assertFalse(parse(getSubTokenName() + '|' + "TYPE="));
+ assertFalse(parse(getSubTokenName() + '|' + getTypePrefix() + "TYPE="));
assertNoSideEffects();
}
}
@@ -179,7 +184,7 @@
{
if (isTypeLegal())
{
- assertFalse(parse(getSubTokenName() + '|' + "TYPE=One."));
+ assertFalse(parse(getSubTokenName() + '|' + getTypePrefix() + "TYPE=One."));
assertNoSideEffects();
}
}
@@ -190,7 +195,7 @@
{
if (isTypeLegal())
{
- assertFalse(parse(getSubTokenName() + '|' + "TYPE=One..Two"));
+ assertFalse(parse(getSubTokenName() + '|' + getTypePrefix() + "TYPE=One..Two"));
assertNoSideEffects();
}
}
@@ -201,7 +206,7 @@
{
if (isTypeLegal())
{
- assertFalse(parse(getSubTokenName() + '|' + "TYPE=.One"));
+ assertFalse(parse(getSubTokenName() + '|' + getTypePrefix() + "TYPE=.One"));
assertNoSideEffects();
}
}
@@ -239,7 +244,7 @@
{
try
{
- boolean parse = parse(getSubTokenName() + '|' + "TYPE=Foo");
+ boolean parse = parse(getSubTokenName() + '|' + getTypePrefix() + "TYPE=Foo");
if (parse)
{
// Only need to check if parsed as true
@@ -270,7 +275,7 @@
// {
// if (!isTypeLegal())
// {
- // assertTrue(token.parse(primaryContext, primaryProf, "TYPE=TestType"));
+ // assertTrue(token.parse(primaryContext, primaryProf, getTypePrefix() + "TYPE=TestType"));
// assertFalse(primaryContext.ref.validate());
// }
// }
@@ -337,7 +342,7 @@
{
construct(primaryContext, "TestWP1");
assertTrue(parse(getSubTokenName() + '|' + "TestWP1"
- + getJoinCharacter() + "TYPE=TestType" + getJoinCharacter()
+ + getJoinCharacter() + getTypePrefix() + "TYPE=TestType" + getJoinCharacter()
+ "TestWP2"));
assertFalse(primaryContext.ref.validate());
}
@@ -353,7 +358,7 @@
{
construct(primaryContext, "TestWP1");
assertTrue(parse(getSubTokenName() + '|' + "TestWP1"
- + getJoinCharacter() + "TYPE.TestType.OtherTestType"
+ + getJoinCharacter() + getTypePrefix() + "TYPE.TestType.OtherTestType"
+ getJoinCharacter() + "TestWP2"));
assertFalse(primaryContext.ref.validate());
}
@@ -371,17 +376,17 @@
assertTrue(primaryContext.ref.validate());
if (isTypeLegal())
{
- assertTrue(parse(getSubTokenName() + '|' + "TYPE=TestType"));
+ assertTrue(parse(getSubTokenName() + '|' + getTypePrefix() + "TYPE=TestType"));
assertTrue(primaryContext.ref.validate());
- assertTrue(parse(getSubTokenName() + '|' + "TYPE.TestType"));
+ assertTrue(parse(getSubTokenName() + '|' + getTypePrefix() + "TYPE.TestType"));
assertTrue(primaryContext.ref.validate());
assertTrue(parse(getSubTokenName() + '|' + "TestWP1"
+ getJoinCharacter() + "TestWP2" + getJoinCharacter()
- + "TYPE=TestType"));
+ + getTypePrefix() + "TYPE=TestType"));
assertTrue(primaryContext.ref.validate());
assertTrue(parse(getSubTokenName() + '|' + "TestWP1"
+ getJoinCharacter() + "TestWP2" + getJoinCharacter()
- + "TYPE=TestType.OtherTestType"));
+ + getTypePrefix() + "TYPE=TestType.OtherTestType"));
assertTrue(primaryContext.ref.validate());
}
if (isAllLegal())
@@ -475,7 +480,7 @@
construct(secondaryContext, "TestWP2");
runRoundRobin(getSubTokenName() + '|' + "TestWP1"
+ getJoinCharacter() + "TestWP2" + getJoinCharacter()
- + "TYPE=OtherTestType" + getJoinCharacter() + "TYPE=TestType");
+ + getTypePrefix() + "TYPE=OtherTestType" + getJoinCharacter() + getTypePrefix() + "TYPE=TestType");
}
}
@@ -484,7 +489,7 @@
{
if (isTypeLegal())
{
- runRoundRobin(getSubTokenName() + '|' + "TYPE=TestType");
+ runRoundRobin(getSubTokenName() + '|' + getTypePrefix() + "TYPE=TestType");
}
}
@@ -494,7 +499,7 @@
if (isTypeLegal())
{
runRoundRobin(getSubTokenName() + '|'
- + "TYPE=TestAltType.TestThirdType.TestType");
+ + getTypePrefix() + "TYPE=TestAltType.TestThirdType.TestType");
}
}
@@ -530,7 +535,7 @@
if (isTypeLegal() && isAllLegal())
{
assertFalse(parse(getSubTokenName() + '|' + getAllString()
- + getJoinCharacter() + "TYPE=TestType"));
+ + getJoinCharacter() + getTypePrefix() + "TYPE=TestType"));
assertNoSideEffects();
}
}
@@ -540,7 +545,7 @@
{
if (isTypeLegal() && isAllLegal())
{
- assertFalse(parse(getSubTokenName() + '|' + "TYPE=TestType"
+ assertFalse(parse(getSubTokenName() + '|' + getTypePrefix() + "TYPE=TestType"
+ getJoinCharacter() + getAllString()));
assertNoSideEffects();
}
@@ -563,7 +568,7 @@
assertTrue(parseSecondary(getSubTokenName() + '|' + "TestWP1"
+ getJoinCharacter() + "TestWP2"));
assertFalse(parse(getSubTokenName() + '|' + "TestWP3"
- + getJoinCharacter() + "TYPE="));
+ + getJoinCharacter() + getTypePrefix() + "TYPE="));
assertNoSideEffects();
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|