예제 #1
0
        public void That_GetTarget_ReturnsX6Y5WhenAskedForX6Y5()
        {
            // Give a target generator
            INumberGenerator numberGenerator = new NumberGenerator();
            ITargetGenerator serviceToTest   = new TargetGenerator(numberGenerator);

            // When I ask for target x = 6, y = 5
            Coordinate actual = serviceToTest.GetTarget(x: 6, y: 5);

            // then I get x = 6, y = 5
            Assert.AreEqual(6, actual.X);
            Assert.AreEqual(5, actual.Y);
        }
예제 #2
0
        public void That_GetTarget_DoesNotCallNumberGeneratorWhenTargetAsked()
        {
            // Give a target generator
            var mockNumberGenerator = new Mock <INumberGenerator>();

            mockNumberGenerator.Setup(x => x.GetNumber()).Returns(5);

            ITargetGenerator serviceToTest = new TargetGenerator(
                mockNumberGenerator.Object);

            // When I ask for a target
            Coordinate actual = serviceToTest.GetTarget(x: 5, y: 5);

            // then number generator not called
            mockNumberGenerator.Verify(x => x.GetNumber(), Times.Never);
        }
예제 #3
0
        public void That_GetTarget_CallsNumberGeneratorTwiceWhenNoTargetAsked()
        {
            // Give a target generator
            var mockNumberGenerator = new Mock <INumberGenerator>();

            mockNumberGenerator.Setup(x => x.GetNumber()).Returns(5);

            ITargetGenerator serviceToTest = new TargetGenerator(
                mockNumberGenerator.Object);

            // When I do not ask for a target
            Coordinate actual = serviceToTest.GetTarget();

            // then number generator called twice
            mockNumberGenerator.Verify(x => x.GetNumber(), Times.Exactly(2));
        }