public void CanGetValueFromOverridenPropertyForInstanceOfDerivedClass() { PropertyInfo propertyInfo = typeof(BaseTestDomainObject).GetProperty("Property2"); ValueAccess valueAccess = new PropertyValueAccess(propertyInfo); BaseTestDomainObject domainObject = new DerivedTestDomainObject(); object value; string valueAccessRetrievalFailure; bool status = valueAccess.GetValue(domainObject, out value, out valueAccessRetrievalFailure); Assert.IsTrue(status); Assert.AreEqual(DerivedTestDomainObject.Derived2Value, value); }
public void RetrievalOfValueForInstanceOfDerivedTypeThroughBaseAliasedPropertyReturnsValueFromInheritedProperty() { PropertyInfo propertyInfo = typeof(BaseTestDomainObject).GetProperty("Property3"); ValueAccess valueAccess = new PropertyValueAccess(propertyInfo); BaseTestDomainObject domainObject = new DerivedTestDomainObject(); object value; string valueAccessRetrievalFailure; bool status = valueAccess.GetValue(domainObject, out value, out valueAccessRetrievalFailure); Assert.IsTrue(status); Assert.AreEqual(BaseTestDomainObject.Base3Value, value); }
public void CanValidateThroughPropertyAccess() { DerivedTestDomainObject targetToValidate = new DerivedTestDomainObject(); PropertyValueAccess valueAccess = new PropertyValueAccess(typeof(DerivedTestDomainObject).GetProperty("Property2")); MockValidator<object> valueValidator = new MockValidator<object>(false); Validator validator = new ValueAccessValidator(valueAccess, valueValidator); ValidationResults validationResults = validator.Validate(targetToValidate); Assert.IsTrue(validationResults.IsValid); Assert.AreEqual(1, valueValidator.ValidatedTargets.Count); Assert.AreSame(targetToValidate.Property2, valueValidator.ValidatedTargets[0]); }
public void RetrievalOfValueForInstanceOfNonRelatedTypeReturnsFailure() { PropertyInfo propertyInfo = typeof(BaseTestDomainObject).GetProperty("Property1"); ValueAccess valueAccess = new PropertyValueAccess(propertyInfo); object value; string valueAccessRetrievalFailure; bool status = valueAccess.GetValue("a string", out value, out valueAccessRetrievalFailure); Assert.IsFalse(status); Assert.IsNull(value); Assert.IsTrue(TemplateStringTester.IsMatch(Resources.ErrorValueAccessInvalidType, valueAccessRetrievalFailure)); }
public void CanGetKeyFromValueAccess() { PropertyInfo propertyInfo = typeof(BaseTestDomainObject).GetProperty("Property3"); ValueAccess valueAccess = new PropertyValueAccess(propertyInfo); Assert.AreEqual("Property3", valueAccess.Key); }