예제 #1
0
        public async void CanSendNotEmptyCapsule()
        {
            // Arrange
            var message = new Message()
            {
                Id = int.MaxValue
            };
            var capsule = new Capsule(Guid.NewGuid().ToString());

            capsule.AddMessage(message);
            var delivery = new Delivery(capsule);

            var capsuleSrvMock = new Mock <ICapsuleService>();

            capsuleSrvMock.Setup(srv => srv.GetCapsuleByUserAsync()).Returns(() => Task <Capsule> .Run(() => capsule));

            var deliverySrvMock = new Mock <IDeliveryService>();

            deliverySrvMock.Setup(srv => srv.DeliverCapsuleAsync(It.IsAny <Delivery>())).Verifiable();

            var controller = new DeliveryController(capsuleService: capsuleSrvMock.Object, deliveryService: deliverySrvMock.Object);

            // Act
            ViewResult result = await controller.Index() as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(result);
            Assert.Equal("Index", result?.ViewName);
            deliverySrvMock.Verify(srv => srv.DeliverCapsuleAsync(It.IsAny <Delivery>()), Times.Never);
            Assert.True(result?.ViewData?.ModelState.IsValid);
        }
        public void Index_ReturnsCorrectViewResult()
        {
            // Arrange
            Mock <IDeliveryProvider> deliveryProviderMock = new Mock <IDeliveryProvider>();

            deliveryProviderMock.Setup(x => x.GetAll())
            .Returns(deliveries);
            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.Index() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(((List <Delivery>)result.Model).Count == 2);
            Assert.AreEqual("GetDeliveriesList", result.ViewName);
        }