public void GetToDoTask_IfTaskExists_ReturnToDoTask_ElseReturNotFoundResult(bool taskExists)
        {
            // Arrange
            var context = Substitute.For <IMyToDoListContext>();
            var dbTask  = new ToDoTask {
                ID = 1
            };
            var dbSet = GetDbSet(new List <ToDoTask> {
                dbTask
            });

            context.ToDoTask.Returns(dbSet);
            ToDoTasksController controller = new ToDoTasksController(context);

            // Act
            if (taskExists)
            {
                context.ToDoTask.FindAsync(dbTask.ID).Returns(dbTask);
                var result = controller.GetToDoTask(dbTask.ID).Result.Value;
                // Assert
                Assert.AreEqual(dbTask, result);
            }
            else
            {
                var result = (controller.GetToDoTask(dbTask.ID).Result.Result as StatusCodeResult)?.StatusCode;
                // Assert
                Assert.AreEqual(404, result);
            }
        }
        public void GetToDoTask_ActoinResultNotNull()
        {
            // Arrange
            var context    = Substitute.For <IMyToDoListContext>();
            var dbTaskList = new List <ToDoTask>
            {
                new ToDoTask {
                    ID = 1
                },
                new ToDoTask {
                    ID = 2
                },
                new ToDoTask {
                    ID = 3
                }
            };
            var dbSet = GetDbSet(dbTaskList);

            context.ToDoTask.Returns(dbSet);
            ToDoTasksController controller = new ToDoTasksController(context);
            // Act
            var result = controller.GetToDoTask().Value.ToList();

            // Assert
            Assert.AreEqual(dbTaskList, result);
        }
        public async Task PutToDoTask_IfTaskExists_ReturnsNotFoundResult_ElseReturnNoContentResult(bool toDoTaskExists)
        {
            // Arrange
            var context = Substitute.For <IMyToDoListContext>();
            var dbTask  = new ToDoTask {
                ID = 1
            };
            var uiTask = new ToDoTask {
                ID = dbTask.ID
            };
            var dbSet = GetDbSet(new List <ToDoTask> {
                dbTask
            });

            context.ToDoTask.Returns(dbSet);
            ToDoTasksController controller = new ToDoTasksController(context);

            if (toDoTaskExists)
            {
                // Act
                var result = (await controller.PutToDoTask(dbTask.ID, uiTask) as StatusCodeResult)?.StatusCode;
                // Assert
                Assert.AreEqual(204, result);
            }
            else
            {
                uiTask.ID = 2;
                // Act
                var result = (await controller.PutToDoTask(uiTask.ID, uiTask) as StatusCodeResult)?.StatusCode;
                // Assert
                Assert.AreEqual(404, result);
            }
        }
Example #4
0
        public void Update_WhenTaskNull_ShouldReturnBadRequest()
        {
            // Arrange
            var controller = new ToDoTasksController(MockToDoTaskRepository.Object, MockLogger.Object);

            // Act
            var actionResult = controller.Update(null);

            // Assert
            Assert.IsInstanceOfType(actionResult, typeof(BadRequestResult));
        }
Example #5
0
        public void Delete_WhenTaskNotFound_ShouldReturnNotFound()
        {
            // Arrange
            MockToDoTaskRepository.Setup(r => r.Delete(It.IsAny <int>())).Returns(false);
            var controller = new ToDoTasksController(MockToDoTaskRepository.Object, MockLogger.Object);

            // Act
            var actionResult = controller.Delete(1);

            // Assert
            Assert.IsInstanceOfType(actionResult, typeof(NotFoundResult));
        }
Example #6
0
        public void GetById_WhenTaskNotFound_ShouldReturnNull()
        {
            // Arrange
            MockToDoTaskRepository.Setup(r => r.GetById(It.IsAny <int>())).Returns((ToDoTask)null);
            var controller = new ToDoTasksController(MockToDoTaskRepository.Object, MockLogger.Object);

            // Act
            var result = controller.GetById(1);

            // Assert
            Assert.IsNull(result);
        }
Example #7
0
        public void Delete_WhenTaskFound_ShouldDeleteTask()
        {
            // Arrange
            MockToDoTaskRepository.Setup(r => r.Delete(It.IsAny <int>())).Returns(true);
            var controller = new ToDoTasksController(MockToDoTaskRepository.Object, MockLogger.Object);

            // Act
            var actionResult  = controller.Delete(1);
            var createdResult = actionResult as CreatedNegotiatedContentResult <ToDoTask>;

            // Assert
            Assert.IsInstanceOfType(actionResult, typeof(OkResult));
        }
Example #8
0
        public void GetAll_WhenNoneFound_ShouldReturnAnEmptyCollection()
        {
            // Arrange
            MockToDoTaskRepository.Setup(r => r.GetAll()).Returns(new List <ToDoTask>());
            var controller = new ToDoTasksController(MockToDoTaskRepository.Object, MockLogger.Object);

            // Act
            var result = controller.GetAll().ToList();

            // Assert
            Assert.IsNotNull(result);

            Assert.AreEqual(0, result.Count());
        }
