private ReferenceProperty CreateProperty(string propertyName) { PropertyBase.Parameters propertyParameters = GetPropertyParameters(GetPropertyInfo(typeof(ClassWithBusinessObjectProperties), propertyName), _bindableObjectProviderForDeclaringType); ReferenceProperty property = new ReferenceProperty(propertyParameters); property.SetReflectedClass(BindableObjectProviderTestHelper.GetBindableObjectClass(typeof(ClassWithBusinessObjectProperties))); return(property); }
public PropertyBase GetMetadata(PropertyBase.Parameters parameters) { ArgumentUtility.CheckNotNull("parameters", parameters); if (parameters.UnderlyingType == typeof(SimpleReferenceType)) { return(new SimpleReferenceTypeProperty(parameters)); } return(Next.GetMetadata(parameters)); }
public void Initialize_WithConcreteTypeNotImplementingIBusinessObject_ThrowsInvalidOperationExceptionWhenConcreteTypeIsFirstUsed() { PropertyBase.Parameters parameters = CreateParameters( _businessObjectProvider, GetPropertyInfo(typeof(ClassWithReferenceType <SimpleBusinessObjectClass>), "Scalar"), typeof(SimpleBusinessObjectClass), typeof(SimpleBusinessObjectClass), null, false, false); var referenceProperty = new ReferenceProperty(parameters); Assert.That( () => referenceProperty.SupportsSearchAvailableObjects, Throws.InvalidOperationException.With.Message.EqualTo( "The concrete type must implement the IBusinessObject interface.\r\n" + "Concrete type: Remotion.ObjectBinding.UnitTests.TestDomain.SimpleBusinessObjectClass")); }
public void Initialize_WithMissmatchedConcreteType_ThrowsInvalidOperationExceptionWhenConcreteTypeIsFirstUsed() { PropertyBase.Parameters parameters = CreateParameters( _businessObjectProvider, GetPropertyInfo(typeof(ClassWithReferenceType <SimpleBusinessObjectClass>), "Scalar"), typeof(SimpleBusinessObjectClass), typeof(ClassWithAllDataTypes), null, false, false); var referenceProperty = new ReferenceProperty(parameters); Assert.That( () => referenceProperty.SupportsSearchAvailableObjects, Throws.InvalidOperationException.With.Message.EqualTo( "The concrete type must be assignable to the underlying type 'Remotion.ObjectBinding.UnitTests.TestDomain.SimpleBusinessObjectClass'.\r\n" + "Concrete type: Remotion.ObjectBinding.UnitTests.TestDomain.ClassWithAllDataTypes")); }
private ReferenceProperty CreateProperty(string propertyName) { PropertyBase.Parameters propertyParameters = GetPropertyParameters(propertyName); return(new ReferenceProperty(propertyParameters)); }