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); }
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(); }
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); }