Example #9
0
        public void Update_WhenTaskNotNull_ShouldUpdateTask()
        {
            // Arrange
            MockToDoTaskRepository.Setup(r => r.Upsert(It.IsAny <ToDoTask>())).Returns(true);
            var controller = new ToDoTasksController(MockToDoTaskRepository.Object, MockLogger.Object);

            // Act
            var actionResult  = controller.Update(MockTodo);
            var createdResult = actionResult as CreatedNegotiatedContentResult <ToDoTask>;

            // Assert
            Assert.IsNotNull(createdResult);
            Assert.IsNotNull(createdResult.Content.Id);
        }
Example #10
0
        public void GetById_WhenTaskFound_ShouldReturnTask()
        {
            // Arrange
            MockToDoTaskRepository.Setup(r => r.GetById(It.IsAny <int>())).Returns(MockTodo);
            var controller = new ToDoTasksController(MockToDoTaskRepository.Object, MockLogger.Object);

            // Act
            var result = controller.GetById(1);

            // Assert
            Assert.IsNotNull(result);

            Assert.AreEqual(MockTodo.Id, result.Id);
            Assert.AreEqual(MockTodo.TaskDescription, result.TaskDescription);
            Assert.AreEqual(MockTodo.TaskCreationTime, result.TaskCreationTime);
            Assert.AreEqual(MockTodo.TaskCompleted, result.TaskCompleted);
        }
        public async Task PutToDoTask_IfToDoTaskIDNotEqalId_ReturnsBadReqestResult()
        {
            var context = Substitute.For <IMyToDoListContext>();
            var dbTask  = new ToDoTask {
                ID = 1
            };
            var uiTask = new ToDoTask {
                ID = dbTask.ID
            };
            var dbSet = GetDbSet(new List <ToDoTask>());

            context.ToDoTask.Returns(dbSet);
            ToDoTasksController controller = new ToDoTasksController(context);
            // Act
            var result = (await controller.PutToDoTask(dbTask.ID + 1, uiTask) as StatusCodeResult)?.StatusCode;

            // Assert
            Assert.AreEqual(400, result);
        }
        public void PostToDoTask_ReturnsCreatedAtActionResult()
        {
            // Arrange
            var context = Substitute.For <IMyToDoListContext>();
            ToDoTasksController controller = new ToDoTasksController(context);
            var dbTask = new ToDoTask {
                ID = 1
            };
            var uiTask = new ToDoTask {
                ID = dbTask.ID, Status = "done"
            };
            var dbSet = GetDbSet(new List <ToDoTask> {
                dbTask
            });

            context.ToDoTask.Returns(dbSet);
            // Act
            var result = (controller.PostToDoTask(uiTask).Result.Result as CreatedAtActionResult).StatusCode;

            // Assert
            Assert.AreEqual(201, result);
        }
Example #13
0
        public void GetAll_WhenTasksFound_ShouldReturnTasks()
        {
            // Arrange
            MockToDoTaskRepository.Setup(r => r.GetAll()).Returns(MockTodosList);
            var controller = new ToDoTasksController(MockToDoTaskRepository.Object, MockLogger.Object);

            // Act
            var result = controller.GetAll().ToList();

            // Assert
            Assert.IsNotNull(result);

            Assert.AreEqual(2, result.Count());

            Assert.AreEqual(MockTodosList[0].Id, result[0].Id);
            Assert.AreEqual(MockTodosList[0].TaskDescription, result[0].TaskDescription);
            Assert.AreEqual(MockTodosList[0].TaskCreationTime, result[0].TaskCreationTime);
            Assert.AreEqual(MockTodosList[0].TaskCompleted, result[0].TaskCompleted);

            Assert.AreEqual(MockTodosList[1].Id, result[1].Id);
            Assert.AreEqual(MockTodosList[1].TaskDescription, result[1].TaskDescription);
            Assert.AreEqual(MockTodosList[1].TaskCreationTime, result[1].TaskCreationTime);
            Assert.AreEqual(MockTodosList[1].TaskCompleted, result[1].TaskCompleted);
        }
        public async Task PutToDoTask_IfValidPramsPassed_UpdatesDatabase()
        {
            // Arrange
            var context = Substitute.For <IMyToDoListContext>();
            ToDoTasksController controller = new ToDoTasksController(context);
            var dbTask = new ToDoTask {
                ID = 1
            };
            var uiTask = new ToDoTask {
                ID = dbTask.ID, Status = "done"
            };
            var dbSet = GetDbSet(new List <ToDoTask> {
                dbTask
            });

            context.ToDoTask.Returns(dbSet);
            // Act
            await controller.PutToDoTask(dbTask.ID, uiTask);

            // Assert
            await context.Received().SaveChangesAsync();

            Assert.AreEqual(dbTask.Status, uiTask.Status);
        }
Example #15
0
 public void Initialize()
 {
     mockToDoTaskService = new Mock <IToDoTaskService>();
     toDoTasksController = new ToDoTasksController(mockToDoTaskService.Object);
 }