public async Task UpdateDelivery_Should_Return_UpdatedDelivery()
        {
            var delivery   = SampleData.GetDeliveries()[1];
            var deliveries = SampleData.GetDeliveryView();

            deliveryService.Setup(x => x.UpdateDelivery(It.IsAny <int>(), It.IsAny <DeliveryStatus>())).ReturnsAsync(delivery);

            deliveryService.Setup(x => x.GetDelivery(It.IsAny <int>())).ReturnsAsync(deliveries[0]);

            var result = await deliveryController.UpdateDelivery(delivery.Id, 1);

            Assert.IsNotNull(result.Value);
        }
        public void UpdateDelivery()
        {
            var deliveryService = new Mock <IDeliveryBusinessLayer>();

            deliveryService.Setup(x => x.GetDeliveryByID(1)).Returns(testdelivery);

            var controller = new DeliveryController(deliveryService.Object);

            IHttpActionResult actionResult = controller.UpdateDelivery(1, testdelivery);
            var contentResult = actionResult as OkNegotiatedContentResult <Delivery>;

            Assert.IsNotNull(contentResult.Content);
            Assert.AreEqual(1, contentResult.Content.DeliveryID);
        }
예제 #3
0
        public void UpdateDeliveryBadRequestDeliveryIsNull()
        {
            // Arrange
            var mock = new Mock <IDeliveryRepository>();
            DeliveryController controller = new DeliveryController(mock.Object);

            // Act
            BadRequestObjectResult result = controller.UpdateDelivery(
                "Random Id",
                null).Result as BadRequestObjectResult;

            // Assert
            Assert.Equal((int?)HttpStatusCode.BadRequest, result.StatusCode);
            mock.Verify(rep => rep.GetDeliveryByIdAsync(It.IsAny <string>()), Times.Never);
        }
예제 #4
0
        public async void UpdateDeliveryThrowsException()
        {
            // Arrange
            var mock = new Mock <IDeliveryRepository>();

            mock.Setup(rep => rep.GetDeliveryByIdAsync(It.IsAny <string>())).Throws <DeliveryDomainException>();
            DeliveryController controller = new DeliveryController(mock.Object);

            // Act & Assert
            Exception ex = await Assert.ThrowsAsync <DeliveryDomainException>(
                async() => { await controller.UpdateDelivery("Random Id", new JsonPatchDocument <Models.Delivery>()); }
                );

            Assert.Equal(typeof(DeliveryDomainException), ex.GetType());
        }
예제 #5
0
        public async void UpdateDeliveryBadRequestIdIsNull()
        {
            // Arrange
            var mock = new Mock <IDeliveryRepository>();
            DeliveryController controller = new DeliveryController(mock.Object);

            // Act
            BadRequestObjectResult result = await controller.UpdateDelivery(
                "Random User",
                It.IsAny <JsonPatchDocument <Models.Delivery> >()) as BadRequestObjectResult;

            // Assert
            Assert.Equal((int?)HttpStatusCode.BadRequest, result.StatusCode);
            mock.Verify(rep => rep.GetDeliveryByIdAsync(It.IsAny <string>()), Times.Never);
            mock.Verify(rep => rep.UpdateDeliveryAsync(It.IsAny <string>(), It.IsAny <Models.Delivery>()), Times.Never);
        }
        public void UpdateDelivery_ReturnsCorrectViewResult()
        {
            // Arrange
            Mock <IDeliveryProvider> deliveryProviderMock = new Mock <IDeliveryProvider>();

            deliveryProviderMock.Setup(x => x.GetById(1))
            .Returns(deliveries[0]);
            Mock <IDeliveryHandler>   deliveryHandlerMock   = new Mock <IDeliveryHandler>();
            Mock <IDeliveryValidator> deliveryValidatorMock = new Mock <IDeliveryValidator>();

            DeliveryController controller = new DeliveryController(deliveryProviderMock.Object, deliveryHandlerMock.Object, deliveryValidatorMock.Object);
            // Act
            ViewResult result = controller.UpdateDelivery(1) as ViewResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(((Delivery)result.Model).Id != default(int));
            Assert.AreEqual("UpdateDelivery", result.ViewName);
        }
예제 #7
0
        public async void UpdateDeliveryNotFound()
        {
            // Arrange
            var mock = new Mock <IDeliveryRepository>();

            mock.Setup(rep => rep.GetDeliveryByIdAsync(It.IsAny <string>()))
            .Returns(Task <Models.Delivery> .Run(() => default(Models.Delivery)));
            DeliveryController controller = new DeliveryController(mock.Object);

            // Act
            NotFoundObjectResult result = await controller.UpdateDelivery(
                "Unexisting delivery",
                new JsonPatchDocument <Models.Delivery>()) as NotFoundObjectResult;

            // Assert
            Assert.Equal((int?)HttpStatusCode.NotFound, result.StatusCode);
            mock.Verify(rep => rep.GetDeliveryByIdAsync(It.IsAny <string>()), Times.Once);
            mock.Verify(rep => rep.UpdateDeliveryAsync(It.IsAny <string>(), It.IsAny <Models.Delivery>()), Times.Never);
        }
예제 #8
0
        public async void UpdateDeliveryOk(Models.Delivery[] deliveries)
        {
            // Arrange
            var mock = new Mock <IDeliveryRepository>();

            Models.Delivery deliveryToUpdate = deliveries[0];
            mock.Setup(rep => rep.GetDeliveryByIdAsync(It.IsAny <string>()))
            .Returns(Task <Models.Delivery> .Run(() => deliveryToUpdate));
            DeliveryController controller = new DeliveryController(mock.Object);

            // Act
            OkObjectResult model = await controller.UpdateDelivery(
                deliveryToUpdate.Id,
                new JsonPatchDocument <Models.Delivery>()) as OkObjectResult;

            // Assert
            Assert.Equal((int?)HttpStatusCode.OK, model.StatusCode);
            mock.Verify(rep => rep.GetDeliveryByIdAsync(It.IsAny <string>()), Times.Once);
            mock.Verify(rep => rep.UpdateDeliveryAsync(It.IsAny <string>(), It.IsAny <Models.Delivery>()), Times.Once);
        }