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

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

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

            var data = new StrikeOffViewModel()
            {
                Remark = "test",
                Cloth  = "tes"
            };
            StrikeOffFacade facade = new StrikeOffFacade(serviceProvider, dbContext);

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

            Assert.NotEmpty(response);

            var model = await DataUtil(facade, dbContext).GetTestData();

            data.Code = model.Code;
            response  = data.Validate(validationContext);

            Assert.NotEmpty(response);

            data.Code = "testCodeNew" + Guid.NewGuid().ToString();
            response  = data.Validate(validationContext);

            Assert.NotEmpty(response);

            data.Type = "type";
            response  = data.Validate(validationContext);

            Assert.NotEmpty(response);

            data.StrikeOffItems = new List <StrikeOffItemViewModel>()
            {
            };
            response = data.Validate(validationContext);

            Assert.NotEmpty(response);


            data.StrikeOffItems = new List <StrikeOffItemViewModel>()
            {
                new StrikeOffItemViewModel()
            };
            response = data.Validate(validationContext);

            Assert.NotEmpty(response);

            data.StrikeOffItems = new List <StrikeOffItemViewModel>()
            {
                new StrikeOffItemViewModel()
                {
                    ColorCode     = "code",
                    DyeStuffItems = new List <DyeStuffItemViewModel>()
                    {
                        new DyeStuffItemViewModel()
                        {
                            Quantity = 500
                        }
                    },
                    ChemicalItems = new List <ChemicalItemViewModel>()
                    {
                        new ChemicalItemViewModel()
                        {
                            Name     = "air",
                            Quantity = 100
                        }
                    }
                }
            };
            response = data.Validate(validationContext);

            Assert.NotEmpty(response);

            data.StrikeOffItems = new List <StrikeOffItemViewModel>()
            {
                new StrikeOffItemViewModel()
                {
                    ColorCode     = "code",
                    DyeStuffItems = new List <DyeStuffItemViewModel>()
                    {
                        new DyeStuffItemViewModel()
                        {
                            Quantity = 500
                        }
                    },
                    ChemicalItems = new List <ChemicalItemViewModel>()
                    {
                        new ChemicalItemViewModel()
                        {
                            Name     = "air",
                            Quantity = -100,
                            Index    = 0
                        }
                    }
                }
            };
            response = data.Validate(validationContext);

            Assert.NotEmpty(response);
            Assert.Equal(0, data.StrikeOffItems.FirstOrDefault().ChemicalItems.FirstOrDefault().Index);

            data.StrikeOffItems = new List <StrikeOffItemViewModel>()
            {
                new StrikeOffItemViewModel()
                {
                    ColorCode     = "code",
                    DyeStuffItems = new List <DyeStuffItemViewModel>()
                    {
                        new DyeStuffItemViewModel()
                        {
                            Quantity = 500
                        }
                    },
                    ChemicalItems = new List <ChemicalItemViewModel>()
                    {
                        new ChemicalItemViewModel()
                        {
                        }
                    }
                }
            };
            response = data.Validate(validationContext);

            Assert.NotEmpty(response);

            data.StrikeOffItems = new List <StrikeOffItemViewModel>()
            {
                new StrikeOffItemViewModel()
                {
                    ColorCode     = "code",
                    DyeStuffItems = new List <DyeStuffItemViewModel>()
                    {
                        new DyeStuffItemViewModel()
                        {
                            Product  = new Lib.ViewModels.Integration.Master.ProductIntegrationViewModel(),
                            Quantity = 1001
                        }
                    },
                    ChemicalItems = new List <ChemicalItemViewModel>()
                    {
                        new ChemicalItemViewModel()
                        {
                        }
                    }
                }
            };
            response = data.Validate(validationContext);

            Assert.NotEmpty(response);
        }