public void Should_Error_Get_All_Data_By_User()
        {
            var validateMock = new Mock <IValidateService>();

            validateMock.Setup(s => s.Validate(It.IsAny <GarmentExternalPurchaseOrderViewModel>())).Verifiable();

            var mockFacade = new Mock <IGarmentExternalPurchaseOrderFacade>();

            mockFacade.Setup(x => x.Read(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), null, It.IsAny <string>()))
            .Returns(Tuple.Create(new List <GarmentExternalPurchaseOrder>(), 0, new Dictionary <string, string>()));

            var mockMapper = new Mock <IMapper>();

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


            var IPOmockFacade = new Mock <IGarmentInternalPurchaseOrderFacade>();

            GarmentExternalPurchaseOrderController controller = new GarmentExternalPurchaseOrderController(GetServiceProvider().Object, mockMapper.Object, mockFacade.Object, IPOmockFacade.Object);
            var response = controller.GetByUser();

            Assert.Equal((int)HttpStatusCode.InternalServerError, GetStatusCode(response));
        }
        public void Should_Success_Get_All_Data_By_User_With_Filter()
        {
            var validateMock = new Mock <IValidateService>();

            validateMock.Setup(s => s.Validate(It.IsAny <GarmentExternalPurchaseOrderViewModel>())).Verifiable();

            var mockFacade = new Mock <IGarmentExternalPurchaseOrderFacade>();

            mockFacade.Setup(x => x.Read(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), null, It.IsAny <string>()))
            .Returns(Tuple.Create(new List <GarmentExternalPurchaseOrder>(), 0, new Dictionary <string, string>()));

            var mockMapper = new Mock <IMapper>();

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


            var IPOmockFacade = new Mock <IGarmentInternalPurchaseOrderFacade>();

            GarmentExternalPurchaseOrderController controller = GetController(mockFacade, validateMock, mockMapper, IPOmockFacade);
            var response = controller.GetByUser(filter: "{ 'IsPosted': false }");

            Assert.Equal((int)HttpStatusCode.OK, GetStatusCode(response));
        }
        public void GetByROLoader_Success()
        {
            var validateMock = new Mock <IValidateService>();

            validateMock.Setup(s => s.Validate(It.IsAny <GarmentExternalPurchaseOrderItemViewModel>())).Verifiable();

            var mockFacade = new Mock <IGarmentExternalPurchaseOrderFacade>();

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

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <List <GarmentExternalPurchaseOrderItemViewModel> >(It.IsAny <List <GarmentExternalPurchaseOrderItem> >()))
            .Returns(new List <GarmentExternalPurchaseOrderItemViewModel> {
                ViewModel.Items.First()
            });

            var IPOmockFacade = new Mock <IGarmentInternalPurchaseOrderFacade>();

            GarmentExternalPurchaseOrderController controller = GetController(mockFacade, validateMock, mockMapper, IPOmockFacade);
            var response = controller.ByROLoader();

            Assert.Equal((int)HttpStatusCode.OK, GetStatusCode(response));
        }
        public void Should_Error_Get_Data_By_RO()
        {
            var validateMock = new Mock <IValidateService>();

            validateMock.Setup(s => s.Validate(It.IsAny <GarmentExternalPurchaseOrderItemViewModel>())).Verifiable();

            var mockFacade = new Mock <IGarmentExternalPurchaseOrderFacade>();

            mockFacade.Setup(x => x.ReadItemByRO(null, It.IsAny <string>()))
            .Returns(new List <GarmentExternalPurchaseOrderItem>());

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <List <GarmentExternalPurchaseOrderItemViewModel> >(It.IsAny <List <GarmentExternalPurchaseOrderItem> >()))
            .Returns(new List <GarmentExternalPurchaseOrderItemViewModel> {
                ViewModel.Items.First()
            });


            var IPOmockFacade = new Mock <IGarmentInternalPurchaseOrderFacade>();

            GarmentExternalPurchaseOrderController controller = new GarmentExternalPurchaseOrderController(GetServiceProvider().Object, mockMapper.Object, mockFacade.Object, IPOmockFacade.Object);
            var response = controller.ByRO();

            Assert.Equal((int)HttpStatusCode.InternalServerError, GetStatusCode(response));
        }
        public void Should_Success_Get_Data_By_Supplier()
        {
            var validateMock = new Mock <IValidateService>();

            validateMock.Setup(s => s.Validate(It.IsAny <GarmentExternalPurchaseOrderViewModel>())).Verifiable();

            var mockFacade = new Mock <IGarmentExternalPurchaseOrderFacade>();

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

            var mockMapper = new Mock <IMapper>();

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

            var IPOmockFacade = new Mock <IGarmentInternalPurchaseOrderFacade>();

            GarmentExternalPurchaseOrderController controller = GetController(mockFacade, validateMock, mockMapper, IPOmockFacade);
            var response = controller.BySupplier(It.IsAny <string>());

            Assert.Equal((int)HttpStatusCode.OK, GetStatusCode(response));
        }
        public void Should_Success_Get_PDF_Garment_EPO_Local_Fabric()
        {
            var validateMock = new Mock <IValidateService>();

            validateMock.Setup(s => s.Validate(It.IsAny <GarmentExternalPurchaseOrderViewModel>())).Verifiable();

            var mockFacade = new Mock <IGarmentExternalPurchaseOrderFacade>();

            mockFacade.Setup(x => x.ReadById(It.IsAny <int>()))
            .Returns(new GarmentExternalPurchaseOrder());

            var ViewModelFabric = this.ViewModelFabric;

            ViewModelFabric.Supplier.Import = false;
            foreach (var item in ViewModelFabric.Items)
            {
                item.IsOverBudget = true; break;
            }

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <GarmentExternalPurchaseOrderViewModel>(It.IsAny <GarmentExternalPurchaseOrder>()))
            .Returns(ViewModelFabric);



            var IPOmockFacade = new Mock <IGarmentInternalPurchaseOrderFacade>();

            var user   = new Mock <ClaimsPrincipal>();
            var claims = new Claim[]
            {
                new Claim("username", "unittestusername")
            };

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

            GarmentExternalPurchaseOrderController controller = GetController(mockFacade, validateMock, mockMapper, IPOmockFacade);

            controller.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user.Object
                }
            };

            controller.ControllerContext.HttpContext.Request.Headers["Accept"]            = "application/pdf";
            controller.ControllerContext.HttpContext.Request.Headers["x-timezone-offset"] = "0";

            var response = controller.Get(It.IsAny <int>());

            Assert.NotNull(response.GetType().GetProperty("FileStream"));
        }
        public void Should_Error_Delete_Data()
        {
            var validateMock = new Mock <IValidateService>();
            var mockMapper   = new Mock <IMapper>();

            var mockFacade = new Mock <IGarmentExternalPurchaseOrderFacade>();

            mockFacade.Setup(x => x.Delete(It.IsAny <int>(), "unittestusername"))
            .Returns(1);

            var IPOmockFacade = new Mock <IGarmentInternalPurchaseOrderFacade>();
            var controller    = new GarmentExternalPurchaseOrderController(GetServiceProvider().Object, mockMapper.Object, mockFacade.Object, IPOmockFacade.Object);

            var response = controller.Delete(It.IsAny <int>());

            Assert.Equal((int)HttpStatusCode.InternalServerError, GetStatusCode(response));
        }
        public void Should_Error_Get_PDF_Garment_EPO_By_Id()
        {
            var validateMock = new Mock <IValidateService>();

            validateMock.Setup(s => s.Validate(It.IsAny <GarmentExternalPurchaseOrderViewModel>())).Verifiable();

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <GarmentExternalPurchaseOrder>(It.IsAny <GarmentExternalPurchaseOrderViewModel>()))
            .Returns(Model);

            var mockFacade = new Mock <IGarmentExternalPurchaseOrderFacade>();

            mockFacade.Setup(x => x.Create(It.IsAny <GarmentExternalPurchaseOrder>(), "unittestusername", 7))
            .ReturnsAsync(1);

            var IPOmockFacade = new Mock <IGarmentInternalPurchaseOrderFacade>();

            var user   = new Mock <ClaimsPrincipal>();
            var claims = new Claim[]
            {
                new Claim("username", "unittestusername")
            };

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

            GarmentExternalPurchaseOrderController controller = new GarmentExternalPurchaseOrderController(GetServiceProvider().Object, mockMapper.Object, mockFacade.Object, IPOmockFacade.Object);

            controller.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user.Object
                }
            };

            controller.ControllerContext.HttpContext.Request.Headers["Accept"]            = "application/pdf";
            controller.ControllerContext.HttpContext.Request.Headers["x-timezone-offset"] = "0";

            var response = controller.Get(It.IsAny <int>());

            Assert.Null(response.GetType().GetProperty("FileStream"));
        }
        public void Should_Error_Get_Data_By_Id()
        {
            var validateMock = new Mock <IValidateService>();

            validateMock.Setup(s => s.Validate(It.IsAny <GarmentExternalPurchaseOrderViewModel>())).Verifiable();

            var mockFacade = new Mock <IGarmentExternalPurchaseOrderFacade>();

            mockFacade.Setup(x => x.ReadById(It.IsAny <int>()))
            .Returns(new GarmentExternalPurchaseOrder());

            var mockMapper = new Mock <IMapper>();

            var IPOmockFacade = new Mock <IGarmentInternalPurchaseOrderFacade>();

            GarmentExternalPurchaseOrderController controller = GetController(mockFacade, validateMock, mockMapper, IPOmockFacade);
            var response = controller.Get(It.IsAny <int>());

            Assert.Equal((int)HttpStatusCode.InternalServerError, GetStatusCode(response));
        }
        public async Task Should_Error_Update_Data()
        {
            var validateMock = new Mock <IValidateService>();

            validateMock.Setup(s => s.Validate(It.IsAny <GarmentExternalPurchaseOrderViewModel>())).Verifiable();

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <GarmentExternalPurchaseOrder>(It.IsAny <GarmentExternalPurchaseOrderViewModel>()))
            .Returns(Model);

            var mockFacade = new Mock <IGarmentExternalPurchaseOrderFacade>();

            mockFacade.Setup(x => x.Create(It.IsAny <GarmentExternalPurchaseOrder>(), "unittestusername", 7))
            .ReturnsAsync(1);

            var IPOmockFacade = new Mock <IGarmentInternalPurchaseOrderFacade>();

            var controller = new GarmentExternalPurchaseOrderController(GetServiceProvider().Object, mockMapper.Object, mockFacade.Object, IPOmockFacade.Object);

            var response = await controller.Put(It.IsAny <int>(), It.IsAny <GarmentExternalPurchaseOrderViewModel>());

            Assert.Equal((int)HttpStatusCode.InternalServerError, GetStatusCode(response));
        }
        private GarmentExternalPurchaseOrderController GetController(Mock <IGarmentExternalPurchaseOrderFacade> facadeM, Mock <IValidateService> validateM, Mock <IMapper> mapper, Mock <IGarmentInternalPurchaseOrderFacade> facadeIPO)
        {
            var user   = new Mock <ClaimsPrincipal>();
            var claims = new Claim[]
            {
                new Claim("username", "unittestusername")
            };

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

            var servicePMock = GetServiceProvider();

            if (validateM != null)
            {
                servicePMock
                .Setup(x => x.GetService(typeof(IValidateService)))
                .Returns(validateM.Object);
            }

            var controller = new GarmentExternalPurchaseOrderController(servicePMock.Object, mapper.Object, facadeM.Object, facadeIPO.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);
        }