Search in sources :

Example 1 with StringToken

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));
}
Also used : Ability(pcgen.core.Ability) PlayerCharacter(pcgen.core.PlayerCharacter) ParseResult(pcgen.rules.persistence.token.ParseResult) StringToken(plugin.lsttokens.choose.StringToken)

Example 2 with StringToken

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);
}
Also used : Ability(pcgen.core.Ability) PlayerCharacter(pcgen.core.PlayerCharacter) ParseResult(pcgen.rules.persistence.token.ParseResult) AbilityCategoryFacade(pcgen.facade.core.AbilityCategoryFacade) AbilityFacade(pcgen.facade.core.AbilityFacade) StringToken(plugin.lsttokens.choose.StringToken) Test(org.junit.Test)

Example 3 with StringToken

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"));
}
Also used : Ability(pcgen.core.Ability) ParseResult(pcgen.rules.persistence.token.ParseResult) AbilitySelection(pcgen.cdom.content.AbilitySelection) StringToken(plugin.lsttokens.choose.StringToken) Test(org.junit.Test)

Example 4 with StringToken

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));
}
Also used : Ability(pcgen.core.Ability) ParseResult(pcgen.rules.persistence.token.ParseResult) AbilitySelection(pcgen.cdom.content.AbilitySelection) StringToken(plugin.lsttokens.choose.StringToken) Test(org.junit.Test)

Aggregations

Ability (pcgen.core.Ability)4 ParseResult (pcgen.rules.persistence.token.ParseResult)4 StringToken (plugin.lsttokens.choose.StringToken)4 Test (org.junit.Test)3 AbilitySelection (pcgen.cdom.content.AbilitySelection)2 PlayerCharacter (pcgen.core.PlayerCharacter)2 AbilityCategoryFacade (pcgen.facade.core.AbilityCategoryFacade)1 AbilityFacade (pcgen.facade.core.AbilityFacade)1