コード例 #1
0
        public async void WWhenGetByIdAsyncFunctionIsCalled__IfExceptionThrown_ReturnsNotFoundStatus()
        {
            string entryId        = "test";
            var    mockRepository = new Mock <IRepository <DailyEntry> >();

            mockRepository.Setup(repo => repo.GetByIdAsync(entryId)).Throws(new Exception());
            var controller = new DailyEntryController(mockRepository.Object);

            var result = await controller.GetById(entryId);

            var viewResult = Assert.IsType <NotFoundObjectResult>(result);
            var model      = viewResult.Value;

            Assert.Equal(404, viewResult.StatusCode);
            Assert.Equal(model, $"There is no daily entry with id {entryId}");
        }
コード例 #2
0
        public async Task WhenInsertFunctionIsCalled_IfValidId_ReturnsCreatedStatusAndInsertedEntry()
        {
            var entriesList = new List <DailyEntry>();

            entriesList.Add(new DailyEntry()
            {
                Id             = "entryid1",
                Date           = "2021-06-14",
                Topics         = "Testing1, xunit1",
                RecapQuizScore = 8,
            });
            entriesList.Add(new DailyEntry()
            {
                Id             = "entryid2",
                Date           = "2021-06-19",
                Topics         = "Testing2, xunit2",
                RecapQuizScore = 7,
            });

            DailyEntry testDailyEntry = new DailyEntry {
                Id             = "entryid3",
                Date           = "2021-06-24",
                Topics         = "Testing3, xunit3",
                RecapQuizScore = 9,
            };

            var mockRepository = new Mock <IRepository <DailyEntry> >();

            mockRepository.Setup(repo => repo.InsertAsync(It.IsAny <DailyEntry>()))
            .Callback(() => entriesList.Add(testDailyEntry))
            .Returns(() => Task.FromResult(entriesList.LastOrDefault()));

            var controller = new DailyEntryController(mockRepository.Object);

            var result = await controller.Insert(testDailyEntry);

            mockRepository.Verify(x => x.InsertAsync(It.IsAny <DailyEntry>()), Times.Once);

            var viewResult = Assert.IsType <CreatedResult>(result);
            var model      = Assert.IsType <DailyEntry>(viewResult.Value);

            Assert.Equal(201, viewResult.StatusCode);
            Assert.Equal(testDailyEntry.Date, model.Date);
            Assert.Equal(testDailyEntry.RecapQuizScore, model.RecapQuizScore);
            Assert.Equal(3, entriesList.Count);
        }
コード例 #3
0
        public void WhenDeleteFunctionIsCalled_IfValidId_ReturnsOkStatus()
        {
            string entryId        = "test";
            var    mockRepository = new Mock <IRepository <DailyEntry> >();

            mockRepository.Setup(repo => repo.DeleteAsync(entryId));

            var controller = new DailyEntryController(mockRepository.Object);

            var result = controller.Delete(entryId);

            var viewResult = Assert.IsType <OkObjectResult>(result);
            var model      = viewResult.Value;

            mockRepository.Verify(repo => repo.DeleteAsync(entryId), Times.Once);
            Assert.Equal(200, viewResult.StatusCode);
            Assert.Equal(model, $"The daily entry with id {entryId} has been deleted");
        }
コード例 #4
0
        public async void WhenInsertFunctionIsCalled_IfExceptionThrown_ReturnsBadRequestStatus()
        {
            var testDailyEntry = new DailyEntry()
            {
            };

            var mockRepository = new Mock <IRepository <DailyEntry> >();

            mockRepository.Setup(repo => repo.InsertAsync(testDailyEntry)).Throws(new Exception());

            var controller = new DailyEntryController(mockRepository.Object);

            var result = await controller.Insert(testDailyEntry);

            var viewResult = Assert.IsType <BadRequestResult>(result);

            Assert.Equal(400, viewResult.StatusCode);
        }
コード例 #5
0
        public async void WhenGetByIdAsyncFunctionIsCalled_IfValidId_ReturnsOkStatusAndEntryWithThatId()
        {
            string entryId        = "test";
            var    mockRepository = new Mock <IRepository <DailyEntry> >();

            mockRepository.Setup(repo => repo.GetByIdAsync(entryId)).Returns(Task.FromResult <DailyEntry>(new DailyEntry {
                Id = entryId
            }));;
            var controller = new DailyEntryController(mockRepository.Object);

            var result = await controller.GetById(entryId);

            var viewResult = Assert.IsType <OkObjectResult>(result);

            mockRepository.Verify(repo => repo.GetByIdAsync(entryId), Times.Once);
            Assert.Equal(200, viewResult.StatusCode);
            Assert.NotNull(viewResult);
        }
コード例 #6
0
        public async void WhenUpdateFunctionIsCalled_IfValidId_ReturnsOkStatus()
        {
            string entryId   = "test";
            var    testEntry = new DailyEntry()
            {
            };
            var mockRepository = new Mock <IRepository <DailyEntry> >();

            mockRepository.Setup(repo => repo.UpdateAsync(entryId, testEntry)).Returns(Task.FromResult <DailyEntry>(testEntry));;

            var controller = new DailyEntryController(mockRepository.Object);

            var result = await controller.Update(entryId, testEntry);

            var viewResult = Assert.IsType <OkObjectResult>(result);
            var model      = viewResult.Value;

            Assert.Equal(200, viewResult.StatusCode);
            Assert.Equal(model, $"The daily entry with id {entryId} has been updated");
        }