public void ChoosesClassCharacterHasIfNotAlreadyChosen() { var character = CharacterTestTemplates.Cleric(); character.Add(new FavoredClassToken()); var step = new ProcessFavoredClassToken(); step.ExecuteStep(character); var favored = character.Get<FavoredClass>(); Assert.True(favored.Qualifies(character.Class)); }
public void IfMultipleTokensAreAvailableTheNextOneShouldChooseSomethingDifferent() { var classes = new Class[] { Class.CreateForTesting("Cleric", SilverNeedle.Dice.DiceSides.d8), Class.CreateForTesting("Bard", SilverNeedle.Dice.DiceSides.d6) }; var cleric = CharacterTestTemplates.Cleric(); cleric.Add(new FavoredClassToken()); cleric.Add(new FavoredClassToken()); var step = new ProcessFavoredClassToken(EntityGateway<Class>.LoadFromList(classes)); step.ExecuteStep(cleric); var allFavored = cleric.GetAll<FavoredClass>(); AssertExtensions.EquivalentLists( new string[] { "Cleric", "Bard" }, allFavored.Select(x => x.ClassName) ); }