Esempio n. 1
0
        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));
        }
Esempio n. 3
0
        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"));
        }
Esempio n. 4
0
        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));
 }