protected PropertyBase.Parameters CreateParameters( BindableObjectProvider businessObjectProvider, IPropertyInformation propertyInfo, Type underlyingType, Type concreteType, IListInfo listInfo, bool isRequired, bool isReadOnly, IBindablePropertyReadAccessStrategy bindablePropertyReadAccessStrategy = null, IBindablePropertyWriteAccessStrategy bindablePropertyWriteAccessStrategy = null, BindableObjectGlobalizationService bindableObjectGlobalizationService = null) { return(new PropertyBase.Parameters( businessObjectProvider, propertyInfo, underlyingType, new Lazy <Type> (() => concreteType), listInfo, isRequired, isReadOnly, new BindableObjectDefaultValueStrategy(), bindablePropertyReadAccessStrategy ?? SafeServiceLocator.Current.GetInstance <IBindablePropertyReadAccessStrategy>(), bindablePropertyWriteAccessStrategy ?? SafeServiceLocator.Current.GetInstance <IBindablePropertyWriteAccessStrategy>(), bindableObjectGlobalizationService ?? SafeServiceLocator.Current.GetInstance <BindableObjectGlobalizationService>())); }
public override void SetUp() { base.SetUp(); _bindablePropertyReadAccessStrategyMock = MockRepository.GenerateStrictMock <IBindablePropertyReadAccessStrategy>(); var serviceLocator = DefaultServiceLocator.Create(); serviceLocator.RegisterSingle(() => _bindablePropertyReadAccessStrategyMock); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); }
public override void SetUp() { base.SetUp(); _mockRepository = new MockRepository(); _innerStrategy1 = _mockRepository.StrictMock <IBindablePropertyReadAccessStrategy>(); _innerStrategy2 = _mockRepository.StrictMock <IBindablePropertyReadAccessStrategy>(); _innerStrategy3 = _mockRepository.StrictMock <IBindablePropertyReadAccessStrategy>(); _strategy = new CompundBindablePropertyReadAccessStrategy(new[] { _innerStrategy1, _innerStrategy2, _innerStrategy3 }); _businessObjectProvider = CreateBindableObjectProviderWithStubBusinessObjectServiceFactory(); _property = new StubPropertyBase(GetPropertyParameters(GetPropertyInfo(typeof(ClassWithAllDataTypes), "Byte"), _businessObjectProvider)); _businessObject = MockRepository.GenerateStub <IBusinessObject>(); }
public Parameters( [NotNull] BindableObjectProvider businessObjectProvider, [NotNull] IPropertyInformation propertyInfo, [NotNull] Type underlyingType, [NotNull] Lazy <Type> concreteType, [CanBeNull] IListInfo listInfo, bool isRequired, bool isReadOnly, [NotNull] IDefaultValueStrategy defaultValueStrategy, [NotNull] IBindablePropertyReadAccessStrategy bindablePropertyReadAccessStrategy, [NotNull] IBindablePropertyWriteAccessStrategy bindablePropertyWriteAccessStrategy, [NotNull] BindableObjectGlobalizationService bindableObjectGlobalizationService) { ArgumentUtility.CheckNotNull("businessObjectProvider", businessObjectProvider); ArgumentUtility.CheckNotNull("propertyInfo", propertyInfo); ArgumentUtility.CheckNotNull("underlyingType", underlyingType); ArgumentUtility.CheckNotNull("concreteType", concreteType); ArgumentUtility.CheckNotNull("defaultValueStrategy", defaultValueStrategy); ArgumentUtility.CheckNotNull("bindablePropertyReadAccessStrategy", bindablePropertyReadAccessStrategy); ArgumentUtility.CheckNotNull("bindablePropertyWriteAccessStrategy", bindablePropertyWriteAccessStrategy); ArgumentUtility.CheckNotNull("bindableObjectGlobalizationService", bindableObjectGlobalizationService); BusinessObjectProvider = businessObjectProvider; PropertyInfo = propertyInfo; UnderlyingType = underlyingType; ConcreteType = new Lazy <Type> ( () => { var actualConcreteType = concreteType.Value; if (!underlyingType.IsAssignableFrom(actualConcreteType)) { throw new InvalidOperationException( string.Format( "The concrete type must be assignable to the underlying type '{0}'.\r\nConcrete type: {1}", underlyingType.FullName, actualConcreteType.FullName)); } return(actualConcreteType); }, LazyThreadSafetyMode.ExecutionAndPublication); ListInfo = listInfo; IsRequired = isRequired; IsReadOnly = isReadOnly; DefaultValueStrategy = defaultValueStrategy; BindablePropertyReadAccessStrategy = bindablePropertyReadAccessStrategy; BindablePropertyWriteAccessStrategy = bindablePropertyWriteAccessStrategy; BindableObjectGlobalizationService = bindableObjectGlobalizationService; }
protected PropertyBase.Parameters GetPropertyParameters( IPropertyInformation property, BindableObjectProvider provider, IBindablePropertyReadAccessStrategy bindablePropertyReadAccessStrategy = null, IBindablePropertyWriteAccessStrategy bindablePropertyWriteAccessStrategy = null, BindableObjectGlobalizationService bindableObjectGlobalizationService = null) { var reflector = new PropertyReflector( property, provider, MockRepository.GenerateStub <IDefaultValueStrategy>(), bindablePropertyReadAccessStrategy ?? SafeServiceLocator.Current.GetInstance <IBindablePropertyReadAccessStrategy>(), bindablePropertyWriteAccessStrategy ?? SafeServiceLocator.Current.GetInstance <IBindablePropertyWriteAccessStrategy>(), bindableObjectGlobalizationService ?? SafeServiceLocator.Current.GetInstance <BindableObjectGlobalizationService>()); return((PropertyBase.Parameters)PrivateInvoke.InvokeNonPublicMethod( reflector, typeof(PropertyReflector), "CreateParameters", GetUnderlyingType(reflector))); }
public BindableDomainObjectPropertyReflector( IPropertyInformation propertyInfo, BindableObjectProvider businessObjectProvider, IDomainModelConstraintProvider domainModelConstraintProvider, IDefaultValueStrategy defaultValueStrategy, IBindablePropertyReadAccessStrategy bindablePropertyReadAccessStrategy, IBindablePropertyWriteAccessStrategy bindablePropertyWriteAccessStrategy, BindableObjectGlobalizationService bindableObjectGlobalizationService) : base( propertyInfo, businessObjectProvider, defaultValueStrategy, bindablePropertyReadAccessStrategy, bindablePropertyWriteAccessStrategy, bindableObjectGlobalizationService) { ArgumentUtility.CheckNotNull("businessObjectProvider", businessObjectProvider); ArgumentUtility.CheckNotNull("domainModelConstraintProvider", domainModelConstraintProvider); _domainModelConstraintProvider = domainModelConstraintProvider; }
protected PropertyBase(Parameters parameters) { ArgumentUtility.CheckNotNull("parameters", parameters); if (parameters.PropertyInfo.GetIndexParameters().Length > 0) { throw new InvalidOperationException("Indexed properties are not supported."); } _businessObjectProvider = parameters.BusinessObjectProvider; _propertyInfo = parameters.PropertyInfo; _underlyingType = parameters.UnderlyingType; _listInfo = parameters.ListInfo; _isRequired = parameters.IsRequired; _isReadOnly = parameters.IsReadOnly; _defaultValueStrategy = parameters.DefaultValueStrategy; _bindablePropertyReadAccessStrategy = parameters.BindablePropertyReadAccessStrategy; _bindablePropertyWriteAccessStrategy = parameters.BindablePropertyWriteAccessStrategy; _bindableObjectGlobalizationService = parameters.BindableObjectGlobalizationService; _isNullable = GetNullability(); _valueGetter = Maybe.ForValue(_propertyInfo.GetGetMethod(true)).Select(mi => mi.GetFastInvoker <Func <object, object> >()).ValueOrDefault(); _valueSetter = Maybe.ForValue(_propertyInfo.GetSetMethod(true)).Select(mi => mi.GetFastInvoker <Action <object, object> >()).ValueOrDefault(); }
private new PropertyBase.Parameters CreateParameters( BindableObjectProvider businessObjectProvider = null, IPropertyInformation propertyInfo = null, Type underlyingType = null, Type concreteType = null, IListInfo listInfo = null, bool isRequired = false, bool isReadOnly = false, IBindablePropertyReadAccessStrategy bindablePropertyReadAccessStrategy = null, IBindablePropertyWriteAccessStrategy bindablePropertyWriteAccessStrategy = null, BindableObjectGlobalizationService bindableObjectGlobalizationService = null) { return(base.CreateParameters( businessObjectProvider ?? _bindableObjectProvider, propertyInfo, underlyingType, concreteType, listInfo, isRequired, isReadOnly, bindablePropertyReadAccessStrategy, bindablePropertyWriteAccessStrategy, bindableObjectGlobalizationService)); }