BetterCms.Test.Module.Root.ServiceTests.DefaultOptionServiceTests.Should_Return_MergedOptionsAndValues_ForEdit_Successfully C# (CSharp) Метод

Should_Return_MergedOptionsAndValues_ForEdit_Successfully() приватный Метод

private Should_Return_MergedOptionsAndValues_ForEdit_Successfully ( ) : void
Результат void
        public void Should_Return_MergedOptionsAndValues_ForEdit_Successfully()
        {
            var option1 = TestDataProvider.CreateNewLayoutOption();
            var option2 = TestDataProvider.CreateNewLayoutOption();
            var option3 = TestDataProvider.CreateNewLayoutOption();
            var option4 = TestDataProvider.CreateNewLayoutOption();
            var option5 = TestDataProvider.CreateNewLayoutOption();

            var optionValue1 = TestDataProvider.CreateNewPageOption();
            var optionValue2 = TestDataProvider.CreateNewPageOption();
            var optionValue3 = TestDataProvider.CreateNewPageOption();
            var optionValue4 = TestDataProvider.CreateNewPageOption();
            var optionValue5 = TestDataProvider.CreateNewPageOption();

            optionValue1.Key = option1.Key;
            optionValue2.Key = option2.Key;
            option1.Type = option2.Type = option3.Type = option4.Type = option5.Type = OptionType.Text;
            optionValue1.Type = optionValue2.Type = optionValue3.Type = optionValue4.Type = optionValue5.Type = OptionType.Text;

            option3.DefaultValue = null;
            optionValue4.Value = null;

            var service = CreateOptionService();
            var optionValues = new List<IOptionValueEntity> { optionValue1, optionValue2, optionValue3, optionValue4, optionValue5 };
            var options = new List<IOptionEntity> { option1, option2, option3, option4, option5 };

            var result = service.GetMergedOptionValuesForEdit(options, optionValues);
            Assert.NotNull(result);
            Assert.AreEqual(result.Count, 8);
            // 3 of 5 values has no equivalent option, so they can be edited
            Assert.AreEqual(result.Count(o => o.CanEditOption), 3);
            // 4 of 5 options has default values
            Assert.AreEqual(result.Count(o => o.OptionDefaultValue == null), 4);
            // 4 of 5 option values has default values
            Assert.AreEqual(result.Count(o => o.OptionValue == o.OptionDefaultValue), 4);
            // 1 option and option value are equal
            Assert.AreEqual(result.Count(o => o.OptionKey == option1.Key 
                && o.OptionDefaultValue == option1.DefaultValue
                && o.OptionValue == optionValue1.Value), 1);
            // 2 option and option value are equal
            Assert.AreEqual(result.Count(o => o.OptionKey == option2.Key 
                && o.OptionDefaultValue == option2.DefaultValue
                && o.OptionValue == optionValue2.Value), 1);
        }