public void Delete_Not_Ajax_Request()
        {
            // Arrange
            var id = 1;
            var informationItem = new InformationItem()
            {
                ID         = 1,
                PictureUrl = "/Content/Images/pizza_1.jpg",
                Position   = 1,
                Title      = "Menu",
                Content    = "Ut at viverra arcu. Donec sed interdum nulla, eu porttitor lorem. Morbi efficitur sapien ullamcorper lorem vestibulum, ut aliquet turpis consequat. Suspendisse ac nibh non velit scelerisque bibendum. "
            };
            var service        = Substitute.For <IInformationItemService>();
            var fakeController = new FakeController();
            var controller     = new InformationItemController(service);

            fakeController.PrepareFakeRequest();
            controller.ControllerContext = fakeController.GetControllerContext <InformationItemController>(new RouteData(), controller);
            service.GetInfomrationItem(id).Returns(informationItem);

            // Act
            var result      = controller.Delete(id) as RedirectToRouteResult;
            var ajaxRequest = controller.Request.IsAjaxRequest();
            var actionName  = result.RouteValues.Values.ElementAt(0);

            // Assert
            Assert.That(result, !Is.Null);
            Assert.That(ajaxRequest, Is.False);
            Assert.That("Index", Is.EqualTo(actionName));
        }
        public void Delete_Good()
        {
            // Arrange
            var id = 1;
            var informationItem = new InformationItem()
            {
                ID         = 1,
                PictureUrl = "/Content/Images/pizza_1.jpg",
                Position   = 1,
                Title      = "Menu",
                Content    = "Ut at viverra arcu. Donec sed interdum nulla, eu porttitor lorem. Morbi efficitur sapien ullamcorper lorem vestibulum, ut aliquet turpis consequat. Suspendisse ac nibh non velit scelerisque bibendum. "
            };
            var service        = Substitute.For <IInformationItemService>();
            var fakeController = new FakeController();
            var controller     = new InformationItemController(service);

            fakeController.PrepareFakeAjaxRequest();
            controller.ControllerContext = fakeController.GetControllerContext <InformationItemController>(new RouteData(), controller);
            service.GetInfomrationItem(id).Returns(informationItem);
            service.DeleteInfomationItem(informationItem);
            service.SaveInfomrationItem();

            // Act
            var result              = controller.Delete(id) as JsonResult;
            var ajaxRequest         = controller.Request.IsAjaxRequest();
            var jsonRequestBehavior = result.JsonRequestBehavior;
            var data = result.Data;

            // Assert
            Assert.That(result, !Is.Null);
            Assert.That(ajaxRequest, Is.True);
            Assert.That(JsonRequestBehavior.AllowGet, Is.EqualTo(jsonRequestBehavior));
            Assert.That("", Is.EqualTo(data));
        }
        public void Delete_Id_Is_Null()
        {
            // Arrange
            int?id         = null;
            var service    = Substitute.For <IInformationItemService>();
            var controller = new InformationItemController(service);

            // Act
            var result     = controller.Delete(id) as HttpStatusCodeResult;
            var statusCode = result.StatusCode;

            // Assert
            Assert.That(result, !Is.Null);
            Assert.That(400, Is.EqualTo(statusCode));
        }
        public void Delete_Model_Null()
        {
            // Arrange
            var             id = -1;
            InformationItem informationItem = null;
            var             service         = Substitute.For <IInformationItemService>();
            var             controller      = new InformationItemController(service);

            service.GetInfomrationItem(id).Returns(informationItem);

            // Act
            var result     = controller.Delete(id) as HttpNotFoundResult;
            var statusCode = result.StatusCode;

            // Assert
            Assert.That(result, !Is.Null);
            Assert.That(404, Is.EqualTo(statusCode));
        }