@Test public void testMortalCharmTemplate() throws Exception { Element templateElement = DocumentUtilities.read(xml).getRootElement(); GenericMagicTemplate template = parser.parseTemplate(templateElement); ICharmTemplate charmTemplate = template.getCharmTemplate(); assertEquals(MartialArtsLevel.Mortal, charmTemplate.getMartialArtsRules().getStandardLevel()); assertFalse(charmTemplate.canLearnCharms()); }
@Test public void picksUpMartialArtsRules() throws Exception { String celestialXml = "<magicTemplate>" + //$NON-NLS-1$ "<charmTemplate charmType=\"None\" ><martialArts rulesClass=\"net.sf.anathema.character.generic.dummy.magic.DummyMartialArtsRules\" level=\"Terrestrial\" /></charmTemplate>" //$NON-NLS-1$ + "</magicTemplate>"; //$NON-NLS-1$ Element templateElement = DocumentUtilities.read(celestialXml).getRootElement(); GenericMagicTemplate template = parser.parseTemplate(templateElement); Assert.assertTrue( template.getCharmTemplate().getMartialArtsRules() instanceof DummyMartialArtsRules); }
@Test public void testDefaultRulesSetting() throws Exception { String celestialXml = "<magicTemplate>" + //$NON-NLS-1$ "<charmTemplate charmType=\"None\" ><martialArts level=\"Terrestrial\" /></charmTemplate>" //$NON-NLS-1$ + "</magicTemplate>"; //$NON-NLS-1$ Element templateElement = DocumentUtilities.read(celestialXml).getRootElement(); GenericMagicTemplate template = parser.parseTemplate(templateElement); Assert.assertTrue( template.getCharmTemplate().getMartialArtsRules() instanceof DefaultMartialArtsRules); }
@Test public void testAlienCharmsAllowed() throws Exception { String typeXml = "<magicTemplate>" //$NON-NLS-1$ + "<charmTemplate charmType=\"None\">" //$NON-NLS-1$ + " <alienCharms> <caste type=\"DummyCaste\"/></alienCharms>" //$NON-NLS-1$ + "<martialArts level=\"Celestial\" highLevel=\"false\" />" //$NON-NLS-1$ + "</charmTemplate>" //$NON-NLS-1$ + "</magicTemplate>"; //$NON-NLS-1$ Element templateElement = DocumentUtilities.read(typeXml).getRootElement(); GenericMagicTemplate template = parser.parseTemplate(templateElement); assertTrue( template .getCharmTemplate() .isAllowedAlienCharms(new DummyCasteType("DummyCaste"))); // $NON-NLS-1$ }
@Test public void testHighLevelSettingModified() throws Exception { String celestialXml = "<magicTemplate>" + //$NON-NLS-1$ "<charmTemplate charmType=\"None\" ><martialArts level=\"Terrestrial\" highLevel=\"true\"/></charmTemplate>" //$NON-NLS-1$ + "</magicTemplate>"; //$NON-NLS-1$ Element templateElement = DocumentUtilities.read(celestialXml).getRootElement(); GenericMagicTemplate template = parser.parseTemplate(templateElement); DummyCharm dummyMartialArtsCharm = new DummyCharm("Dummy") { // $NON-NLS-1$ @Override public boolean hasAttribute(Identified attribute) { return attribute.getId().equals("MartialArts") || attribute.getId().equals("Celestial"); // $NON-NLS-1$ //$NON-NLS-2$ } }; assertTrue( template .getCharmTemplate() .getMartialArtsRules() .isCharmAllowed(dummyMartialArtsCharm, null, false)); }