示例#1
0
        public void SetValue_OldValueIsNewlyCreatedDefaultValue()
        {
            _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_referencePropertyStub)).Return(null).Repeat.Once();
            _referencePropertyStub.Stub(stub => stub.SupportsDefaultValue).Return(true);
            _referencePropertyStub.Stub(stub => stub.SupportsDelete).Return(true);
            var oldValue = MockRepository.GenerateStub <IBusinessObject> ();

            _referencePropertyStub.Stub(stub => stub.CreateDefaultValue(_referencedDataSourceStub.BusinessObject))
            .Return(oldValue)
            .Repeat.Once();

            var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub);

            referenceDataSource.Mode = DataSourceMode.Edit;

            referenceDataSource.LoadValue(false);

            Assert.That(referenceDataSource.HasBusinessObjectCreated, Is.True);
            Assert.That(referenceDataSource.BusinessObject, Is.SameAs(oldValue));

            referenceDataSource.BusinessObject = null;

            Assert.That(referenceDataSource.HasBusinessObjectCreated, Is.False);
            Assert.That(referenceDataSource.BusinessObject, Is.Null);
            _referencePropertyStub.AssertWasCalled(stub => stub.Delete(_referencedDataSourceStub.BusinessObject, oldValue));
        }
示例#2
0
        public void IsDefaultValueTrue_SupportsDeleteTrue_DeletesObject_AndReturnsTrue()
        {
            var referencedObject = MockRepository.GenerateStub <IBusinessObject> ();

            _referencePropertyStub.Stub(stub => stub.SupportsDefaultValue).Return(true);
            _referencePropertyStub
            .Stub(stub => stub.IsDefaultValue(_referencedDataSourceStub.BusinessObject, referencedObject, new IBusinessObjectProperty[0]))
            .Return(true);
            _referencePropertyStub.Stub(stub => stub.SupportsDelete).Return(true);

            var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub);

            referenceDataSource.BusinessObject = referencedObject;

            var result = referenceDataSource.SaveValue(false);

            Assert.That(result, Is.True);
            _referencePropertyStub.AssertWasCalled(stub => stub.Delete(_referencedDataSourceStub.BusinessObject, referencedObject));
        }