use of plugin.lsttokens.choose.StringToken in project pcgen by PCGen.
the class Gui2InfoFactoryTest method testGetChoices.
/**
* Test the getChoices method with text choices.
*/
public void testGetChoices() {
PlayerCharacter pc = getCharacter();
Gui2InfoFactory ca = new Gui2InfoFactory(pc);
Ability choiceAbility = TestHelper.makeAbility("Skill Focus", AbilityCategory.FEAT, "General");
choiceAbility.put(ObjectKey.MULTIPLE_ALLOWED, Boolean.TRUE);
StringToken st = new plugin.lsttokens.choose.StringToken();
ParseResult pr = st.parseToken(Globals.getContext(), choiceAbility, "SKILL|Perception|Acrobatics");
assertTrue(pr.passed());
Globals.getContext().commit();
pcgenFinalize(choiceAbility, "Perception", pc, AbilityCategory.FEAT);
assertEquals("Incorrect single choice", "Perception", ca.getChoices(choiceAbility));
pcgenFinalize(choiceAbility, "Acrobatics", pc, AbilityCategory.FEAT);
assertEquals("Incorrect multiple choice", "Acrobatics, Perception", ca.getChoices(choiceAbility));
}
use of plugin.lsttokens.choose.StringToken in project pcgen by PCGen.
the class CharacterAbilitiesTest method testRebuildAbilityListsMult.
/**
* Test method for {@link pcgen.gui2.facade.CharacterAbilities#rebuildAbilityLists()}.
*/
@Test
public final void testRebuildAbilityListsMult() {
PlayerCharacter pc = getCharacter();
CharacterAbilities ca = new CharacterAbilities(pc, uiDelegate, dataset, todoManager);
ca.rebuildAbilityLists();
ListFacade<AbilityCategoryFacade> categories = ca.getActiveAbilityCategories();
assertNotNull("Categories should not be null", categories);
assertTrue("Feat should be active", categories.containsElement(AbilityCategory.FEAT));
ListFacade<AbilityFacade> abilities = ca.getAbilities(AbilityCategory.FEAT);
assertNotNull("Feat list should not be null", abilities);
assertTrue("Feat list should be empty", abilities.isEmpty());
// Add an entry - note rebuild is implicit
Ability reading = TestHelper.makeAbility("reading", AbilityCategory.FEAT, "interest");
reading.put(ObjectKey.MULTIPLE_ALLOWED, Boolean.TRUE);
StringToken st = new plugin.lsttokens.choose.StringToken();
ParseResult pr = st.parseToken(Globals.getContext(), reading, "STRING|Magazines|Books");
assertTrue(pr.passed());
Globals.getContext().commit();
applyAbility(pc, AbilityCategory.FEAT, reading, "Books");
abilities = ca.getAbilities(AbilityCategory.FEAT);
assertFalse("Feat list should not be empty", abilities.isEmpty());
Ability abilityFromList = (Ability) abilities.getElementAt(0);
assertEquals("Should have found reading", reading, abilityFromList);
assertEquals("Feat list should have one entry", 1, abilities.getSize());
// Now add the choice
pcgenFinalize(abilityFromList, "Magazines", pc, AbilityCategory.FEAT);
ca.rebuildAbilityLists();
abilities = ca.getAbilities(AbilityCategory.FEAT);
assertEquals("Feat list should have one entry", 1, abilities.getSize());
abilityFromList = (Ability) abilities.getElementAt(0);
assertEquals("Should have found reading", reading, abilityFromList);
}
use of plugin.lsttokens.choose.StringToken in project pcgen by PCGen.
the class AbilitySelectionTokenTest method testDecodeChoice.
@Test
public void testDecodeChoice() {
try {
pca.decodeChoice(context, "Category=Special Ability|ItemName");
fail();
} catch (IllegalArgumentException e) {
// OK
}
Ability item = construct("ItemName");
AbilitySelection as = new AbilitySelection(item, null);
assertEquals(as, pca.decodeChoice(context, "CATEGORY=FEAT|ItemName"));
Ability paren = construct("ParenName (test)");
as = new AbilitySelection(paren, null);
assertEquals(as, pca.decodeChoice(context, "CATEGORY=Feat|ParenName (test)"));
Ability sel = construct("ChooseName");
sel.put(ObjectKey.MULTIPLE_ALLOWED, Boolean.TRUE);
StringToken st = new plugin.lsttokens.choose.StringToken();
ParseResult pr = st.parseToken(Globals.getContext(), sel, "selection|Acrobatics");
assertTrue(pr.passed());
Globals.getContext().commit();
as = new AbilitySelection(sel, "selection");
assertEquals(as, pca.decodeChoice(context, "CATEGORY=Feat|ChooseName|selection"));
}
use of plugin.lsttokens.choose.StringToken in project pcgen by PCGen.
the class AbilitySelectionTokenTest method testEncodeChoice.
@Test
public void testEncodeChoice() {
Ability item = construct("ItemName");
AbilitySelection as = new AbilitySelection(item, null);
assertEquals("CATEGORY=FEAT|ItemName", pca.encodeChoice(as));
Ability paren = construct("ParenName (test)");
as = new AbilitySelection(paren, null);
assertEquals("CATEGORY=FEAT|ParenName (test)", pca.encodeChoice(as));
Ability sel = construct("ChooseName");
sel.put(ObjectKey.MULTIPLE_ALLOWED, Boolean.TRUE);
StringToken st = new plugin.lsttokens.choose.StringToken();
ParseResult pr = st.parseToken(Globals.getContext(), sel, "selection|Acrobatics");
assertTrue(pr.passed());
Globals.getContext().commit();
as = new AbilitySelection(sel, "selection");
assertEquals("CATEGORY=FEAT|ChooseName|selection", pca.encodeChoice(as));
}
Aggregations