public void AddSkillCategory_Post_Test()
        {
            // Act
            var uow       = new UnitOfWorkFakeFactory().Uow.Object;
            var paramUser = new AddSkillCategoryModel()
            {
                Texts = new List <TextModel>()
                {
                    new TextModel()
                    {
                        Language = uow.LanguagesRepository.Get().ToList()[0], Value = "NewSkillCat.fr"
                    },
                    new TextModel()
                    {
                        Language = uow.LanguagesRepository.Get().ToList()[1], Value = "NewSkillCat.en"
                    }
                }
            };
            var expected = paramUser.ToDto(uow.LanguagesRepository.Get().ToList());

            expected.Id = uow.SkillCategoriesRepository.Get().Count() + 1;

            var nbGrades = uow.SkillCategoriesRepository.Get().ToList().Count;
            var result   = new IntroductionController(uow).AddSkillCategory(paramUser) as RedirectToRouteResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(result.RouteValues["Action"], nameof(IntroductionController.ShowSkills));
            Assert.AreEqual(nbGrades + 1, uow.SkillCategoriesRepository.Get().Count());
            AssertExtension.PropertyValuesAreEquals(expected, uow.SkillCategoriesRepository.Get().Last());
        }
Пример #2
0
 public ActionResult AddSkillCategory(AddSkillCategoryModel model)
 {
     if (ModelState.IsValid)
     {
         _uow.SkillCategoriesRepository.Insert(model.ToDto(_uow.LanguagesRepository.Get().ToList()));
         _uow.Save();
         return(RedirectToAction(nameof(ShowSkills)));
     }
     return(RedirectToAction(nameof(AddSkillCategory)));
 }
        public static SkillCategory ToDto(this AddSkillCategoryModel model, List <Language> languages)
        {
            var newCategory = new SkillCategory
            {
                Texts           = model.Texts.ToDto(languages),
                DisplayPriority = model.DisplayPriority,
            };

            return(newCategory);
        }
        public static AddSkillCategoryModel ToDto(this SkillCategory model)
        {
            var dto = new AddSkillCategoryModel()
            {
                Id = model.Id,
                DisplayPriority = model.DisplayPriority,
                Texts           = model.Texts.ToDto(),
                Skills          = new List <SkillModel>(model.Skills.Select(x => x.ToDto()))
            };

            return(dto);
        }
        public void AddSkillCategory_Get_Test()
        {
            // Act
            var uow        = new UnitOfWorkFakeFactory().Uow.Object;
            var controller = new IntroductionController(uow);

            var result = controller.AddSkillCategory() as ViewResult;

            var expected = new AddSkillCategoryModel
            {
                Texts = uow.LanguagesRepository.Get()
                        .Select(language => new TextModel()
                {
                    Language = language
                })
                        .ToList()
            };

            // Assert
            Assert.IsNotNull(result);
            AssertExtension.PropertyValuesAreEquals(expected, result.Model);
        }
        public void Should_Transform_SkillCategory_To_AddSkillCategoryModel()
        {
            var expected = new AddSkillCategoryModel()
            {
                Id = 1,
                DisplayPriority = 1,
                Texts           = new List <TextModel>()
                {
                    new TextModel()
                    {
                        Language = _languages[0], Value = "skc1.fr"
                    },
                    new TextModel()
                    {
                        Language = _languages[1], Value = "skc1.en"
                    }
                },
                Skills = new List <SkillModel>()
                {
                    new SkillModel()
                    {
                        KnowledgePercent = 50,
                        Texts            = new List <TextModel>()
                        {
                            new TextModel()
                            {
                                Language = _languages[0], Value = "sk1"
                            },
                            new TextModel()
                            {
                                Language = _languages[1], Value = "sk2"
                            }
                        }
                    },
                    new SkillModel()
                    {
                        KnowledgePercent = 60,
                        Texts            = new List <TextModel>()
                        {
                            new TextModel()
                            {
                                Language = _languages[0], Value = "sk3"
                            },
                            new TextModel()
                            {
                                Language = _languages[1], Value = "sk4"
                            }
                        }
                    }
                }
            };

            var act = new SkillCategory()
            {
                Id = 1,
                DisplayPriority = 1,
                Texts           = new List <Text>()
                {
                    new Text()
                    {
                        Language = _languages[0], Value = "skc1.fr"
                    },
                    new Text()
                    {
                        Language = _languages[1], Value = "skc1.en"
                    }
                },
                Skills = new List <Skill>()
                {
                    new Skill()
                    {
                        Id = 1,
                        KnowledgePercent = 50,
                        Texts            = new List <Text>()
                        {
                            new Text()
                            {
                                Language = _languages[0], Value = "sk1"
                            },
                            new Text()
                            {
                                Language = _languages[1], Value = "sk2"
                            }
                        }
                    },
                    new Skill()
                    {
                        Id = 2,
                        KnowledgePercent = 60,
                        Texts            = new List <Text>()
                        {
                            new Text()
                            {
                                Language = _languages[0], Value = "sk3"
                            },
                            new Text()
                            {
                                Language = _languages[1], Value = "sk4"
                            }
                        }
                    }
                }
            };

            var result = act.ToDto();

            Assert.AreEqual(expected.Id, result.Id);
            Assert.AreEqual(expected.DisplayPriority, result.DisplayPriority);

            AssertExtension.CompareIEnumerable(expected.Texts, result.Texts,
                                               (x, y) => x.Language == y.Language && x.Value == y.Value);

            AssertExtension.CompareIEnumerable(expected.Skills, result.Skills,
                                               (x, y) => x.KnowledgePercent == y.KnowledgePercent &&
                                               AssertExtension.CompareIEnumerable(x.Texts, y.Texts,
                                                                                  (a, b) => a.Language == b.Language && a.Value == b.Value));
        }
        public void Should_Transform_AddSkillCategoryModel_To_SkillCategory()
        {
            var expected = new SkillCategory()
            {
                Id = 1,
                DisplayPriority = 1,
                Texts           = new List <Text>()
                {
                    new Text()
                    {
                        Language = _languages[0], Value = "skc1"
                    },
                    new Text()
                    {
                        Language = _languages[1], Value = "skc2"
                    }
                },
                Skills = new List <Skill>()
                {
                    new Skill()
                    {
                        Id = 1, KnowledgePercent = 50, Texts = new List <Text>()
                        {
                            new Text()
                            {
                                Language = _languages[0], Value = "sk1"
                            },
                            new Text()
                            {
                                Language = _languages[1], Value = "sk2"
                            }
                        }
                    },
                    new Skill()
                    {
                        Id = 2, KnowledgePercent = 50, Texts = new List <Text>()
                        {
                            new Text()
                            {
                                Language = _languages[0], Value = "sk3"
                            },
                            new Text()
                            {
                                Language = _languages[1], Value = "sk4"
                            }
                        }
                    }
                }
            };

            var act = new AddSkillCategoryModel()
            {
                DisplayPriority = 1,
                Texts           = new List <TextModel>()
                {
                    new TextModel()
                    {
                        Language = _languages[0], Value = "skc1"
                    },
                    new TextModel()
                    {
                        Language = _languages[1], Value = "skc2"
                    }
                }
            };

            Assert.AreEqual(expected.DisplayPriority, act.ToDto(_languages).DisplayPriority);
            AssertExtension.CompareIEnumerable(expected.Texts, act.ToDto(_languages).Texts,
                                               (x, y) => x.Language == y.Language && x.Value == y.Value);
        }