コード例 #1
0
        public void AdditinalSettings_should_be_overwritten()
        {
            // arrange
            var to       = new ModelMetadataItem();
            var settings = new DummyAdditinalSettings {
                Name = "val"
            };

            to.AdditionalSettings.Add(settings);

            var from      = new ModelMetadataItem();
            var settings2 = new DummyAdditinalSettings {
                Name = "val2"
            };

            from.AdditionalSettings.Add(settings2);

            // act
            from.MergeTo(to);

            // assert
            var item = to.GetAdditionalSetting <DummyAdditinalSettings>();

            Assert.NotNull(item);
            Assert.Equal("val", item.Name);
        }
コード例 #2
0
 public void Order_is_null_by_default()
 {
     var configurator = (IModelMetadataItemConfigurator)builder;
     var item = new ModelMetadataItem();
     configurator.Configure(item);
     Assert.Null(item.Order);
 }
コード例 #3
0
 public void Order_is_null_by_default()
 {
     var configurator = (IModelMetadataItemConfigurator)builder;
     var item = new ModelMetadataItem();
     configurator.Configure(item);
     Assert.Null(item.Order);
 }
コード例 #4
0
 public void Should_be_able_to_set_watermark()
 {
     builder.Watermark("enter your value...");
     var configurator = (IModelMetadataItemConfigurator)builder;
     var item = new ModelMetadataItem();
     configurator.Configure(item);
     Assert.Equal("enter your value...", item.Watermark());
 }
コード例 #5
0
        public void RequiredValidation_should_use_specified_resourcename_and_resourcetype_should_be_set_from_global_resource()
        {
            const string      PropertyName = "PropertyToTestResNamePartialMetadata";
            ModelMetadataItem item         = metadataConfiguration.Configurations[PropertyName];

            var errorMessage = GetErrorMessageForFluentlyConfigiguredItem(model, PropertyName, () => item, item.GetValidation <RequiredValidationMetadata>());

            Assert.Equal(TestResource.PropertyToTestResNamePartialMetadata, errorMessage);
        }
コード例 #6
0
        public void RequiredValidation_should_use_specified_resource_and_resourcename_should_be_set_by_convensions()
        {
            const string      PropertyName = "PropertyToTestResTypePartialMetadata";
            ModelMetadataItem item         = metadataConfiguration.Configurations[PropertyName];

            var errorMessage = GetErrorMessageForFluentlyConfigiguredItem(model, PropertyName, () => item, item.GetValidation <RequiredValidationMetadata>());

            Assert.Equal(TestResource2.AttrLocalizationModel_PropertyToTestResTypePartialMetadata_Required, errorMessage);
        }
コード例 #7
0
        public void RequiredValidation_should_always_use_user_defined_message_from_resource()
        {
            const string      PropertyName = "LocalizedByKeyWithCustomMessageForPropertyFromRes";
            ModelMetadataItem item         = metadataConfiguration.Configurations[PropertyName];

            var errorMessage = GetErrorMessageForFluentlyConfigiguredItem(model, PropertyName, () => item, item.GetValidation <RequiredValidationMetadata>());

            Assert.Equal(TestResource.CustomMessageForProperty, errorMessage);
        }
コード例 #8
0
        public void RequiredValidation_should_use_modeltype_propertyname_attributename_convention_if_it_exists()
        {
            const string      PropertyName = "LocalizedByKey";
            ModelMetadataItem item         = metadataConfiguration.Configurations[PropertyName];

            var errorMessage = GetErrorMessageForFluentlyConfigiguredItem(model, PropertyName, () => item, item.GetValidation <ModelValidationMetadata>());

            Assert.Equal(TestResource.LocalizationModel_LocalizedByKey_Required, errorMessage);
        }
コード例 #9
0
        public void RequiredValidation_should_use_common_convention_if_it_is_found_but_convension_for_type_does_not_exist()
        {
            const string      PropertyName = "LocalizedByCommonPattern";
            ModelMetadataItem item         = metadataConfiguration.Configurations[PropertyName];

            var errorMessage = GetErrorMessageForFluentlyConfigiguredItem(model, PropertyName, () => item, item.GetValidation <ModelValidationMetadata>());

            Assert.Equal(TestResource.Validation_Required, errorMessage);
        }
