public void Build() { var listenerMock = new Mock <IDamageListener>(); listenerMock.Setup(l => l.ListenDamage(It.IsAny <int>())) .Callback <int>(p => Assert.AreEqual(5000, p)); var builder = new AttackPowerBuilderInner(); builder.ListenAttackValue(50); builder.ListenForceValue(100); var attackPower = builder.Build(); attackPower.NotifyDamage(listenerMock.Object); }
public void TestOnNormalAttack() { // Create Mock var random = new Mock <IRandom>(); random.Setup(r => r.Random()).Returns(1); var actorRepository = new Mock <IActorRepository>(); var skillRepository = new Mock <ISkillRepository>(); var attackerId = new ActorId("Attacker"); var attacker = CreateActor(attackerId); var victimId = new ActorId("Victim"); var victim = CreateActor(victimId); var skill = CreateSkill(); actorRepository.Setup(repo => repo.Find(attackerId)) .Returns(attacker); actorRepository.Setup(repo => repo.Find(victimId)) .Returns(victim); skillRepository.Setup(repo => repo.Find(It.IsAny <SkillId>())) .Returns(skill); // Create Builders var innerBuilder = new AttackPowerBuilderInner(); var attackPowerBuilder = new AttackPowerBuilder(innerBuilder); var defenseBuilder = new DefenseRateBuilder(); // Create Attack Calculation var damageRate = new Rate(0.06f); var attackCalculation = new AttackCalculation( actorRepository.Object, skillRepository.Object, attackPowerBuilder, defenseBuilder, random.Object, damageRate); var damage = attackCalculation.ExecuteCalculation( attackerId, victimId, new SkillId("Dummy")); // Check Damage var damageListener = new Mock <IDamageListener>(); damageListener.Setup(l => l.ListenDamage(It.IsAny <int>())) .Callback <int>(val => Assert.AreEqual(300, val)); damage.NotifyDamage(damageListener.Object); }