コード例 #1
0
        public void UniqueIdentifier_ViaImplementation() // overriding UniqueIdentifier is not possbile in BindableDomainObjects
        {
            var wrapper        = SampleBindableDomainObject.NewObject();
            var implementation = BindableDomainObjectImplementation.Create(wrapper);

            Assert.That(implementation.UniqueIdentifier, Is.EqualTo(wrapper.ID.ToString()));
        }
コード例 #2
0
        public void DisplayName_ViaImplementation_Default()
        {
            var wrapper        = SampleBindableDomainObject.NewObject();
            var implementation = BindableDomainObjectImplementation.Create(wrapper);

            Assert.That(implementation.DisplayName, Is.EqualTo(((IBusinessObject)wrapper).BusinessObjectClass.Identifier));
        }
コード例 #3
0
        public void UniqueIdentifierViaImplementation()
        {
            var instance = SampleBindableDomainObject.NewObject();
            var mixin    = (BindableDomainObjectImplementation)PrivateInvoke.GetNonPublicField(instance, typeof(BindableDomainObject), "_implementation");

            Assert.That(mixin.UniqueIdentifier, Is.EqualTo(instance.ID.ToString()));
        }
コード例 #4
0
        public void BaseUniqueIdentifier()
        {
            var wrapper        = SampleBindableDomainObject.NewObject();
            var implementation = BindableDomainObjectImplementation.Create(wrapper);

            Assert.That(implementation.BaseUniqueIdentifier, Is.EqualTo(wrapper.ID.ToString()));
        }
コード例 #5
0
        public void Implementation_IsInitialized()
        {
            var instance       = SampleBindableDomainObject.NewObject();
            var implementation = (BindableDomainObjectImplementation)PrivateInvoke.GetNonPublicField(instance, "_implementation");

            Assert.That(implementation.BusinessObjectClass, Is.Not.Null);
        }
コード例 #6
0
        public void Create()
        {
            var wrapper = SampleBindableDomainObject.NewObject();
            var mixin   = BindableDomainObjectImplementation.Create(wrapper);

            Assert.That(mixin.BusinessObjectClass, Is.Not.Null);
            Assert.That(PrivateInvoke.GetNonPublicProperty(mixin, "Target"), Is.SameAs(wrapper));
        }
コード例 #7
0
        public void SearchAvailableObjectsWithDifferentObject()
        {
            IBusinessObject[] businessObjects =
                _property.SearchAvailableObjects(SampleBindableDomainObject.NewObject(), new DefaultSearchArguments(_stubbedQueryID));

            Assert.That(businessObjects, Is.Not.Null);
            Assert.That(businessObjects.Length > 0, Is.True);
        }
コード例 #8
0
        public void Deserialization()
        {
            var wrapper          = SampleBindableDomainObject.NewObject();
            var mixin            = BindableDomainObjectImplementation.Create(wrapper);
            var deserializedData = Serializer.SerializeAndDeserialize(Tuple.Create(mixin, wrapper));

            Assert.That(deserializedData.Item1.BusinessObjectClass, Is.Not.Null);
            Assert.That(PrivateInvoke.GetNonPublicProperty(deserializedData.Item1, "Target"), Is.SameAs(deserializedData.Item2));
        }
コード例 #9
0
        public void CanRead_BusinessObjectIsNull_ReturnsTrue()
        {
            var property = GetProperty(SampleBindableDomainObject.NewObject());

            var strategy = (IBindablePropertyReadAccessStrategy) new BindableDomainObjectPropertyReadAccessStrategy();
            var result   = strategy.CanRead(null, property);

            Assert.That(result, Is.True);
        }
        public override void SetUp()
        {
            base.SetUp();

            _service = new BindableDomainObjectGetObjectService();

            _instance            = SampleBindableDomainObject.NewObject();
            _businessObjectClass = (BindableObjectClassWithIdentity)((IBusinessObject)_instance).BusinessObjectClass;
            _id = ((IBusinessObjectWithIdentity)_instance).UniqueIdentifier;
        }
コード例 #11
0
        public void CanRead_NotADomainObject_ReturnsTrue()
        {
            var instance = MockRepository.GenerateStub <IBusinessObject>();
            var property = GetProperty(SampleBindableDomainObject.NewObject());

            var strategy = (IBindablePropertyReadAccessStrategy) new BindableDomainObjectPropertyReadAccessStrategy();
            var result   = strategy.CanRead(instance, property);

            Assert.That(result, Is.True);
        }
コード例 #12
0
        public void SetProperty()
        {
            var instance = SampleBindableDomainObject.NewObject(_implementationMock);

            _implementationMock.Expect(mock => mock.SetProperty(_propertyFake, 174));
            _implementationMock.Replay();

            ((IBusinessObject)instance).SetProperty(_propertyFake, 174);
            _implementationMock.VerifyAllExpectations();
        }