コード例 #10
0
        public void Should_be_able_to_set_expression_with_type_and_resource_name()
        {
            builder.Range(1, 100, typeof(object), "foo");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #11
0
        public void Should_overwrite_values_that_were_not_set()
        {
            // assert
            var properties = GetMetadataProperties();

            var to   = new ModelMetadataItem();
            var from = new ModelMetadataItem();

            Func <string> funcFrom = () => "valueFrom";

            foreach (var propertyInfo in properties)
            {
                if (propertyInfo.PropertyType == typeof(bool) || propertyInfo.PropertyType == typeof(bool?))
                {
                    propertyInfo.SetValue(from, true, null);
                }
                else if (propertyInfo.PropertyType == typeof(int) || propertyInfo.PropertyType == typeof(int?))
                {
                    propertyInfo.SetValue(from, 10, null);
                }
                else if (propertyInfo.PropertyType == typeof(string))
                {
                    propertyInfo.SetValue(from, funcFrom(), null);
                }
                else if (propertyInfo.PropertyType == typeof(Func <string>))
                {
                    propertyInfo.SetValue(from, funcFrom, null);
                }
            }

            // act
            from.MergeTo(to);

            // assert
            foreach (var propertyInfo in properties)
            {
                Console.WriteLine(propertyInfo.Name);
                if (propertyInfo.PropertyType == typeof(bool) || propertyInfo.PropertyType == typeof(bool?))
                {
                    Assert.True((bool)propertyInfo.GetValue(to, null));
                }
                else if (propertyInfo.PropertyType == typeof(int) || propertyInfo.PropertyType == typeof(int?))
                {
                    Assert.Equal(10, (int)propertyInfo.GetValue(to, null));
                }
                else if (propertyInfo.PropertyType == typeof(string))
                {
                    var value = (string)propertyInfo.GetValue(to, null);
                    Assert.True(value == "valueFrom");
                }
                else if (propertyInfo.PropertyType == typeof(Func <string>))
                {
                    var value = (Func <string>)propertyInfo.GetValue(to, null);
                    Assert.True(value() == "valueFrom");
                }
            }
        }
コード例 #12
0
        public void Should_be_able_to_set_edit_format()
        {
            builder.EditFormat("{0:d}");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.Equal("{0:d}", item.EditFormat());
        }
コード例 #13
0
        public void Should_be_able_to_set_hide_for_edit()
        {
            builder.HideForEdit();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.False(item.ShowForEdit.Value);
        }
コード例 #14
0
        public void Should_be_able_to_set_order()
        {
            builder.Order(123);

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.Equal(123, item.Order);
        }
コード例 #15
0
        public void Should_be_able_to_disallow_html()
        {
            builder.DisallowHtml();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.True(item.RequestValidationEnabled.Value);
        }
コード例 #16
0
        public void Should_be_able_to_set_show_for_display()
        {
            builder.ShowForDisplay();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.True(item.ShowForDisplay);
        }
コード例 #17
0
        public void Should_be_able_to_set_as_hidden()
        {
            builder.AsHidden();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.Equal("HiddenInput", item.TemplateName);
        }
コード例 #18
0
        public void Should_be_able_to_show_surrounding_html()
        {
            builder.ShowSurroundingHtml();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.False(item.HideSurroundingHtml.Value);
        }
コード例 #19
0
        public void Should_be_able_to_set_other_property_to_compare_with_type_and_resource_name()
        {
            builder.Compare("SomeProperty", typeof(object), "foo");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #20
0
        public void Should_be_able_to_set_other_property_to_compare_with_text_error_message()
        {
            builder.Compare("SomeProperty", "Properties must be equal");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #21
0
        public void Should_be_able_to_set_other_property_to_compare()
        {
            builder.Compare("SomeProperty");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #22
0
        public void Should_be_able_to_set_null_display_text()
        {
            builder.NullDisplayText("n/a");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.Equal("n/a", item.NullDisplayText());
        }
コード例 #23
0
        public void Should_be_able_to_set_as_hidden()
        {
            builder.AsHidden();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.Equal("HiddenInput", item.TemplateName);
        }
コード例 #24
0
        public void Should_be_able_to_set_short_display_name()
        {
            builder.ShortDisplayName("foo");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.Equal("foo", item.ShortDisplayName());
        }
コード例 #25
0
        public void Should_be_able_to_disallow_html()
        {
            builder.DisallowHtml();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.True(item.RequestValidationEnabled.Value);
        }
コード例 #26
0
        public void Should_be_able_to_hide_surrounding_html()
        {
            builder.HideSurroundingHtml();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.True(item.HideSurroundingHtml.Value);
        }
コード例 #27
0
        public void Should_be_able_to_set_writable()
        {
            builder.Writable();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.False(item.IsReadOnly.Value);
        }
コード例 #28
0
        public void Should_be_able_to_set_expression_with_text_message()
        {
            builder.Range(1, 100, "Value must be between 1 -100");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #29
0
        public void Should_be_able_to_set_description()
        {
            builder.Description("foo");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.Equal("foo", item.Description());
        }
コード例 #30
0
        public void Should_be_able_to_set_template()
        {
            builder.Template("foo");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.Equal("foo", item.TemplateName);
        }
コード例 #31
0
        public void Should_be_able_to_set_apply_format_in_editmode()
        {
            builder.ApplyFormatInEditMode();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.True(item.ApplyFormatInEditMode);
        }
コード例 #32
0
        public void Should_be_able_to_set_edit_format()
        {
            builder.EditFormat("{0:d}");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item         = new ModelMetadataItem();

            configurator.Configure(item);
            Assert.Equal("{0:d}", item.EditFormat());
        }
コード例 #33
0
        public void Should_be_able_to_set_minimum_length()
        {
            builder.MinimumLength(24);

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item         = new ModelMetadataItem();

            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #34
0
        public void Should_be_able_to_set_minimum_length_with_text_message()
        {
            builder.MinimumLength(24, "Value must be grater than or equal to 24 characters.");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item         = new ModelMetadataItem();

            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #35
0
        public void Should_be_able_to_set_expression()
        {
            builder.Expression("foo");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item         = new ModelMetadataItem();

            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #36
0
        public void Should_be_able_to_format_as_time_with_nullable_date_time()
        {
            var item = new ModelMetadataItem();
            var builder = new ModelMetadataItemBuilder<DateTime?>(item);

            builder.FormatAsTimeOnly();

            Assert.Equal(item.DisplayFormat(), "{0:t}");
            Assert.Equal(item.EditFormat(), "{0:t}");
        }
コード例 #37
0
        public void Should_be_able_to_set_expression_with_text_message()
        {
            builder.Expression("foo", "Value must match the pattern");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item         = new ModelMetadataItem();

            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #38
0
        public void Should_be_able_to_set_minimum_length_with_type_and_resource_name()
        {
            builder.MinimumLength(24, typeof(object), "foo");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item         = new ModelMetadataItem();

            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #39
0
        public void Should_be_able_to_set_as_password()
        {
            builder.AsPassword();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item         = new ModelMetadataItem();

            configurator.Configure(item);
            Assert.Equal("Password", item.TemplateName);
        }
コード例 #40
0
        public void Should_be_able_to_format_as_currency_with_nullable_decimal()
        {
            var item = new ModelMetadataItem();
            var builder = new ModelMetadataItemBuilder<decimal?>(item);

            builder.FormatAsCurrency();

            Assert.Equal(item.DisplayFormat(), "{0:c}");
            Assert.Equal(item.EditFormat(), "{0:c}");
        }
コード例 #41
0
        public void Should_be_able_to_set_remote()
        {
            builder.Remote(c => c.For<DummyController>(x => x.CheckUsername1));

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item1 = new ModelMetadataItem();
            configurator.Configure(item1);
            var item = item1;
            Assert.NotEmpty(item.Validations);
            Assert.IsType<RemoteValidationMetadata>(item.Validations.First());
        }
コード例 #42
0
        public void Should_be_able_to_set_as_email()
        {
            builder.AsEmail();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item1 = new ModelMetadataItem();
            configurator.Configure(item1);
            var item = item1;
            Assert.Equal("EmailAddress", item.TemplateName);
            Assert.NotEmpty(item.Validations);
        }
コード例 #43
0
        public void Setting_as_url_should_throw_exception_when_there_is_an_active_expression_validation()
        {
            builder.AsEmail();
            builder.AsUrl();

            Assert.Throws<InvalidOperationException>(() => {
                                                               var configurator = (IModelMetadataItemConfigurator)builder;
                                                               var item = new ModelMetadataItem();
                                                               configurator.Configure(item);
                                                               return item; });
        }
コード例 #44
0
        public void Should_be_able_to_format_as_currency_with_nullable_decimal()
        {
            var builder = new ModelMetadataItemBuilder<decimal?>(new ModelMetadataItem());

            builder.FormatAsCurrency();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item1 = new ModelMetadataItem();
            configurator.Configure(item1);
            var item = item1;
            Assert.Equal(item.DisplayFormat(), "{0:c}");
            Assert.Equal(item.EditFormat(), "{0:c}");
        }
コード例 #45
0
        public void Should_be_able_to_set_remote_for_action()
        {
            builder.Remote(c => c.For<DummyController>(x => x.CheckUsername1));

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            var metadata = (RemoteValidationMetadata)item.Validations.First();

            Assert.Equal("Dummy", metadata.Controller);
            Assert.Equal("CheckUsername1", metadata.Action);
            Assert.Equal(null, metadata.Area);
        }
コード例 #46
0
        public void Should_be_able_to_set_as_drop_down_list_with_option_label_and_template()
        {
            builder.AsDropDownList("dummyKey", "[Select an option]", "fooTemplate");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.Equal("fooTemplate", item.TemplateName);
            var configurator1 = (IModelMetadataItemConfigurator)builder;
            var item1 = new ModelMetadataItem();
            configurator1.Configure(item1);
            Assert.NotEmpty(item1.AdditionalSettings);
        }
コード例 #47
0
        public void Should_be_able_to_set_as_list_box()
        {
            builder.AsListBox("dummyKey");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.Equal("ListBox", item.TemplateName);
            var configurator1 = (IModelMetadataItemConfigurator)builder;
            var item1 = new ModelMetadataItem();
            configurator1.Configure(item1);
            Assert.NotEmpty(item1.AdditionalSettings);
        }
コード例 #48
0
        public void Should_be_able_to_format_as_date_with_nullable_date_time()
        {
            var builder = new ModelMetadataItemBuilder<DateTime?>(new ModelMetadataItem());

            builder.FormatAsDateOnly();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item1 = new ModelMetadataItem();
            configurator.Configure(item1);
            var item = item1;
            Assert.Equal(item.DisplayFormat(), "{0:d}");
            Assert.Equal(item.EditFormat(), "{0:d}");
        }
コード例 #49
0
        public void GetValidators_should_return_validators_when_metadata_is_extended_metadata()
        {
            var builder = new ModelMetadataItemBuilder<string>(new ModelMetadataItem());

            builder.Required().AsEmail();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            var metadata = new ExtendedModelMetadata(new Mock<ModelMetadataProvider>().Object, GetType(), () => new DummyObject(), typeof(DummyObject), string.Empty, item);

            var validators = provider.GetValidators(metadata, new ControllerContext());

            Assert.NotEmpty(validators);
        }
コード例 #50
0
        public void AdditinalSettings_should_not_removed()
        {
            // arrange
            var to = new ModelMetadataItem();
            var settings = new DummyAdditinalSettings { Name = "val" };
            to.AdditionalSettings.Add(settings);

            var from = new ModelMetadataItem();

            // act
            from.MergeTo(to);

            // assert
            var item = to.GetAdditionalSetting<DummyAdditinalSettings>();
            Assert.NotNull(item);
            Assert.Equal("val", item.Name);
        }
コード例 #51
0
        public void AdditinalSettings_should_set_if_it_was_added_for_from_metadata()
        {
            // arrange
            var to = new ModelMetadataItem();

            var from = new ModelMetadataItem();
            var settings = new DummyAdditinalSettings { Name = "val2" };
            from.AdditionalSettings.Add(settings);

            // act
            from.MergeTo(to);

            // assert
            var item = to.GetAdditionalSetting<DummyAdditinalSettings>();
            Assert.NotNull(item);
            Assert.Equal("val2", item.Name);
        }
コード例 #52
0
        public void Should_be_able_to_set_minimum_length()
        {
            builder.MinimumLength(24);

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #53
0
        public void Should_be_able_to_set_expression_with_text_message()
        {
            builder.Expression("foo", "Value must match the pattern");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #54
0
        public void Should_be_able_to_set_minimum_length_with_text_message()
        {
            builder.MinimumLength(24, "Value must be grater than or equal to 24 characters.");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #55
0
 public ObjectMetadataItemBuilderTests()
 {
     item = new ModelMetadataItem();
     builder = new ModelMetadataItemBuilder<object>(item);
 }
コード例 #56
0
        public void Should_be_able_to_set_minimum_length_with_type_and_resource_name()
        {
            builder.MinimumLength(24, typeof(object), "foo");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #57
0
        public void Should_be_able_to_set_expression()
        {
            builder.Expression("foo");

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.NotEmpty(item.Validations);
        }
コード例 #58
0
 public ValueTypeItemBuilderTests()
 {
     item = new ModelMetadataItem();
     builder = new ModelMetadataItemBuilder<int>(item);
 }
コード例 #59
0
        public void Should_be_able_to_set_as_multiline_text()
        {
            builder.AsMultilineText();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.Equal("MultilineText", item.TemplateName);
        }
コード例 #60
0
        public void Should_be_able_to_set_as_password()
        {
            builder.AsPassword();

            var configurator = (IModelMetadataItemConfigurator)builder;
            var item = new ModelMetadataItem();
            configurator.Configure(item);
            Assert.Equal("Password", item.TemplateName);
        }