Example #1
0
        public void WhenThrowsExceptionShouldReturnStatusCode500()
        {
            //Arrange
            var mockLogger = new Mock <ILogger <InsertToDoTaskHandler> >();

            var mock = new Mock <IToDoTaskRepository>();

            mock.Setup(r => r.GetCategoryById(20)).Returns(new Category(20, "Study"));
            mock.Setup(r => r.InsertTasks(It.IsAny <ToDoTask[]>())).Throws(new Exception("Ocorreu um erro inesperado."));

            var controller = new ToDoTaskController(mock.Object, mockLogger.Object);
            var model      = new InsertToDoTask
            {
                CategoryId = 20,
                Title      = "Study XUnit",
                Deadline   = new DateTime(2020, 12, 31)
            };

            //Act
            var result = controller.Post(model);

            //Assert
            Assert.IsType <StatusCodeResult>(result);
            var statusCodeResponse = (result as StatusCodeResult).StatusCode;

            Assert.Equal(500, statusCodeResponse);
        }
Example #2
0
        public void GivenValidToDoTaskShouldReturnOkResult()
        {
            //Arrange
            var mockLogger = new Mock <ILogger <InsertToDoTaskHandler> >();

            var options = new DbContextOptionsBuilder <DbToDoTasksContext>()
                          .UseInMemoryDatabase("DbToDoTaskContext")
                          .Options;
            var context = new DbToDoTasksContext(options);

            context.Categories.Add(new Category(20, "Study"));
            context.SaveChanges();

            var repository = new ToDoTaskRepository(context);

            var controller = new ToDoTaskController(repository, mockLogger.Object);
            var model      = new InsertToDoTask
            {
                CategoryId = 20,
                Title      = "Study XUnit",
                Deadline   = new DateTime(2020, 12, 31)
            };

            //Act
            var result = controller.Post(model);

            //Assert
            Assert.IsType <OkResult>(result);
        }