コード例 #13
0
        public void BusinessObjectClass()
        {
            var instance = SampleBindableDomainObject.NewObject(_implementationMock);

            _implementationMock.Expect(mock => mock.BusinessObjectClass).Return(_businessObjectClassFake);
            _implementationMock.Replay();

            Assert.That(((IBusinessObject)instance).BusinessObjectClass, Is.SameAs(_businessObjectClassFake));
            _implementationMock.VerifyAllExpectations();
        }
コード例 #14
0
        public void UniqueIdentifier()
        {
            var instance = SampleBindableDomainObject.NewObject(_implementationMock);

            _implementationMock.Expect(mock => mock.BaseUniqueIdentifier).Return("123");
            _implementationMock.Replay();

            Assert.That(((IBusinessObjectWithIdentity)instance).UniqueIdentifier, Is.EqualTo("123"));
            _implementationMock.VerifyAllExpectations();
        }
コード例 #15
0
        public void GetPropertyString()
        {
            var instance = SampleBindableDomainObject.NewObject(_implementationMock);

            _implementationMock.Expect(mock => mock.GetPropertyString(_propertyFake, "gj")).Return("yay");
            _implementationMock.Replay();

            Assert.That(((IBusinessObject)instance).GetPropertyString(_propertyFake, "gj"), Is.EqualTo("yay"));
            _implementationMock.VerifyAllExpectations();
        }
コード例 #16
0
        public void DisplayName()
        {
            var instance = SampleBindableDomainObject.NewObject(_implementationMock);

            _implementationMock.Expect(mock => mock.BaseDisplayName).Return("Philips");
            _implementationMock.Replay();

            Assert.That(instance.DisplayName, Is.EqualTo("Philips"));
            _implementationMock.VerifyAllExpectations();
        }
コード例 #17
0
        public override void SetUp()
        {
            base.SetUp();

            _service = new BindableDomainObjectSearchAllService();

            _persistedSampleObject1 = SampleBindableDomainObject.NewObject();
            _persistedSampleObject2 = SampleBindableDomainObject.NewObject();

            ClientTransaction.Current.Commit();
        }
コード例 #18
0
        public void Serialization()
        {
            var instance = SampleBindableDomainObject.NewObject();

            instance = Serializer.SerializeAndDeserialize(instance);
            var implementation = (BindableDomainObjectImplementation)PrivateInvoke.GetNonPublicField(instance, "_implementation");

            Assert.That(implementation, Is.Not.Null);
            Assert.That(implementation.BusinessObjectClass, Is.Not.Null);
            Assert.That(implementation.BusinessObjectClass.TargetType, Is.SameAs(typeof(SampleBindableDomainObject)));
        }
コード例 #19
0
        public void Reloading()
        {
            var instance1       = SampleBindableDomainObject.NewObject();
            var implementation1 = (BindableDomainObjectImplementation)PrivateInvoke.GetNonPublicField(instance1, "_implementation");

            using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope())
            {
                var instance2       = instance1.ID.GetObject <SampleBindableDomainObject> ();
                var implementation2 = (BindableDomainObjectImplementation)PrivateInvoke.GetNonPublicField(instance2, "_implementation");
                Assert.That(implementation2, Is.SameAs(implementation1));
            }
        }
コード例 #20
0
        public void CanRead_NewObject_ReturnsTrue()
        {
            var instance = SampleBindableDomainObject.NewObject();
            var property = GetProperty(instance);
            var strategy = (IBindablePropertyReadAccessStrategy) new BindableDomainObjectPropertyReadAccessStrategy();

            Assert.That(instance.State, Is.EqualTo(StateType.New));

            var result = strategy.CanRead(instance, property);

            Assert.That(result, Is.True);
        }
コード例 #21
0
        public void IsDefaultDefault_StateIsNewAndPropertyHasNotBeenTouched()
        {
            var instance = SampleBindableDomainObject.NewObject();

            var property = GetProperty(instance);
            var strategy = (IDefaultValueStrategy) new BindableDomainObjectDefaultValueStrategy();

            Assert.That(instance.State, Is.EqualTo(StateType.New));

            var result = strategy.IsDefaultValue(instance, property);

            Assert.That(result, Is.True);
        }
コード例 #22
0
        public void CanRead_InvalidObject_ReturnsFalse()
        {
            var instance = SampleBindableDomainObject.NewObject();
            var property = GetProperty(instance);
            var strategy = (IBindablePropertyReadAccessStrategy) new BindableDomainObjectPropertyReadAccessStrategy();

            LifetimeService.DeleteObject(instance.DefaultTransactionContext.ClientTransaction, instance);
            Assert.That(instance.State, Is.EqualTo(StateType.Invalid));

            var result = strategy.CanRead(instance, property);

            Assert.That(result, Is.False);
        }
