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)); }