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); }
public void Order_is_null_by_default() { var configurator = (IModelMetadataItemConfigurator)builder; var item = new ModelMetadataItem(); configurator.Configure(item); Assert.Null(item.Order); }
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()); }
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); }
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); }
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); }
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); }
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); }
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); }
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"); } } }
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()); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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()); }
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()); }
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); }
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); }
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); }
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()); }
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); }
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); }
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); }
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); }
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); }
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}"); }
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); }
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); }
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); }
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}"); }
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()); }
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); }
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; }); }
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}"); }
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); }
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); }
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); }
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}"); }
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); }
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); }
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); }
public ObjectMetadataItemBuilderTests() { item = new ModelMetadataItem(); builder = new ModelMetadataItemBuilder<object>(item); }
public ValueTypeItemBuilderTests() { item = new ModelMetadataItem(); builder = new ModelMetadataItemBuilder<int>(item); }
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); }