Search in sources :

Example 96 with CNAbility

use of pcgen.cdom.content.CNAbility in project pcgen by PCGen.

the class AbstractCNASEnforcingFacetTest method testDetectSameSelection.

@Test
public void testDetectSameSelection() {
    Object source1 = new Object();
    assertTrue(getFacet().isEmpty(id));
    assertEquals(0, getFacet().getCount(id));
    //Note: This is also an identity tests
    CNAbility n1 = CNAbilityFactory.getCNAbility(feat, Nature.NORMAL, multyes);
    CNAbility n2 = CNAbilityFactory.getCNAbility(feat, Nature.NORMAL, multyes);
    CNAbilitySelection cnas1 = new CNAbilitySelection(n1, "English");
    CNAbilitySelection cnas2 = new CNAbilitySelection(n2, "English");
    assertTrue(getFacet().add(id, cnas1, source1));
    assertFalse(getFacet().isEmpty(id));
    assertEquals(1, getFacet().getCount(id));
    assertFalse(getFacet().add(id, cnas2, source1));
    assertEquals(1, getFacet().getCount(id));
    //LIFO
    assertFalse(getFacet().remove(id, cnas2, source1));
    assertEquals(1, getFacet().getCount(id));
    assertFalse(getFacet().isEmpty(id));
    assertTrue(getFacet().remove(id, cnas1, source1));
    assertEquals(0, getFacet().getCount(id));
    assertTrue(getFacet().isEmpty(id));
    assertTrue(getFacet().add(id, cnas1, source1));
    assertFalse(getFacet().isEmpty(id));
    assertEquals(1, getFacet().getCount(id));
    assertFalse(getFacet().add(id, cnas2, source1));
    assertEquals(1, getFacet().getCount(id));
    //FIFO
    //This assertFalse is the identity test, since it *actually* removes cnas2 and thus returns false
    assertFalse(getFacet().remove(id, cnas1, source1));
    assertEquals(1, getFacet().getCount(id));
    assertFalse(getFacet().isEmpty(id));
    assertTrue(getFacet().remove(id, cnas2, source1));
    assertEquals(0, getFacet().getCount(id));
    assertTrue(getFacet().isEmpty(id));
}
Also used : CNAbility(pcgen.cdom.content.CNAbility) CNAbilitySelection(pcgen.cdom.helper.CNAbilitySelection) Test(org.junit.Test)

Example 97 with CNAbility

use of pcgen.cdom.content.CNAbility in project pcgen by PCGen.

the class CNAbilitySelectionUtilitiesTest method testDetectSameParentCategory.

@Test
public void testDetectSameParentCategory() {
    CNAbility n1 = CNAbilityFactory.getCNAbility(feat, Nature.NORMAL, nomult);
    CNAbility n2 = CNAbilityFactory.getCNAbility(fighterfeat, Nature.NORMAL, nomult);
    CNAbilitySelection cnas1 = new CNAbilitySelection(n1);
    CNAbilitySelection cnas2 = new CNAbilitySelection(n2);
    assertFalse(CNAbilitySelectionUtilities.canCoExist(cnas1, cnas2));
    CNAbility virtual = CNAbilityFactory.getCNAbility(fighterfeat, Nature.VIRTUAL, nomult);
    CNAbilitySelection cnas3 = new CNAbilitySelection(virtual);
    assertFalse(CNAbilitySelectionUtilities.canCoExist(cnas1, cnas3));
}
Also used : CNAbility(pcgen.cdom.content.CNAbility) Test(org.junit.Test)

Example 98 with CNAbility

use of pcgen.cdom.content.CNAbility in project pcgen by PCGen.

the class CNAbilitySelectionUtilitiesTest method testDifferentNature.

@Test
public void testDifferentNature() {
    CNAbility normal = CNAbilityFactory.getCNAbility(feat, Nature.NORMAL, nomult);
    CNAbility virtual = CNAbilityFactory.getCNAbility(feat, Nature.VIRTUAL, nomult);
    CNAbilitySelection cnas1 = new CNAbilitySelection(normal);
    CNAbilitySelection cnas2 = new CNAbilitySelection(virtual);
    assertFalse(CNAbilitySelectionUtilities.canCoExist(cnas1, cnas2));
}
Also used : CNAbility(pcgen.cdom.content.CNAbility) Test(org.junit.Test)

