public void Index()
      {
          // Arrange
          TODOController controller = new TODOController();

          // Act
          ViewResult result = controller.Create() as ViewResult;

          // Assert
          NUnit.Framework.Assert.IsNotNull(result);
      }
      public void Create()
      {
          //Arrange
          TODOController Controller = new TODOController();

          //Act
          var Actual = Controller.Index();

          //Assert
          NUnit.Framework.Assert.IsInstanceOf <ActionResult>(Actual);
      }
        public void GetTODOsIncorrectFlow()
        {
            var mockBusiness = new Mock <ITodoBusiness>();

            mockBusiness.Setup(x => x.ListTODOs()).Throws(new Exception());

            TODOController todoController = new TODOController(mockBusiness.Object);
            var            result         = todoController.GetTodos();

            Assert.NotNull(result);
            var viewResult = Assert.IsType <OkObjectResult>(result);
            var response   = Assert.IsAssignableFrom <APIResponse>(viewResult.Value);

            Assert.Equal("InternalServerError", response.HttpResponse);
        }
        public void GetTODOsCorrectFlow()
        {
            var mockBusiness = new Mock <ITodoBusiness>();

            mockBusiness.Setup(x => x.ListTODOs()).Returns(this.GetTODOs());

            TODOController todoController = new TODOController(mockBusiness.Object);
            var            result         = todoController.GetTodos();

            Assert.NotNull(result);
            var viewResult = Assert.IsType <OkObjectResult>(result);
            var response   = Assert.IsAssignableFrom <APIResponse>(viewResult.Value);

            Assert.Equal("OK", response.HttpResponse);
        }
        public void DeleteTODONullObject()
        {
            var mockBusiness = new Mock <ITodoBusiness>();

            mockBusiness.Setup(x => x.DeleteTODO(It.IsAny <TODO>()))
            .Returns((TODO)null);

            TODOController todoController = new TODOController(mockBusiness.Object);
            var            result         = todoController.DeleteTODO(1);

            Assert.NotNull(result);
            var viewResult = Assert.IsType <OkObjectResult>(result);
            var response   = Assert.IsAssignableFrom <APIResponse>(viewResult.Value);

            Assert.Equal("NotFound", response.HttpResponse);
        }
        public void CreateTODONullParameter()
        {
            var mockBusiness = new Mock <ITodoBusiness>();

            mockBusiness.Setup(x => x.CreateTODO(It.IsAny <TODO>()))
            .Throws(new Exception());

            TODOController todoController = new TODOController(mockBusiness.Object);
            var            result         = todoController.CreateTODO(null);

            Assert.NotNull(result);
            var viewResult = Assert.IsType <OkObjectResult>(result);
            var response   = Assert.IsAssignableFrom <APIResponse>(viewResult.Value);

            Assert.Equal("InternalServerError", response.HttpResponse);
        }
        public void DeleteTODOIncorrectFlow()
        {
            var mockBusiness = new Mock <ITodoBusiness>();

            mockBusiness.Setup(x => x.GetTodoById(It.IsAny <int>()))
            .Returns(this.GetTODOMock());

            mockBusiness.Setup(x => x.DeleteTODO(It.IsAny <TODO>()))
            .Throws(new Exception());

            TODOController todoController = new TODOController(mockBusiness.Object);
            var            result         = todoController.DeleteTODO(1);

            Assert.NotNull(result);
            var viewResult = Assert.IsType <OkObjectResult>(result);
            var response   = Assert.IsAssignableFrom <APIResponse>(viewResult.Value);

            Assert.Equal("InternalServerError", response.HttpResponse);
        }