Ejemplo n.º 1
0
        public void MinimumValueShouldBeSetToDoubleMinimumWhenNumericFieldIsNotUsedAsNumberOfSamples() {
            var vm = new NumericFieldViewModel();
            var editableRoot = new NumericFieldTestStub {Sample_f_SampleSettings = @"<SampleSettings SampleSizeFieldName=""NumberOfSamples_f"" />"};
            var detailsModelMock = Mock.Create<IDetailsViewModel>();
            vm.Property = typeof(NumericFieldTestStub).GetPropertyByName("JustANumber_f");
            vm.Init(editableRoot, null, detailsModelMock);

            Assert.AreEqual(double.MinValue, vm.MinimumValue);
        }
Ejemplo n.º 2
0
        public void MinimumValueShouldBeSetToMinimumValueWhenNumericFieldIsUsedAsNumberOfSamplesButSampleSettingsAreEmpty() {
            var vm = new NumericFieldViewModel();
            var editableRoot = new NumericFieldTestStub();
            var detailsModelMock = Mock.Create<IDetailsViewModel>();
            vm.Property = typeof(NumericFieldTestStub).GetPropertyByName("NumberOfSamples_f");
            vm.Init(editableRoot, null, detailsModelMock);

            Assert.AreEqual(double.MinValue, vm.MinimumValue);
        }
Ejemplo n.º 3
0
        protected override DriverResult Editor(ContentPart part, NumericField field, IUpdateModel updater, dynamic shapeHelper)
        {
            var viewModel = new NumericFieldViewModel();

            if (updater.TryUpdateModel(viewModel, GetPrefix(field, part), null, null))
            {
                Decimal value;

                var settings = field.PartFieldDefinition.Settings.GetModel <NumericFieldSettings>();

                if (settings.Required && String.IsNullOrWhiteSpace(viewModel.Value))
                {
                    updater.AddModelError(GetPrefix(field, part), T("The field {0} is mandatory.", T(field.DisplayName)));
                }

                if (!settings.Required && String.IsNullOrWhiteSpace(viewModel.Value))
                {
                    field.Value = null;
                }
                else if (Decimal.TryParse(viewModel.Value, NumberStyles.Any, _cultureInfo.Value, out value))
                {
                    field.Value = value;
                }
                else
                {
                    updater.AddModelError(GetPrefix(field, part), T("{0} is an invalid number", field.DisplayName));
                    field.Value = null;
                }

                if (settings.Minimum.HasValue && field.Value.HasValue && field.Value.Value < settings.Minimum.Value)
                {
                    updater.AddModelError(GetPrefix(field, part), T("The value must be greater than {0}", settings.Minimum.Value));
                }

                if (settings.Maximum.HasValue && field.Value.HasValue && field.Value.Value > settings.Maximum.Value)
                {
                    updater.AddModelError(GetPrefix(field, part), T("The value must be less than {0}", settings.Maximum.Value));
                }

                // checking the number of decimals
                if (field.Value.HasValue && Math.Round(field.Value.Value, settings.Scale) != field.Value.Value)
                {
                    if (settings.Scale == 0)
                    {
                        updater.AddModelError(GetPrefix(field, part), T("The field {0} must be an integer", field.DisplayName));
                    }
                    else
                    {
                        updater.AddModelError(GetPrefix(field, part), T("Invalid number of digits for {0}, max allowed: {1}", field.DisplayName, settings.Scale));
                    }
                }
            }

            return(Editor(part, field, shapeHelper));
        }
Ejemplo n.º 4
0
        protected override DriverResult Editor(ContentPart part, NumericField field, dynamic shapeHelper)
        {
            return(ContentShape("Fields_Numeric_Edit", GetDifferentiator(field, part),
                                () => {
                var model = new NumericFieldViewModel {
                    Field = field,
                    Settings = field.PartFieldDefinition.Settings.GetModel <NumericFieldSettings>(),
                    Value = Convert.ToString(field.Value, _cultureInfo.Value)
                };

                return shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: model, Prefix: GetPrefix(field, part));
            }));
        }
Ejemplo n.º 5
0
        public void FontStylePropertyTest()
        {
            // arrange
            var vm = new NumericFieldViewModel();
            vm.Value = 5;

            // act
            var result = vm.FontStyle;

            // assert
            Assert.AreEqual(FontStyles.Normal, result);

            // arrange
            vm.Value = null;

            // act
            result = vm.FontStyle;

            // assert
            Assert.AreEqual(FontStyles.Italic, result);
        }
Ejemplo n.º 6
0
 public void PropertiesTests()
 {
     var vm = new NumericFieldViewModel();
     TestsHelper.TestPublicPropertiesGetSet(vm, x=>vm.MinimumValue, x=>vm.VisibilityRules);
 }
Ejemplo n.º 7
0
        public void DocumentationWithNumericField()
        {
            // arrange
            var isFontStyleWasRaises = false;
            var isForegroundWasRaises = false;
            var vm = new NumericFieldViewModel();
            
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", ArgExpr.IsAny<Expression<Func<FontStyle>>>()).DoInstead(() => isFontStyleWasRaises = true);
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", ArgExpr.IsAny<Expression<Func<Brush>>>()).DoInstead(() => isForegroundWasRaises = true);

            // act
            vm.Value = 5;

            // assert
            Assert.IsTrue(isFontStyleWasRaises);
            Assert.IsTrue(isForegroundWasRaises);
        }
Ejemplo n.º 8
0
        public void ForegroundPropertyTest()
        {
            // arrange
            var vm = new NumericFieldViewModel();
            vm.Value = 5;

            // act
            var result = vm.Foreground;

            // assert
            Assert.AreEqual(new SolidColorBrush(Colors.Black).Color, ((SolidColorBrush)result).Color);

            // arrange
            vm.Value = null;

            // act
            result = vm.Foreground;

            // assert
            Assert.AreEqual(new SolidColorBrush(Colors.LightGray).Color, ((SolidColorBrush)result).Color);
        }