public void Mapping_With_AutoMapper_Profiles()
        {
            var configuration = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile <DyestuffChemicalUsageReceiptProfile>();
            });
            var mapper = configuration.CreateMapper();

            DyestuffChemicalUsageReceiptViewModel vm = new DyestuffChemicalUsageReceiptViewModel {
                Id = 1
            };
            DyestuffChemicalUsageReceiptModel model = mapper.Map <DyestuffChemicalUsageReceiptModel>(vm);

            Assert.Equal(vm.Id, model.Id);
        }
        public void CoverageVM()
        {
            var dbContext       = DbContext(GetCurrentMethod());
            var serviceProvider = GetServiceProviderMock(dbContext).Object;

            DyestuffChemicalUsageReceiptFacade facade = new DyestuffChemicalUsageReceiptFacade(serviceProvider, dbContext);

            var data = new DyestuffChemicalUsageReceiptViewModel()
            {
                UsageReceiptItems = new List <DyestuffChemicalUsageReceiptItemViewModel>()
                {
                    new DyestuffChemicalUsageReceiptItemViewModel()
                    {
                        UsageReceiptDetails = new List <DyestuffChemicalUsageReceiptItemDetailViewModel>()
                        {
                            new DyestuffChemicalUsageReceiptItemDetailViewModel()
                        }
                    }
                }
            };

            foreach (var item in data.UsageReceiptItems)
            {
                Assert.Null(item.ReceiptDate);
                Assert.Null(item.Adjs1Date);
                Assert.Null(item.Adjs2Date);
                Assert.Null(item.Adjs3Date);
                Assert.Null(item.Adjs4Date);
                Assert.Null(item.ColorCode);
                foreach (var detail in item.UsageReceiptDetails)
                {
                    Assert.Null(detail.Name);
                    Assert.Equal(0, detail.Index);
                    Assert.Equal(0, detail.ReceiptQuantity);
                    Assert.Equal(0, detail.Adjs1Quantity);
                    Assert.Equal(0, detail.Adjs2Quantity);
                    Assert.Equal(0, detail.Adjs3Quantity);
                    Assert.Equal(0, detail.Adjs4Quantity);
                }
            }
        }
        public void ValidateVM()
        {
            var dbContext       = DbContext(GetCurrentMethod());
            var serviceProvider = GetServiceProviderMock(dbContext).Object;

            var data = new DyestuffChemicalUsageReceiptViewModel()
            {
                RepeatedProductionOrderNo = "no",
                UsageReceiptItems         = new List <DyestuffChemicalUsageReceiptItemViewModel>()
                {
                    new DyestuffChemicalUsageReceiptItemViewModel()
                    {
                        ColorCode           = "code",
                        ReceiptDate         = DateTimeOffset.UtcNow,
                        Adjs1Date           = DateTimeOffset.UtcNow,
                        Adjs2Date           = DateTimeOffset.UtcNow,
                        Adjs3Date           = DateTimeOffset.UtcNow,
                        Adjs4Date           = DateTimeOffset.UtcNow,
                        UsageReceiptDetails = new List <DyestuffChemicalUsageReceiptItemDetailViewModel>()
                        {
                            new DyestuffChemicalUsageReceiptItemDetailViewModel()
                            {
                                Index           = 1,
                                Name            = "name",
                                Adjs1Quantity   = 1,
                                Adjs2Quantity   = 1,
                                Adjs3Quantity   = 1,
                                Adjs4Quantity   = 1,
                                ReceiptQuantity = 1,
                            }
                        }
                    }
                }
            };


            DyestuffChemicalUsageReceiptFacade facade = new DyestuffChemicalUsageReceiptFacade(serviceProvider, dbContext);

            System.ComponentModel.DataAnnotations.ValidationContext validationContext = new System.ComponentModel.DataAnnotations.ValidationContext(data, serviceProvider, null);
            var response = data.Validate(validationContext);

            Assert.NotEmpty(response);
            Assert.True(0 < response.Count());

            data.Date = default(DateTimeOffset);
            response  = data.Validate(validationContext);

            Assert.NotEmpty(response);
            Assert.True(0 < response.Count());

            data.Date            = DateTimeOffset.UtcNow;
            data.ProductionOrder = null;

            response = data.Validate(validationContext);

            Assert.NotEmpty(response);
            Assert.True(0 < response.Count());

            data.ProductionOrder = new Production.Lib.ViewModels.Integration.Sales.FinishingPrinting.ProductionOrderIntegrationViewModel()
            {
                Id = 0
            };

            response = data.Validate(validationContext);

            Assert.NotEmpty(response);

            data.ProductionOrder = new Production.Lib.ViewModels.Integration.Sales.FinishingPrinting.ProductionOrderIntegrationViewModel()
            {
                Id = 1
            };

            response = data.Validate(validationContext);

            Assert.NotEmpty(response);
            Assert.True(0 < response.Count());

            data.StrikeOff = new Lib.ViewModels.StrikeOff.StrikeOffViewModel()
            {
                Id = 0
            };
            response = data.Validate(validationContext);

            Assert.NotEmpty(response);
            Assert.True(0 < response.Count());
        }