Beispiel #1
0
        public void Given_ASpeed_When_SettingTheSpeed_Then_SpeedShouldBeSet()
        {
            var speed = 100;
            var angle = 15;

            var attempt = new CannonShotAttempt(angle, speed);

            Assert.AreEqual(speed, attempt.Speed);
        }
Beispiel #2
0
        public void Given_AnAngle_When_SettingTheAngle_Then_AngleShouldBeSet()
        {
            var angle = 45;
            var speed = 100;

            var attempt = new CannonShotAttempt(angle, speed);

            Assert.AreEqual(angle, attempt.Angle);
        }
Beispiel #3
0
        public void Given_ASetupCannonThatShouldHitTheTarget_When_Shooting_Then_TheShotShouldHit()
        {
            var cannon = Cannon.GetInstance();

            cannon.TargetDistance = 1000;

            var attempt = new CannonShotAttempt(45, 100);

            var result = cannon.Shoot(attempt);

            Assert.IsTrue(result.Hit);
            Assert.AreEqual(attempt, result.Attempt);
            Assert.AreEqual(cannon.TargetDistance, result.TargetDistance);
        }
Beispiel #4
0
        public void Given_APreviouslyUsedCannon_When_Resetting_Then_ThecannonShouldBeReset()
        {
            var cannon   = Cannon.GetInstance();
            var distance = 1000;

            cannon.TargetDistance = distance;

            var attempt = new CannonShotAttempt(45, 1);
            var result  = cannon.Shoot(attempt);

            var attemptCount = cannon.PreviousShotResults.Count;

            cannon.Reset();

            Assert.AreNotEqual(distance, cannon.TargetDistance);
            Assert.AreNotEqual(attemptCount, cannon.PreviousShotResults.Count);
        }
Beispiel #5
0
        public void Given_MultipleMissedShots_When_Shooting_Then_ThePreviousAttemptsShouldMatch()
        {
            var cannon = Cannon.GetInstance();

            cannon.Reset();

            cannon.TargetDistance = 1000;

            var attempt = new CannonShotAttempt(45, 1);

            cannon.Shoot(attempt);
            cannon.Shoot(attempt);

            attempt = new CannonShotAttempt(45, 100);

            var result = cannon.Shoot(attempt);

            Assert.IsTrue(result.Hit);
            Assert.AreEqual(3, cannon.PreviousShotResults.Count);
        }