Пример #1
0
        public void CalculateValidationRulesNotEqualsToTest()
        {
            // Arrange
            var guidOne  = Guid.NewGuid();
            var guidTwo  = Guid.NewGuid();
            var dateTime = DateTime.UtcNow;

            var fieldDefinitionDecimal = ConfigurationHelper.CreateDefinition(FieldType.NumberDecimal, null);

            fieldDefinitionDecimal.Configurations = new List <DynamicFieldConfiguration>
            {
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.NotEqualsTo, ValueString = "DarkwingDuck"
                },
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.NotEqualsTo, ValueString = "LaunchpadMcQuack"
                },
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.NotEqualsDefault, ValueDecimal = 5m
                }
            };

            var fieldDefinitionDateTime = ConfigurationHelper.CreateDefinition(FieldType.DateTime, null);

            fieldDefinitionDateTime.Configurations = new List <DynamicFieldConfiguration>
            {
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.NotEqualsTo, ValueString = "DarkwingDuck"
                },
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.NotEqualsTo, ValueString = "LaunchpadMcQuack"
                },
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.NotEqualsDefault, ValueDateTime = dateTime
                }
            };

            var fieldDefinitionComboxBoxGuid = ConfigurationHelper.CreateDefinition(FieldType.ComboxBoxGuid, null);

            fieldDefinitionComboxBoxGuid.Configurations = new List <DynamicFieldConfiguration>
            {
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.NotEqualsTo, ValueString = "DarkwingDuck"
                },
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.NotEqualsTo, ValueString = "LaunchpadMcQuack"
                },
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.NotEqualsDefault, ValueGuid = guidOne
                }
            };

            var fieldDefinitionGuid = ConfigurationHelper.CreateDefinition(FieldType.Guid, null);

            fieldDefinitionGuid.Configurations = new List <DynamicFieldConfiguration>
            {
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.NotEqualsTo, ValueString = "DarkwingDuck"
                },
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.NotEqualsTo, ValueString = "LaunchpadMcQuack"
                },
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.NotEqualsDefault, ValueGuid = guidTwo
                }
            };

            var fieldInformation = new FieldInformation <DynamicFieldDefinition, DynamicFieldAssignment, DynamicFieldValue, string, int>
            {
                Definitions = new List <DynamicFieldDefinition>
                {
                    fieldDefinitionDecimal,
                    fieldDefinitionDateTime,
                    fieldDefinitionComboxBoxGuid,
                    fieldDefinitionGuid
                },
                Assignments = new List <DynamicFieldAssignment>
                {
                    ConfigurationHelper.CreateAssignment(FieldType.NumberDecimal),
                    ConfigurationHelper.CreateAssignment(FieldType.DateTime),
                    ConfigurationHelper.CreateAssignment(FieldType.ComboxBoxGuid),
                    ConfigurationHelper.CreateAssignment(FieldType.Guid)
                },
                Values = new List <DynamicFieldValue>
                {
                    ConfigurationHelper.CreateField(FieldType.NumberDecimal),
                    ConfigurationHelper.CreateField(FieldType.DateTime),
                    ConfigurationHelper.CreateField(FieldType.ComboxBoxGuid),
                    ConfigurationHelper.CreateField(FieldType.Guid)
                }
            };

            // Act
            var rules = _classUnderTest.CalculateValidationRules(fieldInformation);

            // Assert
            rules.Should().HaveCount(4);

            var ruleDecimal = rules.Single(r => r.PropertyName == nameof(FieldType.NumberDecimal));

            ruleDecimal.JsonName.Should().Be(nameof(FieldType.NumberDecimal));
            ruleDecimal.IsDynamicField.Should().BeTrue();
            ruleDecimal.Rules.First(r => r.Rule == "NotEqualsTo").PropertyName.Should().Be("DarkwingDuck");
            ruleDecimal.Rules.First(r => r.Rule == "NotEqualsTo").DefaultValue.Should().Be(5m.ToString(CultureInfo.InvariantCulture));
            ruleDecimal.Rules.Last(r => r.Rule == "NotEqualsTo").PropertyName.Should().Be("LaunchpadMcQuack");
            ruleDecimal.Rules.Last(r => r.Rule == "NotEqualsTo").DefaultValue.Should().Be(5m.ToString(CultureInfo.InvariantCulture));

            var ruleDateTime = rules.Single(r => r.PropertyName == nameof(FieldType.DateTime));

            ruleDateTime.JsonName.Should().Be(nameof(FieldType.DateTime));
            ruleDateTime.IsDynamicField.Should().BeTrue();
            ruleDateTime.Rules.First(r => r.Rule == "NotEqualsTo").PropertyName.Should().Be("DarkwingDuck");
            ruleDateTime.Rules.First(r => r.Rule == "NotEqualsTo").DefaultValue.Should().Be(dateTime.ToString("yyyy-MM-ddTHH:mm:ss"));
            ruleDateTime.Rules.Last(r => r.Rule == "NotEqualsTo").PropertyName.Should().Be("LaunchpadMcQuack");
            ruleDateTime.Rules.Last(r => r.Rule == "NotEqualsTo").DefaultValue.Should().Be(dateTime.ToString("yyyy-MM-ddTHH:mm:ss"));

            var ruleComboxBoxGuid = rules.Single(r => r.PropertyName == nameof(FieldType.ComboxBoxGuid));

            ruleComboxBoxGuid.JsonName.Should().Be(nameof(FieldType.ComboxBoxGuid));
            ruleComboxBoxGuid.IsDynamicField.Should().BeTrue();
            ruleComboxBoxGuid.Rules.First(r => r.Rule == "NotEqualsTo").PropertyName.Should().Be("DarkwingDuck");
            ruleComboxBoxGuid.Rules.First(r => r.Rule == "NotEqualsTo").DefaultValue.Should().Be(guidOne.ToString());
            ruleComboxBoxGuid.Rules.Last(r => r.Rule == "NotEqualsTo").PropertyName.Should().Be("LaunchpadMcQuack");
            ruleComboxBoxGuid.Rules.Last(r => r.Rule == "NotEqualsTo").DefaultValue.Should().Be(guidOne.ToString());

            var ruleGuid = rules.Single(r => r.PropertyName == nameof(FieldType.Guid));

            ruleGuid.JsonName.Should().Be(nameof(FieldType.Guid));
            ruleGuid.IsDynamicField.Should().BeTrue();
            ruleGuid.Rules.First(r => r.Rule == "NotEqualsTo").PropertyName.Should().Be("DarkwingDuck");
            ruleGuid.Rules.First(r => r.Rule == "NotEqualsTo").DefaultValue.Should().Be(guidTwo.ToString());
            ruleGuid.Rules.Last(r => r.Rule == "NotEqualsTo").PropertyName.Should().Be("LaunchpadMcQuack");
            ruleGuid.Rules.Last(r => r.Rule == "NotEqualsTo").DefaultValue.Should().Be(guidTwo.ToString());
        }
