Пример #1
0
 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();

            _bindableObjectProvider             = new BindableObjectProvider();
            _mockRepository                     = new MockRepository();
            _bindableObjectGlobalizationService = SafeServiceLocator.Current.GetInstance <BindableObjectGlobalizationService>();
        }
Пример #3
0
        public override void SetUp()
        {
            base.SetUp();

            _type = typeof(DerivedBusinessObjectClass);
            _businessObjectProvider             = new BindableObjectProvider();
            _metadataFactory                    = BindableObjectMetadataFactory.Create();
            _bindableObjectGlobalizationService = SafeServiceLocator.Current.GetInstance <BindableObjectGlobalizationService>();
        }
Пример #4
0
        public override void SetUp()
        {
            base.SetUp();

            _bindableObjectProvider = CreateBindableObjectProviderWithStubBusinessObjectServiceFactory();
            BusinessObjectProvider.SetProvider <BindableObjectProviderAttribute> (_bindableObjectProvider);
            BusinessObjectProvider.SetProvider <BindableObjectWithIdentityProviderAttribute> (_bindableObjectProvider);
            _bindableObjectGlobalizationService = SafeServiceLocator.Current.GetInstance <BindableObjectGlobalizationService>();
            _mockRepository = new MockRepository();
        }
Пример #5
0
 private BooleanProperty CreateProperty(
     string propertyName,
     BindableObjectProvider provider = null,
     BindableObjectGlobalizationService bindableObjectGlobalizationService = null)
 {
     return(new BooleanProperty(
                GetPropertyParameters(
                    GetPropertyInfo(typeof(ClassWithValueType <bool>), propertyName),
                    provider ?? _businessObjectProvider,
                    bindableObjectGlobalizationService: bindableObjectGlobalizationService)));
 }
Пример #6
0
 private EnumerationProperty CreateProperty(
     Type type,
     string propertyName,
     BindableObjectGlobalizationService bindableObjectGlobalizationService = null)
 {
     return(new EnumerationProperty(
                GetPropertyParameters(
                    GetPropertyInfo(type, propertyName),
                    _businessObjectProvider,
                    bindableObjectGlobalizationService: bindableObjectGlobalizationService)));
 }
        public override void SetUp()
        {
            base.SetUp();

            _defaultServiceLocator = DefaultServiceLocator.Create();
            _globalizationService  = _defaultServiceLocator.GetInstance <BindableObjectGlobalizationService>();
            var bindableObjectClass = BindableObjectProviderTestHelper.GetBindableObjectClass(typeof(ClassWithResources));

            _targetType = TypeAdapter.Create(bindableObjectClass.TargetType);

            _uiCultureBackup = Thread.CurrentThread.CurrentUICulture;
            Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
        }
Пример #8
0
            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;
            }
Пример #9
0
        public override void SetUp()
        {
            base.SetUp();

            _businessObjectProvider             = CreateBindableObjectProviderWithStubBusinessObjectServiceFactory();
            _bindableObjectGlobalizationService = SafeServiceLocator.Current.GetInstance <BindableObjectGlobalizationService>();
            ClassReflector classReflector = new ClassReflector(
                typeof(ClassWithValueType <bool>),
                _businessObjectProvider,
                BindableObjectMetadataFactory.Create(),
                _bindableObjectGlobalizationService);

            _businessObjectClass = classReflector.GetMetadata();

            _mockRepository = new MockRepository();
        }
        private ExtensibleEnumerationProperty CreateProperty(
            Type propertyType,
            BindableObjectGlobalizationService bindableObjectGlobalizationService = null)
        {
            var propertyStub = MockRepository.GenerateStub <IPropertyInformation>();

            propertyStub.Stub(stub => stub.PropertyType).Return(propertyType);
            propertyStub.Stub(stub => stub.GetIndexParameters()).Return(new ParameterInfo[0]);

            var parameters = GetPropertyParameters(
                propertyStub,
                _businessObjectProvider,
                bindableObjectGlobalizationService: bindableObjectGlobalizationService);

            return(new ExtensibleEnumerationProperty(parameters));
        }
Пример #11
0
        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;
        }
Пример #13
0
        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));
 }
Пример #15
0
 private string GetDisplayName(Enum value)
 {
     return(BindableObjectGlobalizationService.GetEnumerationValueDisplayName(value));
 }
        public BindableDomainObjectMetadataFactory(BindableObjectGlobalizationService bindableObjectGlobalizationService)
        {
            ArgumentUtility.CheckNotNull("bindableObjectGlobalizationService", bindableObjectGlobalizationService);

            _bindableObjectGlobalizationService = bindableObjectGlobalizationService;
        }
 private string GetDisplayName(IExtensibleEnumInfo extensibleEnumInfo)
 {
     return(BindableObjectGlobalizationService.GetExtensibleEnumerationValueDisplayName(extensibleEnumInfo.Value));
 }
Пример #18
0
 /// <summary> Returns the human readable value of the boolean property. </summary>
 /// <param name="value"> The <see cref="bool"/> value to be formatted. </param>
 /// <returns> The human readable string value of the boolean property. </returns>
 /// <remarks> The value of this property may depend on the current culture. </remarks>
 public string GetDisplayName(bool value)
 {
     return(BindableObjectGlobalizationService.GetBooleanValueDisplayName(value));
 }