public void Shield_PlusFive_Enchant() { // Arrange var armorEnhancementBonus = Mock.Of <IModifierTracker>(); var mockShieldBonusAgg = new Mock <IArmorClassAggregator>(); mockShieldBonusAgg.Setup(agg => agg.EnhancementBonuses) .Returns(armorEnhancementBonus); IArmorClassAggregator shieldBonus = mockShieldBonusAgg.Object; var hardnessEnhancementBonus = Mock.Of <IModifierTracker>(); var mockHardnessAgg = new Mock <IHardnessAggregator>(); mockHardnessAgg.Setup(agg => agg.EnhancementBonuses) .Returns(hardnessEnhancementBonus); IHardnessAggregator hardness = mockHardnessAgg.Object; var hitPointsEnhancementBonus = Mock.Of <IModifierTracker>(); var mockHitPointAgg = new Mock <IHitPointsAggregator>(); mockHitPointAgg.Setup(agg => agg.EnhancementBonuses) .Returns(hitPointsEnhancementBonus); IHitPointsAggregator hitPoints = mockHitPointAgg.Object; IEnchantmentAggregator <IShieldEnchantment, Shield> enchantments = null; var shield = new Mock <Shield>(MockBehavior.Loose, shieldBonus, hardness, hitPoints, enchantments) { CallBase = true }.Object; IShieldEnchantment enchantment = new EnhancementBonus(5); // Act enchantment.Enchant(shield); // Assert Mock.Get(armorEnhancementBonus) .Verify(ac => ac.Add(It.Is <Func <byte> >(calc => 5 == calc())), "A +5 bonus was not applied to the shield's armor class bonus correctly."); Mock.Get(hardnessEnhancementBonus) .Verify(bhn => bhn.Add(It.Is <Func <byte> >(calc => 10 == calc())), "A +10 bonus was not applied to the shield's hardness correctly."); Mock.Get(hitPointsEnhancementBonus) .Verify(hp => hp.Add(It.Is <Func <byte> >(calc => 50 == calc())), "A +50 bonus was not applied to the shield's hit points correctly."); }
public void Armor_PlusOne_Enchant() { // Arrange var armorEnhancementBonus = Mock.Of <IModifierTracker>(); var mockArmorBonusAgg = new Mock <IArmorClassAggregator>(); mockArmorBonusAgg.Setup(agg => agg.EnhancementBonuses) .Returns(armorEnhancementBonus); IArmorClassAggregator armorBonus = mockArmorBonusAgg.Object; var hardnessEnhancementBonus = Mock.Of <IModifierTracker>(); var mockHardnessAgg = new Mock <IHardnessAggregator>(); mockHardnessAgg.Setup(agg => agg.EnhancementBonuses) .Returns(hardnessEnhancementBonus); IHardnessAggregator hardness = mockHardnessAgg.Object; var hitPointsEnhancementBonus = Mock.Of <IModifierTracker>(); var mockHitPointAgg = new Mock <IHitPointsAggregator>(); mockHitPointAgg.Setup(agg => agg.EnhancementBonuses) .Returns(hitPointsEnhancementBonus); IHitPointsAggregator hitPoints = mockHitPointAgg.Object; var armor = new Mock <Core.Domain.Items.Armor.Armor>(MockBehavior.Loose, armorBonus, hardness, hitPoints, null) { CallBase = true }.Object; IArmorEnchantment enchantment = new EnhancementBonus(1); // Act enchantment.Enchant(armor); // Assert Mock.Get(armorEnhancementBonus) .Verify(ac => ac.Add(It.Is <Func <byte> >(calc => 1 == calc())), "A +1 bonus was not applied to the armor's armor class bonus correctly."); Mock.Get(hardnessEnhancementBonus) .Verify(bhn => bhn.Add(It.Is <Func <byte> >(calc => 2 == calc())), "A +2 bonus was not applied to the armor's hardness correctly."); Mock.Get(hitPointsEnhancementBonus) .Verify(hp => hp.Add(It.Is <Func <byte> >(calc => 10 == calc())), "A +10 bonus was not applied to the armor's hit points correctly."); }