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>(); }
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)); }