/*
* Created on 22-Dec-2003
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package pcgen.core.prereq;
import junit.framework.Test;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
import pcgen.AbstractCharacterTestCase;
import pcgen.cdom.base.FormulaFactory;
import pcgen.cdom.base.SimpleAssociatedObject;
import pcgen.cdom.reference.CDOMDirectSingleRef;
import pcgen.core.PCTemplate;
import pcgen.core.PlayerCharacter;
import pcgen.core.Vision;
import pcgen.util.enumeration.VisionType;
/**
* Tests PREVISION token
*/
public class PreVisionTest extends AbstractCharacterTestCase
{
/**
* Main
*
* @param args
*/
public static void main(final String[] args)
{
TestRunner.run(PreVisionTest.class);
}
/**
* @return Test
*/
public static Test suite()
{
return new TestSuite(PreVisionTest.class);
}
/**
* @throws Exception
*/
public void testVision2Pass() throws Exception
{
final PlayerCharacter character = getCharacter();
final PCTemplate template = new PCTemplate();
template.putToList(Vision.VISIONLIST,
CDOMDirectSingleRef.getRef(new Vision(VisionType
.getVisionType("Darkvision"), FormulaFactory.getFormulaFor(60))),
new SimpleAssociatedObject());
character.addTemplate(template);
final PCTemplate template2 = new PCTemplate();
template2.putToList(Vision.VISIONLIST,
CDOMDirectSingleRef.getRef(new Vision(VisionType
.getVisionType("Low-Light"), FormulaFactory.getFormulaFor(30))),
new SimpleAssociatedObject());
character.addTemplate(template2);
final Prerequisite prereq = new Prerequisite();
prereq.setKind("vision");
prereq.setKey("darkvision");
prereq.setOperator(PrerequisiteOperator.GTEQ);
prereq.setOperand("30");
final boolean passes = PrereqHandler.passes(prereq, character, null);
assertTrue(passes);
}
/**
* @throws Exception
*/
public void testVisionFail() throws Exception
{
final PlayerCharacter character = getCharacter();
final PCTemplate template = new PCTemplate();
template.putToList(Vision.VISIONLIST, CDOMDirectSingleRef
.getRef(new Vision(VisionType.getVisionType("Normal"), FormulaFactory.getFormulaFor(60))),
new SimpleAssociatedObject());
character.addTemplate(template);
final Prerequisite prereq = new Prerequisite();
prereq.setKind("vision");
prereq.setKey("darkvision");
prereq.setOperator(PrerequisiteOperator.GTEQ);
prereq.setOperand("30");
final boolean passes = PrereqHandler.passes(prereq, character, null);
assertFalse(passes);
}
/**
* @throws Exception
*/
public void testVisionPass() throws Exception
{
final PlayerCharacter character = getCharacter();
final PCTemplate template = new PCTemplate();
template.putToList(Vision.VISIONLIST,
CDOMDirectSingleRef.getRef(new Vision(VisionType
.getVisionType("Darkvision"), FormulaFactory.getFormulaFor(60))),
new SimpleAssociatedObject());
character.addTemplate(template);
final Prerequisite prereq = new Prerequisite();
prereq.setKind("vision");
prereq.setKey("darkvision");
prereq.setOperator(PrerequisiteOperator.GTEQ);
prereq.setOperand("30");
final boolean passes = PrereqHandler.passes(prereq, character, null);
assertTrue(passes);
}
/**
* @throws Exception
*/
public void testVisionPresentTen() throws Exception
{
final PlayerCharacter character = getCharacter();
final PCTemplate template = new PCTemplate();
final Prerequisite prereq = new Prerequisite();
prereq.setKind("vision");
prereq.setKey("darkvision");
prereq.setOperator(PrerequisiteOperator.GTEQ);
prereq.setOperand("ANY");
boolean passes = PrereqHandler.passes(prereq, character, null);
assertFalse(passes);
template.putToList(Vision.VISIONLIST,
CDOMDirectSingleRef.getRef(new Vision(VisionType
.getVisionType("Darkvision"), FormulaFactory.getFormulaFor(10))),
new SimpleAssociatedObject());
character.addTemplate(template);
passes = PrereqHandler.passes(prereq, character, null);
assertTrue(passes);
}
/**
* @throws Exception
*/
public void testVisionNotPresentTen() throws Exception
{
final PlayerCharacter character = getCharacter();
final PCTemplate template = new PCTemplate();
final Prerequisite prereq = new Prerequisite();
prereq.setKind("vision");
prereq.setKey("darkvision");
prereq.setOperator(PrerequisiteOperator.LT);
prereq.setOperand("ANY");
boolean passes = PrereqHandler.passes(prereq, character, null);
assertTrue(passes);
template.putToList(Vision.VISIONLIST,
CDOMDirectSingleRef.getRef(new Vision(VisionType
.getVisionType("Darkvision"), FormulaFactory.getFormulaFor(10))),
new SimpleAssociatedObject());
character.addTemplate(template);
passes = PrereqHandler.passes(prereq, character, null);
assertFalse(passes);
}
/**
* @throws Exception
*/
public void testVisionPresentZero() throws Exception
{
final PlayerCharacter character = getCharacter();
final PCTemplate template = new PCTemplate();
final Prerequisite prereq = new Prerequisite();
prereq.setKind("vision");
prereq.setKey("darkvision");
prereq.setOperator(PrerequisiteOperator.GTEQ);
prereq.setOperand("ANY");
boolean passes = PrereqHandler.passes(prereq, character, null);
assertFalse(passes);
template.putToList(Vision.VISIONLIST,
CDOMDirectSingleRef.getRef(new Vision(VisionType
.getVisionType("Darkvision"), FormulaFactory.ZERO)),
new SimpleAssociatedObject());
character.addTemplate(template);
passes = PrereqHandler.passes(prereq, character, null);
assertTrue(passes);
}
/**
* @throws Exception
*/
public void testVisionNotPresentZero() throws Exception
{
final PlayerCharacter character = getCharacter();
final PCTemplate template = new PCTemplate();
final Prerequisite prereq = new Prerequisite();
prereq.setKind("vision");
prereq.setKey("darkvision");
prereq.setOperator(PrerequisiteOperator.LT);
prereq.setOperand("ANY");
boolean passes = PrereqHandler.passes(prereq, character, null);
assertTrue(passes);
template.putToList(Vision.VISIONLIST,
CDOMDirectSingleRef.getRef(new Vision(VisionType
.getVisionType("Darkvision"), FormulaFactory.ZERO)),
new SimpleAssociatedObject());
character.addTemplate(template);
passes = PrereqHandler.passes(prereq, character, null);
assertFalse(passes);
}
/**
* @throws Exception
*/
public void testVisionZeroTen() throws Exception
{
final PlayerCharacter character = getCharacter();
final PCTemplate template = new PCTemplate();
final Prerequisite prereq = new Prerequisite();
prereq.setKind("vision");
prereq.setKey("darkvision");
prereq.setOperator(PrerequisiteOperator.GTEQ);
prereq.setOperand("0");
boolean passes = PrereqHandler.passes(prereq, character, null);
assertTrue(passes);
template.putToList(Vision.VISIONLIST,
CDOMDirectSingleRef.getRef(new Vision(VisionType
.getVisionType("Darkvision"), FormulaFactory.getFormulaFor(10))),
new SimpleAssociatedObject());
character.addTemplate(template);
passes = PrereqHandler.passes(prereq, character, null);
assertTrue(passes);
}
/**
* @throws Exception
*/
public void testVisionNotZeroTen() throws Exception
{
final PlayerCharacter character = getCharacter();
final PCTemplate template = new PCTemplate();
final Prerequisite prereq = new Prerequisite();
prereq.setKind("vision");
prereq.setKey("darkvision");
prereq.setOperator(PrerequisiteOperator.LT);
prereq.setOperand("0");
boolean passes = PrereqHandler.passes(prereq, character, null);
assertFalse(passes);
template.putToList(Vision.VISIONLIST,
CDOMDirectSingleRef.getRef(new Vision(VisionType
.getVisionType("Darkvision"), FormulaFactory.getFormulaFor(10))),
new SimpleAssociatedObject());
character.addTemplate(template);
passes = PrereqHandler.passes(prereq, character, null);
assertFalse(passes);
}
/**
* @throws Exception
*/
public void testVisionZeroZero() throws Exception
{
final PlayerCharacter character = getCharacter();
final PCTemplate template = new PCTemplate();
final Prerequisite prereq = new Prerequisite();
prereq.setKind("vision");
prereq.setKey("darkvision");
prereq.setOperator(PrerequisiteOperator.GTEQ);
prereq.setOperand("0");
boolean passes = PrereqHandler.passes(prereq, character, null);
assertTrue(passes);
template.putToList(Vision.VISIONLIST,
CDOMDirectSingleRef.getRef(new Vision(VisionType
.getVisionType("Darkvision"), FormulaFactory.ZERO)),
new SimpleAssociatedObject());
character.addTemplate(template);
passes = PrereqHandler.passes(prereq, character, null);
assertTrue(passes);
}
/**
* @throws Exception
*/
public void testVisionNotZeroZero() throws Exception
{
final PlayerCharacter character = getCharacter();
final PCTemplate template = new PCTemplate();
final Prerequisite prereq = new Prerequisite();
prereq.setKind("vision");
prereq.setKey("darkvision");
prereq.setOperator(PrerequisiteOperator.LT);
prereq.setOperand("0");
boolean passes = PrereqHandler.passes(prereq, character, null);
assertFalse(passes);
template.putToList(Vision.VISIONLIST,
CDOMDirectSingleRef.getRef(new Vision(VisionType
.getVisionType("Darkvision"), FormulaFactory.ZERO)),
new SimpleAssociatedObject());
character.addTemplate(template);
passes = PrereqHandler.passes(prereq, character, null);
assertFalse(passes);
}
}