public void GetBindableObjectClass()
        {
            var mockRepository      = new MockRepository();
            var metadataFactoryMock = mockRepository.StrictMock <IMetadataFactory>();
            var classReflectorMock  = mockRepository.StrictMock <IClassReflector>();

            var provider = new BindableObjectProvider(metadataFactoryMock, _serviceFactoryStub);

            BindableObjectProvider.SetProvider(typeof(BindableObjectProviderAttribute), provider);
            Type targetType   = typeof(SimpleBusinessObjectClass);
            Type concreteType = MixinTypeUtility.GetConcreteMixedType(targetType);
            var  expectedBindableObjectClass = new BindableObjectClass(
                concreteType,
                provider,
                SafeServiceLocator.Current.GetInstance <BindableObjectGlobalizationService>(),
                new PropertyBase[0]);

            Expect.Call(metadataFactoryMock.CreateClassReflector(targetType, provider)).Return(classReflectorMock);
            Expect.Call(classReflectorMock.GetMetadata()).Return(expectedBindableObjectClass);

            mockRepository.ReplayAll();

            BindableObjectClass actual = provider.GetBindableObjectClass(targetType);

            mockRepository.VerifyAll();

            Assert.That(actual, Is.SameAs(expectedBindableObjectClass));
        }
        public override void SetUp()
        {
            base.SetUp();

            _provider = new BindableObjectProvider();
            BindableObjectProvider.SetProvider(typeof(BindableObjectProviderAttribute), _provider);
            _metadataFactoryStub = MockRepository.GenerateStub <IMetadataFactory>();
            _serviceFactoryStub  = MockRepository.GenerateStub <IBusinessObjectServiceFactory>();
        }
예제 #3
0
        public void LazyInitialization_KeepsProviderOfConstructionTime()
        {
            var objectCreatedBefore = ObjectFactory.Create <SimpleBusinessObjectClass> (ParamList.Empty);
            var providerBefore      = BindableObjectProvider.GetProviderForBindableObjectType(typeof(SimpleBusinessObjectClass));

            BindableObjectProvider.SetProvider(typeof(BindableObjectProviderAttribute), null);

            var providerAfter = BindableObjectProvider.GetProviderForBindableObjectType(typeof(SimpleBusinessObjectClass));

            Assert.That(providerAfter, Is.Not.SameAs(providerBefore));
            var objectCreatedAfter = ObjectFactory.Create <SimpleBusinessObjectClass> (ParamList.Empty);

            Assert.That(((IBusinessObject)objectCreatedAfter).BusinessObjectClass.BusinessObjectProvider, Is.SameAs(providerAfter));
            Assert.That(((IBusinessObject)objectCreatedBefore).BusinessObjectClass.BusinessObjectProvider, Is.SameAs(providerBefore));
        }