コード例 #1
0
        public void CanDeserializeSerializedInstanceWithValuesSet()
        {
            MockValidationSettings          rwSettings      = new MockValidationSettings();
            PropertyComparisonValidatorData rwValidatorData = new PropertyComparisonValidatorData("validator1");

            rwSettings.Validators.Add(rwValidatorData);
            rwValidatorData.ComparisonOperator = ComparisonOperator.GreaterThanEqual;
            rwValidatorData.PropertyToCompare  = "property";
            rwValidatorData.Negated            = true;

            IDictionary <string, ConfigurationSection> sections = new Dictionary <string, ConfigurationSection>();

            sections[ValidationSettings.SectionName] = rwSettings;

            using (ConfigurationFileHelper configurationFileHelper = new ConfigurationFileHelper(sections))
            {
                IConfigurationSource configurationSource = configurationFileHelper.ConfigurationSource;

                MockValidationSettings roSettings = configurationSource.GetSection(ValidationSettings.SectionName) as MockValidationSettings;

                Assert.IsNotNull(roSettings);
                Assert.AreEqual(1, roSettings.Validators.Count);
                Assert.AreEqual("validator1", roSettings.Validators.Get(0).Name);
                Assert.AreSame(typeof(PropertyComparisonValidator), roSettings.Validators.Get(0).Type);
                Assert.AreEqual(ComparisonOperator.GreaterThanEqual, ((PropertyComparisonValidatorData)roSettings.Validators.Get(0)).ComparisonOperator);
                Assert.AreEqual("property", ((PropertyComparisonValidatorData)roSettings.Validators.Get(0)).PropertyToCompare);
                Assert.AreEqual(true, ((PropertyComparisonValidatorData)roSettings.Validators.Get(0)).Negated);
            }
        }
コード例 #2
0
        public void CreateValidatorWithNoPropertyThrows()
        {
            PropertyComparisonValidatorData rwValidatorData = new PropertyComparisonValidatorData("validator1");

            ((IValidatorDescriptor)rwValidatorData).CreateValidator(typeof(string),
                                                                    typeof(PropertyComparisonValidatorDataFixtureTestClass),
                                                                    new ReflectionMemberValueAccessBuilder());
        }
コード例 #3
0
        /// <summary>
        /// Creates the <see cref="PropertyComparisonValidatorData"/> represented by the node.
        /// </summary>
        /// <returns>A <see cref="PropertyComparisonValidatorData"/> instance.</returns>
        public override ValidatorData CreateValidatorData()
        {
            PropertyComparisonValidatorData validatorData = new PropertyComparisonValidatorData(this.Name);

            SetValidatorBaseProperties(validatorData);

            validatorData.Negated            = this.Negated;
            validatorData.ComparisonOperator = this.comparisonOperator;
            validatorData.PropertyToCompare  = this.propertyToCompare;

            return(validatorData);
        }
コード例 #4
0
        public void CreateValidatorWithInvalidPropertyThrows()
        {
            PropertyComparisonValidatorData rwValidatorData = new PropertyComparisonValidatorData("validator1");

            rwValidatorData.PropertyToCompare = "Property";

            PropertyComparisonValidator validator = ((IValidatorDescriptor)rwValidatorData).CreateValidator(typeof(string),
                                                                                                            typeof(PropertyComparisonValidatorDataFixtureTestClass),
                                                                                                            new ReflectionMemberValueAccessBuilder()) as PropertyComparisonValidator;

            Assert.IsNotNull(validator);
            Assert.AreEqual("PublicProperty", ((PropertyValueAccess)validator.ValueAccess).PropertyInfo.Name);
            Assert.AreEqual(ComparisonOperator.NotEqual, validator.ComparisonOperator);
            Assert.AreEqual(true, validator.Negated);
        }
コード例 #5
0
        public void CreatedNodeWithValidatorDataHasAppropriateValuesFromData()
        {
            PropertyComparisonValidatorData validatorData = new PropertyComparisonValidatorData("name");

            validatorData.Negated            = true;
            validatorData.ComparisonOperator = ComparisonOperator.GreaterThanEqual;
            validatorData.PropertyToCompare  = "property";

            PropertyComparisonValidatorNode node = new PropertyComparisonValidatorNode(validatorData);

            Assert.AreEqual("name", node.Name);
            Assert.AreEqual(ComparisonOperator.GreaterThanEqual, node.ComparisonOperator);
            Assert.AreEqual("property", node.PropertyToCompare);
            Assert.AreEqual(true, node.Negated);
        }
コード例 #6
0
        public void NodeCreatesValidatorDataWithValues()
        {
            PropertyComparisonValidatorNode node = new PropertyComparisonValidatorNode();

            node.Name               = "validator";
            node.Negated            = true;
            node.ComparisonOperator = ComparisonOperator.GreaterThanEqual;
            node.PropertyToCompare  = "property";

            PropertyComparisonValidatorData validatorData = node.CreateValidatorData() as PropertyComparisonValidatorData;

            Assert.IsNotNull(validatorData);
            Assert.AreEqual("validator", validatorData.Name);
            Assert.AreEqual(true, validatorData.Negated);
            Assert.AreEqual(ComparisonOperator.GreaterThanEqual, validatorData.ComparisonOperator);
            Assert.AreEqual("property", validatorData.PropertyToCompare);
        }
コード例 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PropertyComparisonValidatorNode"/> class representing <paramref name="validatorData"/>.
 /// </summary>
 /// <param name="validatorData">The represented <see cref="PropertyComparisonValidatorData"/>.</param>
 public PropertyComparisonValidatorNode(PropertyComparisonValidatorData validatorData)
     : base(validatorData)
 {
     this.comparisonOperator = validatorData.ComparisonOperator;
     this.propertyToCompare  = validatorData.PropertyToCompare;
 }