/// <summary> /// Loads the property definition from the reader /// </summary> protected override void LoadFromReader() { _reader.Read(); LoadPropertyName(); LoadDisplayName(); LoadPropertyType(); LoadReadWriteRule(); LoadDefaultValue(); LoadDatabaseFieldName(); LoadDescription(); LoadCompulsory(); LoadAutoIncrementing(); LoadLength(); LoadKeepValuePrivate(); _reader.Read(); _propDef = _defClassFactory.CreatePropDef(_propertyName, _assemblyName, _typeName, _readWriteRule, _databaseFieldName, _defaultValueString, _compulsory, _autoIncrementing, _length, _displayName, _description, _keepValuePrivate); while (_reader.Name == "rule") { var loader = new XmlRuleLoader(DtdLoader, _defClassFactory); loader.LoadRuleIntoProperty(_reader.ReadOuterXml(), _propDef); } int len = "lookupList".Length; if (_reader.Name.Length >= len && _reader.Name.Substring(_reader.Name.Length - len, len) == "LookupList") { XmlLookupListLoader.LoadLookupListIntoProperty(_reader.ReadOuterXml(), _propDef, DtdLoader, _defClassFactory); } }
public void TestPropRuleDecimal_MaxValue_ActualValueLT() { XmlRuleLoader loader = new XmlRuleLoader(new DtdLoader(), GetDefClassFactory()); IPropRule rule = loader.LoadRule(typeof(Decimal).Name, @"<rule name=""TestDecimal"" > <add key=""min"" value=""12.22"" /> <add key=""max"" value=""15.51"" /> </rule> "); //-----------------Assert Preconditions --------------------------- Assert.AreEqual(12.22d, ((PropRuleDecimal)rule).MinValue); Assert.AreEqual(15.51d, ((PropRuleDecimal)rule).MaxValue); //---------------Execute ------------------------------------------ string errorMessage = ""; bool isValid = rule.IsPropValueValid("Propname", 13.1d, ref errorMessage); //--------------Verify Result ------------------------------------- Assert.IsTrue(isValid); Assert.IsTrue(string.IsNullOrEmpty(errorMessage)); }
public void TestPropRuleDate_MaxValue_Today() { XmlRuleLoader loader = new XmlRuleLoader(new DtdLoader(), GetDefClassFactory()); IPropRule rule = loader.LoadRule(typeof(DateTime).Name, @"<rule name=""TestDate"" > <add key=""min"" value=""01 Feb 2004"" /> <add key=""max"" value=""Today"" /> </rule> "); //-----------------Assert Preconditions --------------------------- Assert.AreEqual(new DateTime(2004, 02, 01), ((PropRuleDate)rule).MinValue); Assert.AreEqual(DateTime.Today.AddDays(1).AddMilliseconds(-1), ((PropRuleDate)rule).MaxValue); //---------------Execute ------------------------------------------ string errorMessage = ""; bool isValid = rule.IsPropValueValid("Propname", DateTime.Today.AddDays(-1), ref errorMessage); //--------------Verify Result ------------------------------------- Assert.IsTrue( isValid); Assert.IsTrue(string.IsNullOrEmpty(errorMessage)); }
public void Test_LoadRule_WhenMaxYesterday_ShouldUseStringMaxValueExpression() { //---------------Set up test pack------------------- XmlRuleLoader loader = new XmlRuleLoader(new DtdLoader(), GetDefClassFactory()); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- PropRuleDate rule = (PropRuleDate)loader.LoadRule(typeof(DateTime).Name, @"<rule name=""TestDate"" > <add key=""min"" value=""yesterday"" /> <add key=""max"" value=""yesterday"" /> </rule> "); //---------------Test Result ----------------------- Assert.AreEqual("yesterday", rule.Parameters["max"]); Assert.AreEqual("yesterday", rule.Parameters["min"]); }
public void Test_MaxAndMinValue_WhenTomorrow_ShouldRetTomorrow() { //---------------Set up test pack------------------- XmlRuleLoader loader = new XmlRuleLoader(new DtdLoader(), GetDefClassFactory()); PropRuleDate rule = (PropRuleDate) loader.LoadRule(typeof(DateTime).Name, @"<rule name=""TestDate"" > <add key=""min"" value=""tomorrow"" /> <add key=""max"" value=""tomorrow"" /> </rule> "); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- DateTime maxDateTime = rule.MaxValue; DateTime minDateTime = rule.MinValue; //---------------Test Result ----------------------- Assert.AreEqual(DateTimeToday.Value.AddDays(2).AddMilliseconds(-1), maxDateTime); Assert.AreEqual(DateTimeToday.Value.AddDays(1), minDateTime); }
protected void Initialise() { _loader = new XmlRuleLoader(new DtdLoader(), GetDefClassFactory()); }