use of pcgen.core.Race in project pcgen by PCGen.
the class PreRaceTest method testFail.
/**
* Test to ensure that we return false when races don't match.
*
* @throws Exception
*/
public void testFail() throws Exception {
final PlayerCharacter character = getCharacter();
final Race race = new Race();
race.setName("Human");
Globals.getContext().getReferenceContext().importObject(race);
character.setRace(race);
final Prerequisite prereq = new Prerequisite();
prereq.setKind("race");
prereq.setKey("Orc");
prereq.setOperator(PrerequisiteOperator.EQ);
final boolean passes = PrereqHandler.passes(prereq, character, null);
assertFalse(passes);
}
use of pcgen.core.Race in project pcgen by PCGen.
the class PreEquipTwoWeaponTest method testWield.
/**
* Test wield category tests
* @throws Exception
*/
public void testWield() throws Exception {
final PlayerCharacter character = getCharacter();
final Race race = new Race();
race.setName("Test Race");
CDOMDirectSingleRef<SizeAdjustment> mediumRef = CDOMDirectSingleRef.getRef(medium);
CDOMDirectSingleRef<SizeAdjustment> largeRef = CDOMDirectSingleRef.getRef(large);
race.put(FormulaKey.SIZE, new FixedSizeFormula(mediumRef));
character.setRace(race);
LoadContext context = Globals.getContext();
final Equipment longsword = new Equipment();
longsword.setName("Longsword");
character.addEquipment(longsword);
longsword.setIsEquipped(true, character);
longsword.setLocation(EquipmentLocation.EQUIPPED_TWO_HANDS);
character.doAfavorForAunitTestThatIgnoresEquippingRules();
Prerequisite prereq = new Prerequisite();
prereq.setKind("equiptwoweapon");
prereq.setKey("WIELDCATEGORY=OneHanded");
prereq.setOperand("1");
prereq.setOperator(PrerequisiteOperator.EQ);
// Test 3.0 Style
longsword.put(ObjectKey.SIZE, mediumRef);
longsword.put(ObjectKey.BASESIZE, mediumRef);
assertTrue("Weapon is M therefore OneHanded", PrereqHandler.passes(prereq, character, null));
longsword.put(ObjectKey.SIZE, largeRef);
longsword.put(ObjectKey.BASESIZE, largeRef);
assertFalse("Weapon is L therefore TwoHanded", PrereqHandler.passes(prereq, character, null));
// Test 3.5 style
longsword.put(ObjectKey.SIZE, mediumRef);
longsword.put(ObjectKey.BASESIZE, mediumRef);
longsword.put(ObjectKey.WIELD, context.getReferenceContext().silentlyGetConstructedCDOMObject(WieldCategory.class, "TwoHanded"));
assertFalse("Weapon is TwoHanded", PrereqHandler.passes(prereq, character, null));
longsword.put(ObjectKey.WIELD, context.getReferenceContext().silentlyGetConstructedCDOMObject(WieldCategory.class, "OneHanded"));
assertTrue("Weapon is OneHanded", PrereqHandler.passes(prereq, character, null));
}
use of pcgen.core.Race in project pcgen by PCGen.
the class PreFactTest method testFact.
/**
* Test the PREFACT code
* @throws Exception
*/
public void testFact() throws Exception {
final PlayerCharacter character = getCharacter();
Race race = new Race();
BuildUtilities.setFact(race, "ABB", "Hgln");
race.setName("Hobgoblin");
character.setRace(race);
Prerequisite prereq;
final PreParserFactory factory = PreParserFactory.getInstance();
prereq = factory.parse("PREFACT:1,RACE,ABB=Hum");
assertFalse("Character should not be a matching race", PrereqHandler.passes(prereq, character, null));
prereq = factory.parse("PREFACT:1,RACE,ABB=Hgln");
assertTrue("Character should be a matching race", PrereqHandler.passes(prereq, character, null));
}
use of pcgen.core.Race in project pcgen by PCGen.
the class PreRaceTest method testPassServesAsRaceSubType.
/**
* Test to make sure that we return true when races RACESUBTYPE are equal using ServesAs.
*
* @throws Exception
*/
public void testPassServesAsRaceSubType() throws Exception {
final PlayerCharacter character = getCharacter();
final Race race = new Race();
race.setName("Human");
race.addToListFor(ListKey.TYPE, Type.getConstant("Outsider"));
race.addToListFor(ListKey.RACESUBTYPE, RaceSubType.getConstant("aquatic"));
race.addToListFor(ListKey.RACESUBTYPE, RaceSubType.getConstant("foo"));
Globals.getContext().getReferenceContext().importObject(race);
final Race fake = new Race();
fake.setName("NotHuman");
fake.addToListFor(ListKey.TYPE, Type.getConstant("Humanoid"));
fake.addToListFor(ListKey.RACESUBTYPE, RaceSubType.getConstant("desert"));
fake.addToListFor(ListKey.RACESUBTYPE, RaceSubType.getConstant("none"));
Globals.getContext().getReferenceContext().importObject(fake);
fake.addToListFor(ListKey.SERVES_AS_RACE, CDOMDirectSingleRef.getRef(race));
final Race gnome = new Race();
gnome.setName("Gnome");
gnome.addToListFor(ListKey.RACESUBTYPE, RaceSubType.getConstant("SpikyHair"));
Globals.getContext().getReferenceContext().importObject(gnome);
final Race bugbear = new Race();
bugbear.setName("Bugbear");
bugbear.addToListFor(ListKey.RACESUBTYPE, RaceSubType.getConstant("SpikyClub"));
Globals.getContext().getReferenceContext().importObject(bugbear);
bugbear.addToListFor(ListKey.SERVES_AS_RACE, CDOMDirectSingleRef.getRef(gnome));
character.setRace(fake);
final Prerequisite prereq = new Prerequisite();
prereq.setKind("race");
prereq.setKey("RACESUBTYPE=aquatic");
prereq.setOperator(PrerequisiteOperator.EQ);
boolean passes = PrereqHandler.passes(prereq, character, null);
assertTrue(passes);
final Prerequisite prereq2 = new Prerequisite();
prereq2.setKind("race");
prereq2.setKey("RACESUBTYPE=foo");
prereq2.setOperator(PrerequisiteOperator.EQ);
passes = PrereqHandler.passes(prereq2, character, null);
assertTrue(passes);
prereq.setKey("RACESUBTYPE=SpikyHair");
passes = PrereqHandler.passes(prereq, character, null);
assertFalse("Prereq " + prereq + " should not be passed by character without a " + "race or servesas link.", passes);
}
use of pcgen.core.Race in project pcgen by PCGen.
the class PreRaceTest method testNeqFails.
/**
* Test to make sure we return false when race is equal but NOT is specificed.
*
* @throws Exception
*/
public void testNeqFails() throws Exception {
final PlayerCharacter character = getCharacter();
final Race race = new Race();
race.setName("Human");
Globals.getContext().getReferenceContext().importObject(race);
character.setRace(race);
final Prerequisite prereq = new Prerequisite();
prereq.setKind("race");
prereq.setKey("Human");
prereq.setOperator(PrerequisiteOperator.NEQ);
final boolean passes = PrereqHandler.passes(prereq, character, null);
assertFalse(passes);
}
Aggregations