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