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 void GetBindableObjectClass_SameTwice()
 {
     Assert.That(
         _provider.GetBindableObjectClass(typeof(SimpleBusinessObjectClass)),
         Is.SameAs(_provider.GetBindableObjectClass(typeof(SimpleBusinessObjectClass))));
 }