コード例 #1
0
        public async Task WhenAddLineAsyncCalled_QueryUnsuccessfull()
        {
            //Prepare
            Point startPoint = new Point { X = 1, Y = 1 };
            Point endPoint = new Point { X = 2, Y = 2 };
            Point[] mockedResult = new Point[] { startPoint, endPoint };

            Mock<ICanvasModel> mockedCanvasModel = new Mock<ICanvasModel>();
            mockedCanvasModel.Setup(x => x.AddLine(It.IsAny<Point>(), It.IsAny<Point>(), It.IsAny<PathAlgorithm>())).
                Throws(new Exception("Failed")).Verifiable();
            ILineService target = new LineService(mockedCanvasModel.Object);

            //Act
            LineQueryResult result = await target.AddLineAsync(startPoint, endPoint);

            //Verify
            mockedCanvasModel.VerifyAll();
            Assert.AreEqual(false, result.Success);
            Assert.IsFalse(string.IsNullOrEmpty(result.Message));
        }
コード例 #2
0
        public async Task WhenAddLineAsyncCalled_QuerySuccessfull()
        {
            //Prepare
            Point startPoint = new Point { X = 1, Y = 1 };
            Point endPoint = new Point { X = 2, Y = 2 };
            Point[] mockedResult = new Point[] { startPoint, endPoint };

            Mock<ICanvasModel> mockedCanvasModel = new Mock<ICanvasModel>();
            mockedCanvasModel.Setup(x => x.AddLine(It.IsAny<Point>(), It.IsAny<Point>(),
                It.Is<PathAlgorithm>(algo => algo == PathAlgorithm.BFS))).Returns(mockedResult).Verifiable();

            ILineService target = new LineService(mockedCanvasModel.Object);

            //Act
            LineQueryResult result = await target.AddLineAsync(startPoint, endPoint);

            //Verify
            mockedCanvasModel.VerifyAll();
            Assert.AreEqual(true, result.Success);
            Assert.AreEqual(startPoint.X, result.Result[0].X);
            Assert.AreEqual(startPoint.Y, result.Result[0].Y);
            Assert.AreEqual(endPoint.X, result.Result[1].X);
            Assert.AreEqual(endPoint.Y, result.Result[1].Y);
        }