Пример #1
0
        public async Task CreateAsync_Should_CreatePoint()
        {
            //Setup DbContext and DbSet mock
            var dbContextMock = new Mock <ITodoContext>();

            var testTodoPoint = new TodoPoint
            {
                PointId     = 3,
                TodoId      = 2,
                Description = "test point 3"
            };

            var testPoints = GetTestTodoPoints();

            var todoPointDbSetMock = testPoints.AsQueryable().GetMockDbSet();

            dbContextMock.Setup(x => x.DbSet <TodoPoint>()).Returns(todoPointDbSetMock.Object);
            todoPointDbSetMock.Setup(x => x.Add(It.IsAny <TodoPoint>()))
            .Callback(() =>
            {
                testPoints.Add(testTodoPoint);
            });
            //Execute
            var todoPointService = new TodoPointService(dbContextMock.Object);
            await todoPointService.CreateAsync(testTodoPoint);

            var todoPoint = await todoPointService.GetAsync <TodoPoint>(x => x.PointId == testTodoPoint.PointId);

            //Assert
            Assert.IsAssignableFrom <TodoPoint>(todoPoint);
            Assert.Equal(testTodoPoint.Description, todoPoint.Description);
            Assert.Equal(3, testPoints.Count);
        }
Пример #2
0
        public async Task UpdateAsync_Should_UpdatePoint()
        {
            //Setup DbContext and DbSet mock
            var dbContextMock = new Mock <ITodoContext>();

            var testTodoPoint = new TodoPoint
            {
                PointId     = 2,
                TodoId      = 1,
                Description = "updated"
            };

            var testPoints = GetTestTodoPoints();

            var    pointBefore      = testPoints.Where(x => x.PointId == testTodoPoint.PointId).FirstOrDefault();
            string pointDescription = pointBefore.Description;

            var todoPointDbSetMock = testPoints.AsQueryable().GetMockDbSet();

            dbContextMock.Setup(x => x.DbSet <TodoPoint>()).Returns(todoPointDbSetMock.Object);
            todoPointDbSetMock.Setup(x => x.Update(It.IsAny <TodoPoint>()))
            .Callback(() =>
            {
                var point         = testPoints.Where(x => x.PointId == testTodoPoint.PointId).FirstOrDefault();
                point.Description = testTodoPoint.Description;
            });
            //Execute
            var todoPointService = new TodoPointService(dbContextMock.Object);
            await todoPointService.UpdateAsync(testTodoPoint);

            var todoPointAfter = await todoPointService.GetAsync <TodoPoint>(x => x.PointId == testTodoPoint.PointId);

            //Assert
            Assert.NotEqual(pointDescription, pointBefore.Description);
            Assert.IsAssignableFrom <TodoPoint>(todoPointAfter);
            Assert.Equal(testTodoPoint.Description, todoPointAfter.Description);
        }