private DeliveryOrderController GetController(Mock <IDeliveryOrderFacade> facadeMock, Mock <IServiceProvider> serviceProviderMock, Mock <IMapper> autoMapperMock)
        {
            var user   = new Mock <ClaimsPrincipal>();
            var claims = new Claim[]
            {
                new Claim("username", "unittestusername")
            };

            user.Setup(u => u.Claims).Returns(claims);

            //var servicePMock = GetServiceProvider();
            //servicePMock
            //    .Setup(x => x.GetService(typeof(IValidateService)))
            //    .Returns(validateM.Object);

            DeliveryOrderController controller = new DeliveryOrderController(autoMapperMock.Object, facadeMock.Object, serviceProviderMock.Object)
            {
                ControllerContext = new ControllerContext()
                {
                    HttpContext = new DefaultHttpContext()
                    {
                        User = user.Object
                    }
                }
            };

            controller.ControllerContext.HttpContext.Request.Headers["Authorization"] = "Bearer unittesttoken";
            controller.ControllerContext.HttpContext.Request.Path = new PathString("/v1/unit-test");
            controller.ControllerContext.HttpContext.Request.Headers["x-timezone-offset"] = "7";

            return(controller);
        }
        public void Should_Fail_GetXls()
        {
            var mockFacade = new Mock <IDeliveryOrderFacade>();

            mockFacade.Setup(x => x.GenerateExcel(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime?>(), It.IsAny <DateTime?>(),
                                                  It.IsAny <int>()))
            .Throws(new Exception("error"));

            var mockMapper = new Mock <IMapper>();

            DeliveryOrderController controller = GetController(mockFacade, GetServiceProvider(), mockMapper);
            var response = controller.GetXls(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime?>(), It.IsAny <DateTime?>());

            Assert.Equal((int)HttpStatusCode.InternalServerError, GetStatusCode(response));
        }
        public void Should_Success_GetXls()
        {
            var mockFacade = new Mock <IDeliveryOrderFacade>();

            mockFacade.Setup(x => x.GenerateExcel(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime?>(), It.IsAny <DateTime?>(),
                                                  It.IsAny <int>()))
            .Returns(new MemoryStream());

            var mockMapper = new Mock <IMapper>();

            DeliveryOrderController controller = GetController(mockFacade, GetServiceProvider(), mockMapper);
            var response = controller.GetXls(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime?>(), It.IsAny <DateTime?>());

            Assert.NotNull(response);
        }
        public void Should_Success_GetReport()
        {
            var mockFacade = new Mock <IDeliveryOrderFacade>();

            mockFacade.Setup(x => x.GetReport(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime?>(), It.IsAny <DateTime?>(), It.IsAny <int>(), It.IsAny <int>(),
                                              It.IsAny <string>(), It.IsAny <int>()))
            .Returns(new Tuple <List <DeliveryOrderReportViewModel>, int>(new List <DeliveryOrderReportViewModel>(), It.IsAny <int>()));

            var mockMapper = new Mock <IMapper>();

            DeliveryOrderController controller = GetController(mockFacade, GetServiceProvider(), mockMapper);
            var response = controller.GetReport(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime?>(), It.IsAny <DateTime?>(), It.IsAny <int>(), It.IsAny <int>(),
                                                It.IsAny <string>());

            Assert.Equal((int)HttpStatusCode.OK, GetStatusCode(response));
        }
        public void Should_Fail_Get_ById()
        {
            var mockFacade = new Mock <IDeliveryOrderFacade>();

            mockFacade.Setup(x => x.ReadById(It.IsAny <int>()))
            .Throws(new Exception("error"));

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <DeliveryOrderViewModel>(It.IsAny <DeliveryOrder>()))
            .Returns(ViewModel);

            DeliveryOrderController controller = GetController(mockFacade, GetServiceProvider(), mockMapper);
            var response = controller.Get(It.IsAny <int>());

            Assert.Equal((int)HttpStatusCode.InternalServerError, GetStatusCode(response));
        }
        public void Should_Success_Get_ById()
        {
            var mockFacade = new Mock <IDeliveryOrderFacade>();

            mockFacade.Setup(x => x.ReadById(It.IsAny <int>()))
            .Returns(new Tuple <DeliveryOrder, List <long> >(Model, new List <long>()));

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <DeliveryOrderViewModel>(It.IsAny <DeliveryOrder>()))
            .Returns(ViewModel);

            DeliveryOrderController controller = GetController(mockFacade, GetServiceProvider(), mockMapper);
            var response = controller.Get(It.IsAny <int>());

            Assert.Equal((int)HttpStatusCode.OK, GetStatusCode(response));
        }
        public void Should_Success_BySupplier()
        {
            var mockFacade = new Mock <IDeliveryOrderFacade>();

            mockFacade.Setup(x => x.ReadBySupplier(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(new List <DeliveryOrder>());

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <List <DeliveryOrderViewModel> >(It.IsAny <List <DeliveryOrder> >()))
            .Returns(new List <DeliveryOrderViewModel> {
                ViewModel
            });

            DeliveryOrderController controller = GetController(mockFacade, GetServiceProvider(), mockMapper);
            var response = controller.BySupplier(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>());

            Assert.Equal((int)HttpStatusCode.OK, GetStatusCode(response));
        }
        public void Should_Success_Get_ByUser()
        {
            var mockFacade = new Mock <IDeliveryOrderFacade>();

            mockFacade.Setup(x => x.Read(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(new Tuple <List <DeliveryOrder>, int, Dictionary <string, string> >(new List <DeliveryOrder>()
            {
                Model
            }, 1, new Dictionary <string, string>()));

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <List <DeliveryOrderViewModel> >(It.IsAny <List <DeliveryOrder> >()))
            .Returns(new List <DeliveryOrderViewModel> {
                ViewModel
            });

            DeliveryOrderController controller = GetController(mockFacade, GetServiceProvider(), mockMapper);
            var response = controller.GetByUser(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>(), "{}");

            Assert.Equal((int)HttpStatusCode.OK, GetStatusCode(response));
        }