Beispiel #1
0
        public void PyramidMatchesRules_Transform_IdenticalPyramidReturned()
        {
            //Arrange
            var pyramid = CreateTestPyramid();
            var checker = new Mock <IPyramidPathRuleChecker <int> >();

            checker.Setup(m => m.IsValidPath(It.IsAny <int>(), It.IsAny <int>())).Returns(true);

            var applier = new PyramidRuleApplier <int>(checker.Object);

            //Act
            var result = applier.TransformPyramid(pyramid);

            //Assert
            Assert.AreEqual(pyramid, result);
        }
Beispiel #2
0
        public void UpperPathsDoNotMatchRules_Transform_UnaccesiblePathsNotChecked()
        {
            //Arrange
            var pyramid = CreateTestPyramid();
            var checker = new Mock <IPyramidPathRuleChecker <int> >();

            checker.Setup(m => m.IsValidPath(It.IsAny <int>(), It.IsAny <int>())).Returns(false);

            var applier = new PyramidRuleApplier <int>(checker.Object);

            //Act
            var result = applier.TransformPyramid(pyramid);

            //Assert
            Assert.AreEqual(new Pyramid <int>(1), result);
            checker.Verify(m => m.IsValidPath(1, 2), Times.Once);
            checker.Verify(m => m.IsValidPath(1, 3), Times.Once);
            checker.VerifyNoOtherCalls();
        }
Beispiel #3
0
        public void SomePathsDoNotMatchRules_Transform_NotMatchingPathsNotInReturnedPyramid()
        {
            //Arrange
            var pyramid        = CreateTestPyramid();
            var p3_2           = new Pyramid <int>(7);
            var p3_3           = new Pyramid <int>(6);
            var p2_1           = new Pyramid <int>(2, p3_2);
            var p2_2           = new Pyramid <int>(3, p3_3);
            var expectedResult = new Pyramid <int>(p2_1, 1, p2_2);

            var checker = new Mock <IPyramidPathRuleChecker <int> >();

            checker.Setup(m => m.IsValidPath(It.IsAny <int>(), It.IsAny <int>()))
            .Returns((int val1, int val2) => val1 + val2 < 10);

            var applier = new PyramidRuleApplier <int>(checker.Object);

            //Act
            var result = applier.TransformPyramid(pyramid);

            //Assert
            Assert.AreEqual(expectedResult, result);
        }