public void Handle_Empty_Property_Values(string propertyName) { var fieldDefinition = new FieldDefinition { Key = "test" }; fieldDefinition.Settings.Add(propertyName, ""); var field = new NZazuField_With_Description_As_Content_Property(fieldDefinition, ServiceLocator); Assert.DoesNotThrow(() => field.ApplySettings(fieldDefinition)); }
public void Respect_generic_settings() { var definition = new FieldDefinition { Key = "test" }; definition.Settings.Add("ContentStringFormat", "dddd – d - MMMM"); definition.Settings.Add("FontFamily", "Century Gothic"); definition.Settings.Add("FontWeight", "UltraBold"); definition.Settings.Add("FontSize", "24"); definition.Settings.Add("Foreground", "BlueViolet"); definition.Settings.Add("Margin", "1,2,3,4"); definition.Settings.Add("Name", "myControl"); definition.Settings.Add("Opacity", "0.75"); definition.Settings.Add("Padding", "2.5"); definition.Settings.Add("TabIndex", "42"); definition.Settings.Add("Uid", "myId"); definition.Settings.Add("Visibility", "Collapsed"); definition.Settings.Add("HorizontalAlignment", "Left"); definition.Settings.Add("VerticalAlignment", "Bottom"); var sut = new NZazuField_With_Description_As_Content_Property(definition, ServiceLocator); sut.ApplySettings(definition); var control = (ContentControl)sut.ValueControl; control.FontFamily.ToString().Should().Be("Century Gothic"); control.FontWeight.Should().Be(FontWeights.UltraBold); control.FontSize.Should().Be(24); var brush = (SolidColorBrush)control.Foreground; brush.Color.Should().Be(Colors.BlueViolet); control.Margin.Should().Be(new Thickness(1, 2, 3, 4)); control.Name.Should().Be("myControl"); control.Opacity.Should().Be(0.75); control.Padding.Should().Be(new Thickness(2.5)); control.ContentStringFormat.Should().Be("dddd – d - MMMM"); control.TabIndex.Should().Be(42); control.Uid.Should().Be("myId"); control.Visibility.Should().Be(Visibility.Collapsed); control.HorizontalAlignment.Should().Be(HorizontalAlignment.Left); control.VerticalAlignment.Should().Be(VerticalAlignment.Bottom); }
public void Respect_Width_Setting() { const double expected = 65.5; var definition = new FieldDefinition { Key = "key" }; definition.Settings.Add("Width", expected.ToString(CultureInfo.InvariantCulture)); var field = new NZazuField_With_Description_As_Content_Property(definition, ServiceLocator); field.ApplySettings(definition); var control = (ContentControl)field.ValueControl; control.MinWidth.Should().Be(expected); control.MaxWidth.Should().Be(expected); }
public void Attach_FieldValidationRule_according_to_checks() { // but we need a dummy content enabled field -> no content, no validation var check = Substitute.For <IValueCheck>(); check.Validate(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <CultureInfo>()) .Returns(new ValueCheckResult(false, new Exception("test"))); var sut = new NZazuField_With_Description_As_Content_Property( new FieldDefinition { Key = "test", Description = "description" }, ServiceLocator) { Check = check }; var expectedRule = new CheckValidationRule(check) { // we make sure the validation is executed on init ValidatesOnTargetUpdated = true }; sut.ValueControl.Should().NotBeNull(); var expression = sut.ValueControl.GetBindingExpression(sut.ContentProperty); expression.Should().NotBeNull(); // ReSharper disable once PossibleNullReferenceException var binding = expression.ParentBinding; binding.Should().NotBeNull(); binding.Source.Should().Be(sut, "we need a source for data binding"); binding.Mode.Should().Be(BindingMode.TwoWay, "we update data binding in two directions"); binding.UpdateSourceTrigger .Should().Be(UpdateSourceTrigger.PropertyChanged, "we want validation during edit"); binding.ValidationRules.Single().Should().BeEquivalentTo(expectedRule); }