Example 99 with CNAbility

use of pcgen.cdom.content.CNAbility in project pcgen by PCGen.

the class CNAbilitySelectionUtilitiesTest method testDifferentSelectionAndNature.

@Test
public void testDifferentSelectionAndNature() {
    CNAbility normal = CNAbilityFactory.getCNAbility(feat, Nature.NORMAL, multyes);
    CNAbility virtual = CNAbilityFactory.getCNAbility(feat, Nature.VIRTUAL, multyes);
    CNAbilitySelection cnas1 = new CNAbilitySelection(normal, "English");
    CNAbilitySelection cnas2 = new CNAbilitySelection(virtual, "German");
    assertTrue(CNAbilitySelectionUtilities.canCoExist(cnas1, cnas2));
}
Also used : CNAbility(pcgen.cdom.content.CNAbility) Test(org.junit.Test)

Example 100 with CNAbility

use of pcgen.cdom.content.CNAbility in project pcgen by PCGen.

the class AbstractCNASEnforcingFacetTest method testDifferentCategory.

@Test
public void testDifferentCategory() {
    Object source1 = new Object();
    assertTrue(getFacet().isEmpty(id));
    assertEquals(0, getFacet().getCount(id));
    CNAbility nomultCNA = CNAbilityFactory.getCNAbility(feat, Nature.NORMAL, nomult);
    Ability trickster = new Ability();
    trickster.setName("NoMult");
    trickster.setCDOMCategory(specialty);
    CNAbility othernomultCNA = CNAbilityFactory.getCNAbility(specialty, Nature.NORMAL, trickster);
    CNAbilitySelection cnas1 = new CNAbilitySelection(nomultCNA);
    CNAbilitySelection cnas2 = new CNAbilitySelection(othernomultCNA);
    assertTrue(getFacet().add(id, cnas1, source1));
    assertFalse(getFacet().isEmpty(id));
    assertEquals(1, getFacet().getCount(id));
    assertTrue(getFacet().add(id, cnas2, source1));
    assertEquals(2, getFacet().getCount(id));
    assertTrue(getFacet().remove(id, cnas2, source1));
    assertEquals(1, getFacet().getCount(id));
    assertFalse(getFacet().isEmpty(id));
    //Useless remove
    assertFalse(getFacet().remove(id, cnas2, source1));
    assertEquals(1, getFacet().getCount(id));
    //Now a real remove
    assertTrue(getFacet().remove(id, cnas1, source1));
    assertEquals(0, getFacet().getCount(id));
    assertTrue(getFacet().isEmpty(id));
    //Useless remove
    assertFalse(getFacet().remove(id, cnas2, source1));
}
Also used : CNAbility(pcgen.cdom.content.CNAbility) Ability(pcgen.core.Ability) CNAbility(pcgen.cdom.content.CNAbility) CNAbilitySelection(pcgen.cdom.helper.CNAbilitySelection) Test(org.junit.Test)

Aggregations

CNAbility (pcgen.cdom.content.CNAbility)131 Ability (pcgen.core.Ability)77 ArrayList (java.util.ArrayList)37 CNAbilitySelection (pcgen.cdom.helper.CNAbilitySelection)28 AbilityCategory (pcgen.core.AbilityCategory)26 Test (org.junit.Test)21 HashMapToList (pcgen.base.util.HashMapToList)16 List (java.util.List)15 PlayerCharacter (pcgen.core.PlayerCharacter)9 Language (pcgen.core.Language)7 HashSet (java.util.HashSet)5 Nature (pcgen.cdom.enumeration.Nature)5 SpecialAbility (pcgen.core.SpecialAbility)5 BonusObj (pcgen.core.bonus.BonusObj)5 BigDecimal (java.math.BigDecimal)4 CDOMObject (pcgen.cdom.base.CDOMObject)4 LoadContext (pcgen.rules.context.LoadContext)4 StringTokenizer (java.util.StringTokenizer)3 GenericMapToList (pcgen.base.util.GenericMapToList)3 PCClass (pcgen.core.PCClass)3