예제 #1
0
        public void TestImplementingMultipleDropDownForToNotEnumerableProperty()
        {
            var builder = new GenericUserInterfaceModelBuilder <SomeType>(TestsHelper.CreateDefaultBag());

            var ex = Assert.Throws <InvalidOperationException>(() => builder.GetBlockBuilderForCollection(x => x.Prop1));

            Assert.AreEqual(ex.Message, ExceptionTexts.DontUseGetBlockBuilderForCollectionOnCollectionsOfChars);
        }
예제 #2
0
        public void TestClassWithByteArrayProp()
        {
            var result = new GenericUserInterfaceModelBuilder <ClassWithByteProp>(TestsHelper.CreateDefaultBag()).Result;

            var block = result.Interface.Blocks.First();

            Assert.AreEqual(nameof(ClassWithByteProp.Property), block.LabelText);
            Assert.AreEqual(UserInterfaceType.MultipleDropDownList, block.InterfaceType);
            Assert.AreEqual(0, block.DropDownData.SelectList.Count);
        }
예제 #3
0
        public void CollectionOfComplexObjects_ShouldFail()
        {
            var ex = Assert.Throws <InvalidOperationException>(() =>
            {
                new GenericUserInterfaceModelBuilder <SomeType>(TestsHelper.CreateDefaultBag());
            });

            var mes = string.Format(ExceptionTexts.ClassesWithMultiDimensionalArrayPropertiesAreNotSupported, nameof(SomeType.ComplexCollectionType), typeof(int[]).FullName);

            Assert.AreEqual(mes, ex.Message);
        }
예제 #4
0
        public void ToEnumProperty_ShouldThrowException()
        {
            var builder = new GenericUserInterfaceModelBuilder <SomeClass>(TestsHelper.CreateDefaultBag());

            var ex = Assert.Throws <InvalidOperationException>(() => builder.GetBlockBuilder(x => x.EnumProp).SetDropDownList(new List <SelectListItemData <SomeEnumType> >()
            {
                new SelectListItemData <SomeEnumType>
                {
                    Selected = true,
                    Value    = SomeEnumType.Type1,
                }
            }));

            var expectedMessage = string.Format(ExceptionTexts.CantImplementSetDropListNameToEnumPropertyFormat, nameof(SomeClass.EnumProp));

            Assert.AreEqual(expectedMessage, ex.Message);
        }
예제 #5
0
        public void Test()
        {
            var builder = new GenericUserInterfaceModelBuilder <SomeClass>(TestsHelper.CreateDefaultBag());

            var list = new List <SelectListItemData <bool?> >
            {
                new SelectListItemData <bool?>
                {
                    Selected = true,
                    Text     = "Text",
                }
            };

            builder.GetBlockBuilder(x => x.Sex).SetDropDownList(list);

            var lastProp = builder.Result.Interface.Blocks.Last();

            Assert.IsTrue(lastProp.InterfaceType == UserInterfaceType.DropDownList);
            TestsHelper.AssertAreEqualViaJson(GenericUserInterfaceModelBuilderMappings.ToSelectListItems(list), lastProp.DropDownData.SelectList);
        }
예제 #6
0
        public void SetOnEnumerableOfPrimitives_ShouldBeOk()
        {
            var propName     = nameof(SomeType.Prop4);
            var defaultValue = "";

            var interfaceModel = new GenericUserInterfaceModelBuilder <SomeType>(TestsHelper.CreateDefaultBag())
                                 .GetBlockBuilderForCollection(x => x.Prop4)
                                 .SetMultipleDropDownList(new List <SelectListItemData <string> >
            {
                new SelectListItemData <string>
                {
                    Selected = true,
                    Text     = "SomeText",
                    Value    = defaultValue
                }
            }).Result;

            var block = interfaceModel.Interface.Blocks.First(x => x.PropertyName == propName);

            Assert.AreEqual(UserInterfaceType.MultipleDropDownList, block.InterfaceType);
            Assert.AreEqual(1, block.DropDownData.SelectList.Count);
        }
예제 #7
0
        public void TestClassOnComplexArrayProp()
        {
            var result = new GenericUserInterfaceModelBuilder <ClassWithComplexArrayProp>(TestsHelper.CreateDefaultBag()).Result;

            Assert.AreEqual(1, result.Interface.Blocks.Count);

            var block = result.Interface.Blocks.First();

            Assert.AreEqual(nameof(ClassWithComplexArrayProp.Property), block.PropertyName);
            Assert.AreEqual(UserInterfaceType.GenericInterfaceForArray, block.InterfaceType);

            var innerInterface = block.InnerGenericInterface;

            Assert.AreEqual(nameof(ClassWithComplexArrayProp.Property), innerInterface.Prefix);

            Assert.AreEqual(2, innerInterface.Blocks.Count);

            var firstBlock = innerInterface.Blocks.First();

            Assert.AreEqual(nameof(SomeComplexType.Name), firstBlock.PropertyName);

            var lastBlock = innerInterface.Blocks.Last();

            Assert.AreEqual(nameof(SomeComplexType.Description), lastBlock.PropertyName);
        }