Пример #2
0
        public void CalculateValidationRulesRangeBetweenTest(FieldType fieldType)
        {
            // Arrange
            var fieldDefinition = ConfigurationHelper.CreateDefinition(fieldType, null);

            fieldDefinition.Configurations = new List <DynamicFieldConfiguration>
            {
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.RangeBetween
                },
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.RangeBetweenFrom, ValueString = fieldType.ToString() + "ValueFrom"
                },
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.RangeBetweenTo, ValueString = fieldType.ToString() + "ValueTo"
                },
                new DynamicFieldConfiguration {
                    ConfigurationType = FieldConfigurationType.AllowNull
                }
            };

            var fieldInformation = new FieldInformation <DynamicFieldDefinition, DynamicFieldAssignment, DynamicFieldValue, string, int>
            {
                Definitions = new List <DynamicFieldDefinition>
                {
                    ConfigurationHelper.CreateDefinition(fieldType, null, "From"),
                    ConfigurationHelper.CreateDefinition(fieldType, null, "To"),
                    fieldDefinition
                },
                Assignments = new List <DynamicFieldAssignment>
                {
                    ConfigurationHelper.CreateAssignment(fieldType, "From"),
                    ConfigurationHelper.CreateAssignment(fieldType, "To"),
                    ConfigurationHelper.CreateAssignment(fieldType)
                },
                Values = new List <DynamicFieldValue>
                {
                    ConfigurationHelper.CreateField(fieldType, "From"),
                    ConfigurationHelper.CreateField(fieldType, "To"),
                    ConfigurationHelper.CreateField(fieldType)
                }
            };

            // Act
            var rules = _classUnderTest.CalculateValidationRules(fieldInformation);

            // Assert
            rules.Should().HaveCount(3);

            var ruleFrom = rules.Last();

            ruleFrom.PropertyName.Should().Be(fieldType.ToString());
            ruleFrom.JsonName.Should().Be(fieldType.ToString());
            ruleFrom.IsDynamicField.Should().BeTrue();
            ruleFrom.Rules.Should().HaveCount(3);
            ruleFrom.Rules[0].Rule.Should().Be("Number");
            ruleFrom.Rules[1].Rule.Should().Be("DecimalPlaces");
            ruleFrom.Rules[1].Value.Should().Be(0);
            ruleFrom.Rules[2].Rule.Should().Be("RangeBetween");
            ruleFrom.Rules[2].PropertyNameFrom.Should().Be(fieldType.ToString() + "ValueFrom");
            ruleFrom.Rules[2].PropertyNameTo.Should().Be(fieldType.ToString() + "ValueTo");
            ruleFrom.Rules[2].PropertyNameFromAllowNull.Should().BeTrue();
            ruleFrom.Rules[2].PropertyNameToAllowNull.Should().BeTrue();
        }