MCPcopy Create free account
hub / github.com/PCGen/pcgen / testGetKnownForLevel

Method testGetKnownForLevel

code/src/test/pcgen/core/PCClassTest.java:634–737  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

632 }
633
634 @Test
635 void testGetKnownForLevel()
636 {
637 LoadContext context = Globals.getContext();
638 PCClass megaCasterClass = new PCClass();
639 megaCasterClass.setName("MegaCaster");
640 BuildUtilities.setFact(megaCasterClass, "SpellType", "Arcane");
641 context.unconditionallyProcess(megaCasterClass, "SPELLSTAT", "CHA");
642 megaCasterClass.put(ObjectKey.SPELLBOOK, false);
643 megaCasterClass.put(ObjectKey.MEMORIZE_SPELLS, false);
644 context.unconditionallyProcess(megaCasterClass.getOriginalClassLevel(1), "KNOWN", "4,2,2,3,4,5,0");
645 context.unconditionallyProcess(megaCasterClass.getOriginalClassLevel(1), "CAST", "3,1,2,3,4,5,0,0");
646 context.unconditionallyProcess(megaCasterClass.getOriginalClassLevel(2), "KNOWN", "4,2,2,3,4,5,6,7,8,9,10");
647 context.unconditionallyProcess(megaCasterClass.getOriginalClassLevel(2), "CAST", "3,1,2,3,4,5,6,7,8,9,10");
648 Globals.getContext().getReferenceContext().importObject(megaCasterClass);
649
650 finishLoad();
651
652 final PlayerCharacter character = getCharacter();
653
654 // Test retrieval for a non-spell casting class.
655 character.incrementClassLevel(1, nqClass);
656 PCClass charClass = character.getClassKeyed(nqClass.getKeyName());
657 assertEquals(0,
658 character.getSpellSupport(charClass).getKnownForLevel(0, character),
659 "Known 0th level for non spell casting class"
660 );
661
662 // Test retrieval for a spell casting class.
663 character.incrementClassLevel(1, megaCasterClass);
664 charClass = character.getClassKeyed(megaCasterClass.getKeyName());
665 setPCStat(character, cha, 10);
666 assertEquals(4,
667 character.getSpellSupport(charClass).getKnownForLevel(0, character), "Known 0th level for character's class"
668 );
669 assertEquals(0,
670 character.getSpellSupport(charClass).getKnownForLevel(1, character), "Known 1st level where stat is too low"
671 );
672 setPCStat(character, cha, 11);
673 character.calcActiveBonuses();
674 assertEquals(
675 2, character.getSpellSupport(charClass).getKnownForLevel(1, character),
676 "Known 1st level where stat is high enough, but no bonus");
677 setPCStat(character, cha, 18);
678 character.calcActiveBonuses();
679 assertEquals(
680 2, character.getSpellSupport(charClass).getKnownForLevel(1, character),
681 "Known 1st level where stat gives bonus but not active");
682
683 RuleCheck bonusKnownRule = new RuleCheck();
684 bonusKnownRule.setName(RuleConstants.BONUSSPELLKNOWN);
685 bonusKnownRule.setDefault(true);
686 GameMode gameMode = SettingsHandler.getGameAsProperty().get();
687 gameMode.getModeContext().getReferenceContext().importObject(bonusKnownRule);
688 BonusSpellInfo bsi = new BonusSpellInfo();
689 bsi.setName("1");
690 bsi.setStatScore(12);
691 bsi.setStatRange(8);

Callers

nothing calls this directly

Calls 15

getContextMethod · 0.95
setFactMethod · 0.95
getOriginalClassLevelMethod · 0.95
getReferenceContextMethod · 0.95
incrementClassLevelMethod · 0.95
getClassKeyedMethod · 0.95
getSpellSupportMethod · 0.95
calcActiveBonusesMethod · 0.95
setNameMethod · 0.95
setDefaultMethod · 0.95
getGameAsPropertyMethod · 0.95

Tested by

no test coverage detected