예제 #1
0
        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.");
        }
예제 #2
0
        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.");
        }
예제 #3
0
        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));
        }
예제 #4
0
        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);
        }