public void Register1_Returns_ConfiguredISpellLikeAbility() { // Arrange var mockSpell = new Mock <ISpell>(); mockSpell.Setup(s => s.Level) .Returns(7); ISpell spell = mockSpell.Object; var mockAbilityScore = new Mock <IAbilityScore>(); mockAbilityScore.Setup(ab => ab.GetBonus()) .Returns(4); IAbilityScore abilityScore = mockAbilityScore.Object; var mockCharacter = new Mock <ICharacter>(); mockCharacter.Setup(c => c.Level) .Returns(19); ICharacter character = mockCharacter.Object; SpellRegistrar spellReg = new SpellRegistrar(character); // Act ICastableSpell castable = spellReg.Register(spell, abilityScore); // Assert Assert.AreSame(spell, castable.Spell); }
public void Register1_NullIAbilityScore_Throws() { // Arrange var spell = Mock.Of <ISpell>(); IAbilityScore abilityScore = null; var character = Mock.Of <ICharacter>(); SpellRegistrar spellReg = new SpellRegistrar(character); // Act TestDelegate registerMethod = () => spellReg.Register(spell, abilityScore); // Assert Assert.Throws <ArgumentNullException>(registerMethod, "Null arguments are not allowed."); }
public void Register2_NullISpell_Throws() { // Arrange Func <byte> casterLevel = () => 10; ISpell spell = null; var abilityScore = Mock.Of <IAbilityScore>(); var character = Mock.Of <ICharacter>(); SpellRegistrar spellReg = new SpellRegistrar(character); // Act TestDelegate registerMethod = () => spellReg.Register(spell, abilityScore, casterLevel); // Assert Assert.Throws <ArgumentNullException>(registerMethod, "Null arguments are not allowed."); }
public void GetSpellLikeAbilities_Register1_RoundTrip() { // Arrange var spell = Mock.Of <ISpell>(); var abilityScore = Mock.Of <IAbilityScore>(); var character = Mock.Of <ICharacter>(); SpellRegistrar spellReg = new SpellRegistrar(character); ICastableSpell castable = spellReg.Register(spell, abilityScore); // Act var result = spellReg.GetSpells(); // Assert Assert.That(result, Has.Exactly(1).Matches <ICastableSpell>(sp => castable == sp)); }
public void Register1_TriggersEvent() { // Arrange var spell = Mock.Of <ISpell>(); var abilityScore = Mock.Of <IAbilityScore>(); var character = Mock.Of <ICharacter>(); SpellRegistrar spellReg = new SpellRegistrar(character); bool wasCalled = false; // This tracks whether the event was fired. spellReg.OnRegistered += (sender, e) => { wasCalled = true; }; // Act spellReg.Register(spell, abilityScore); // Assert Assert.IsTrue(wasCalled); }