コード例 #23
0
        public void CanRead_ChangedObject_ReturnsTrue()
        {
            var instance = SampleBindableDomainObject.NewObject();
            var property = GetProperty(instance);
            var strategy = (IBindablePropertyReadAccessStrategy) new BindableDomainObjectPropertyReadAccessStrategy();

            using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope())
            {
                instance.Name = "new value";
                Assert.That(instance.State, Is.EqualTo(StateType.Changed));
                var result = strategy.CanRead(instance, property);

                Assert.That(result, Is.True);
            }
        }
コード例 #24
0
        public void IsDefaultDefault_StateIsNotNew()
        {
            var instance = SampleBindableDomainObject.NewObject();

            LifetimeService.DeleteObject(instance.DefaultTransactionContext.ClientTransaction, instance);

            var property = GetProperty(instance);
            var strategy = (IDefaultValueStrategy) new BindableDomainObjectDefaultValueStrategy();

            Assert.That(instance.State, Is.Not.EqualTo(StateType.New));

            var result = strategy.IsDefaultValue(instance, property);

            Assert.That(result, Is.False);
        }
コード例 #25
0
        public void CanWrite_UnchangedObject_ReturnsTrue()
        {
            var instance = SampleBindableDomainObject.NewObject();
            var property = GetProperty(instance);
            var strategy = (IBindablePropertyWriteAccessStrategy) new BindableDomainObjectPropertyWriteAccessStrategy();

            using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope())
            {
                instance.EnsureDataAvailable();
                Assert.That(instance.State, Is.EqualTo(StateType.Unchanged));
                var result = strategy.CanWrite(instance, property);

                Assert.That(result, Is.True);
            }
        }
コード例 #26
0
        public void CanRead_DeletedObject_ReturnsFalse()
        {
            var instance = SampleBindableDomainObject.NewObject();
            var property = GetProperty(instance);
            var strategy = (IBindablePropertyReadAccessStrategy) new BindableDomainObjectPropertyReadAccessStrategy();

            using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope())
            {
                LifetimeService.DeleteObject(instance.DefaultTransactionContext.ClientTransaction, instance);
                Assert.That(instance.State, Is.EqualTo(StateType.Deleted));

                var result = strategy.CanRead(instance, property);

                Assert.That(result, Is.False);
            }
        }
コード例 #27
0
        public void IsDefaultDefault_StateIsNewAndPropertyCannotBeResolved()
        {
            var strategy = (IDefaultValueStrategy) new BindableDomainObjectDefaultValueStrategy();
            var instance = SampleBindableDomainObject.NewObject();

            var propertyInformationStub = MockRepository.GenerateStub <IPropertyInformation> ();

            propertyInformationStub.Stub(stub => stub.PropertyType).Return(typeof(bool));
            propertyInformationStub.Stub(stub => stub.GetIndexParameters()).Return(new ParameterInfo[0]);
            propertyInformationStub.Stub(stub => stub.DeclaringType).Return(TypeAdapter.Create(typeof(bool)));
            propertyInformationStub.Stub(stub => stub.GetOriginalDeclaringType()).Return(TypeAdapter.Create(typeof(bool)));
            var property = CreateProperty(propertyInformationStub);

            var result = strategy.IsDefaultValue(instance, property);

            Assert.That(result, Is.False);
        }
コード例 #28
0
        public void IsPropertyAccessible_WithObjectsNotFoundException_ReturnsTrue()
        {
            var instance          = SampleBindableDomainObject.NewObject();
            var property          = GetProperty(instance);
            var strategy          = (IBindablePropertyReadAccessStrategy) new BindableDomainObjectPropertyReadAccessStrategy();
            var originalException = new ObjectsNotFoundException("The Message", new ObjectID[0], null);

            BusinessObjectPropertyAccessException actualException;
            var result = strategy.IsPropertyAccessException(instance, property, originalException, out actualException);

            Assert.That(result, Is.True);

            Assert.That(actualException, Is.Not.Null);
            Assert.That(
                actualException.Message,
                Is.EqualTo(
                    "An ObjectsNotFoundException occured while getting the value of property 'Name' for business object with ID '" + instance.ID + "'."));
            Assert.That(actualException.InnerException, Is.SameAs(originalException));
        }
コード例 #29
0
        public void CreateImplementation()
        {
            var instance = SampleBindableDomainObject.NewObject();

            Assert.That(PrivateInvoke.GetNonPublicField(instance, "_implementation"), Is.InstanceOf(typeof(BindableDomainObjectImplementation)));
        }