public void LoadsValuesForBoundControls() { var referencedObject = MockRepository.GenerateStub <IBusinessObject>(); _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_referencePropertyStub)).Return(referencedObject); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); var firstControlMock = MockRepository.GenerateMock <IBusinessObjectBoundControl>(); firstControlMock.Stub(stub => stub.HasValidBinding).Return(true); referenceDataSource.Register(firstControlMock); var secondControlMock = MockRepository.GenerateMock <IBusinessObjectBoundControl>(); secondControlMock.Stub(stub => stub.HasValidBinding).Return(true); referenceDataSource.Register(secondControlMock); firstControlMock.Expect(mock => mock.LoadValue(false)) .WhenCalled(mi => Assert.That(referenceDataSource.BusinessObject, Is.SameAs(referencedObject))); secondControlMock.Expect(mock => mock.LoadValue(false)) .WhenCalled(mi => Assert.That(referenceDataSource.BusinessObject, Is.SameAs(referencedObject))); referenceDataSource.LoadValue(false); firstControlMock.VerifyAllExpectations(); secondControlMock.VerifyAllExpectations(); }
public void SavesValuesForBoundControls_NotAllControlsCanSave_ReturnsFalse() { var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = null; var firstControlMock = MockRepository.GenerateMock <IBusinessObjectBoundEditableControl> (); firstControlMock.Stub(stub => stub.HasValidBinding).Return(true); referenceDataSource.Register(firstControlMock); var secondControlMock = MockRepository.GenerateMock <IBusinessObjectBoundEditableControl> (); secondControlMock.Stub(stub => stub.HasValidBinding).Return(true); referenceDataSource.Register(secondControlMock); firstControlMock.Expect(mock => mock.SaveValue(false)).Return(false); secondControlMock.Expect(mock => mock.SaveValue(false)).Return(true); var result = referenceDataSource.SaveValue(false); Assert.That(result, Is.False); firstControlMock.VerifyAllExpectations(); secondControlMock.VerifyAllExpectations(); }
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 LoadValueCalledAgainWithInterimFalse_HasBusinessObjectCreatedTrue_BoundPropertyContainsValue_DoesNotCreateDefaultValue() { _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_referencePropertyStub)).Return(null).Repeat.Once(); _referencePropertyStub.Stub(stub => stub.SupportsDefaultValue).Return(true); var oldValue = MockRepository.GenerateStub <IBusinessObject> (); _referencePropertyStub.Stub(stub => stub.CreateDefaultValue(_referencedDataSourceStub.BusinessObject)) .Return(oldValue) .Repeat.Once(); var expectedValue = MockRepository.GenerateStub <IBusinessObject> (); _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_referencePropertyStub)).Return(expectedValue).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.LoadValue(false); Assert.That(referenceDataSource.HasBusinessObjectCreated, Is.False); Assert.That(referenceDataSource.BusinessObject, Is.SameAs(expectedValue)); }
public void SavesValuesForBoundControls_OwnBusinessObjectNotNull() { var expectedValue = MockRepository.GenerateStub <IBusinessObject>(); bool isControlSaved = false; _referencedDataSourceStub.BusinessObject.Stub(stub => stub.SetProperty(_referencePropertyStub, expectedValue)) // ReSharper disable AccessToModifiedClosure .WhenCalled(mi => Assert.That(isControlSaved, Is.True)); // ReSharper restore AccessToModifiedClosure var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = expectedValue; var firstControlMock = MockRepository.GenerateMock <IBusinessObjectBoundEditableControl>(); firstControlMock.Stub(stub => stub.HasValidBinding).Return(true); referenceDataSource.Register(firstControlMock); var secondControlMock = MockRepository.GenerateMock <IBusinessObjectBoundEditableControl>(); secondControlMock.Stub(stub => stub.HasValidBinding).Return(true); referenceDataSource.Register(secondControlMock); firstControlMock.Expect(mock => mock.SaveValue(false)).Return(true).WhenCalled(mi => isControlSaved = true); secondControlMock.Expect(mock => mock.SaveValue(false)).Return(true); var result = referenceDataSource.SaveValue(false); Assert.That(result, Is.True); firstControlMock.VerifyAllExpectations(); secondControlMock.VerifyAllExpectations(); }
public void ReferencedPropertyNull_DoesNotReadBusinessObject() { var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, null); referenceDataSource.BusinessObject = MockRepository.GenerateStub <IBusinessObject>(); referenceDataSource.SaveValue(false); _referencedDataSourceStub.BusinessObject.AssertWasNotCalled(stub => stub.SetProperty(null, null), options => options.IgnoreArguments()); }
public void ReferencedDataSourceNull_DoesNotReadBusinessObject_DoesNotClearHasBusinessObjectChanged() { var referenceDataSource = new TestableBusinessObjectReferenceDataSource(null, _referencePropertyStub); referenceDataSource.BusinessObject = MockRepository.GenerateStub <IBusinessObject>(); referenceDataSource.SaveValue(false); _referencedDataSourceStub.BusinessObject.AssertWasNotCalled(stub => stub.SetProperty(null, null), options => options.IgnoreArguments()); Assert.That(referenceDataSource.HasBusinessObjectChanged, Is.True); }
public void ClearsHasBusinessObjectChanged() { var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = MockRepository.GenerateStub <IBusinessObject>(); Assert.That(referenceDataSource.HasBusinessObjectChanged, Is.True); referenceDataSource.SaveValue(false); Assert.That(referenceDataSource.HasBusinessObjectChanged, Is.False); }
public void DoesNotRequireWriteBack_WithoutControls_ReturnsTrue() { var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); _referencedDataSourceStub.BusinessObjectClass.Stub(_ => _.RequiresWriteBack).Return(false); _referencePropertyStub.Stub(_ => _.IsReadOnly(Arg <IBusinessObject> .Is.Anything)).Return(true); // IsReadOnlyInDomain to ensure exit branch var result = referenceDataSource.SaveValue(false); Assert.That(result, Is.True); }
public void ReferencedPropertyNull_DoesNotSetBusinessObject_DoesNotClearHasBusinessObjectChanged() { var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, null); var expectedValue = MockRepository.GenerateStub <IBusinessObject>(); referenceDataSource.BusinessObject = expectedValue; referenceDataSource.LoadValue(false); Assert.That(referenceDataSource.BusinessObject, Is.SameAs(expectedValue)); Assert.That(referenceDataSource.HasBusinessObjectChanged, Is.True); }
public void ReferencedDataSourceBusinessObjectNull_SetsBusinessObjectNull() { _referencedDataSourceStub.BusinessObject = null; var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = MockRepository.GenerateStub <IBusinessObject>(); referenceDataSource.LoadValue(false); Assert.That(referenceDataSource.BusinessObject, Is.Null); }
public void ReferencedDataSourceBusinessObjectNull_DoesNotCreateDefaultValue() { _referencedDataSourceStub.BusinessObject = null; var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = null; referenceDataSource.LoadValue(false); _referencePropertyStub.AssertWasNotCalled(stub => stub.SupportsDefaultValue); _referencePropertyStub.AssertWasNotCalled(stub => stub.CreateDefaultValue(null), options => options.IgnoreArguments()); }
public void SavesValueIntoBoundObject_AndReturnsTrue() { var expectedValue = MockRepository.GenerateStub <IBusinessObject>(); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = expectedValue; var result = referenceDataSource.SaveValue(false); Assert.That(result, Is.True); _referencedDataSourceStub.BusinessObject.AssertWasCalled(stub => stub.SetProperty(_referencePropertyStub, expectedValue)); }
public void HasBusinessObjectChangedFalse_BusinessObjectNull_DoesNotSaveValueIntoBoundObject_AndReturnsTrue() { var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_referencePropertyStub)).Return(null); referenceDataSource.LoadValue(false); Assert.That(referenceDataSource.HasBusinessObjectChanged, Is.False); var result = referenceDataSource.SaveValue(false); Assert.That(result, Is.True); _referencedDataSourceStub.BusinessObject.AssertWasNotCalled(stub => stub.SetProperty(null, null), options => options.IgnoreArguments()); }
public void SupportsDefaultValueFalse_IsDefaultValueNotCalled() { var referencedObject = MockRepository.GenerateStub <IBusinessObject> (); _referencePropertyStub.Stub(stub => stub.SupportsDefaultValue).Return(false); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = referencedObject; referenceDataSource.SaveValue(false); _referencePropertyStub.AssertWasNotCalled(stub => stub.IsDefaultValue(null, null, null), options => options.IgnoreArguments()); }
public void SupportsDefaultValueFalse_DoesNotSetDefaultValue() { _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_referencePropertyStub)).Return(null); _referencePropertyStub.Stub(stub => stub.SupportsDefaultValue).Return(false); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.Mode = DataSourceMode.Edit; referenceDataSource.LoadValue(false); Assert.That(referenceDataSource.BusinessObject, Is.Null); _referencePropertyStub.AssertWasNotCalled(stub => stub.CreateDefaultValue(Arg <IBusinessObject> .Is.Anything)); }
public void LoadsValueFromBoundObject() { var expectedValue = MockRepository.GenerateStub <IBusinessObject>(); _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_referencePropertyStub)).Return(expectedValue); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = null; referenceDataSource.LoadValue(false); Assert.That(referenceDataSource.BusinessObject, Is.SameAs(expectedValue)); }
public void ReferencedDataSourceBusinessObjectNull_DoesNotLoadValueFromProperty() { var parentObjectStub = _referencedDataSourceStub.BusinessObject; _referencedDataSourceStub.BusinessObject = null; var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = MockRepository.GenerateStub <IBusinessObject> (); referenceDataSource.LoadValue(false); parentObjectStub.AssertWasNotCalled(stub => stub.GetProperty(null), options => options.IgnoreArguments()); }
public void BusinessObjectNull_IgnoresDefaultValueSemantics_AndReturnsTrue() { var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = null; var result = referenceDataSource.SaveValue(false); Assert.That(result, Is.True); _referencePropertyStub.AssertWasNotCalled(stub => stub.SupportsDefaultValue); _referencePropertyStub.AssertWasNotCalled(stub => stub.SupportsDelete); _referencePropertyStub.AssertWasNotCalled(stub => stub.IsDefaultValue(null, null, null), options => options.IgnoreArguments()); _referencePropertyStub.AssertWasNotCalled(stub => stub.Delete(null, null), options => options.IgnoreArguments()); _referencedDataSourceStub.BusinessObject.AssertWasCalled(stub => stub.SetProperty(_referencePropertyStub, null)); }
public void ClearsHasBusinessObjectChanged() { _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_referencePropertyStub)) .Return(MockRepository.GenerateStub <IBusinessObject>()); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = null; Assert.That(referenceDataSource.HasBusinessObjectChanged, Is.True); referenceDataSource.LoadValue(false); Assert.That(referenceDataSource.HasBusinessObjectChanged, Is.False); }
public void HasValueFromProperty_DoesNotSetDefaultValue() { _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_referencePropertyStub)) .Return(MockRepository.GenerateStub <IBusinessObject>()); _referencePropertyStub.Stub(stub => stub.SupportsDefaultValue).Return(true); _referencePropertyStub.Stub(stub => stub.CreateDefaultValue(_referencedDataSourceStub.BusinessObject)) .Return(MockRepository.GenerateStub <IBusinessObject> ()); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.Mode = DataSourceMode.Edit; referenceDataSource.LoadValue(false); Assert.That(referenceDataSource.BusinessObject, Is.Not.Null); }
public void PropertyIsReadOnly_DoesNotSaveValueIntoBoundObject() { var expectedValue = MockRepository.GenerateStub <IBusinessObject>(); _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_readOnlyReferencePropertyStub)).Return(expectedValue); _readOnlyReferencePropertyStub.ReferenceClass.Stub(stub => stub.RequiresWriteBack).Return(true); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _readOnlyReferencePropertyStub); referenceDataSource.LoadValue(false); Assert.That(referenceDataSource.HasBusinessObjectChanged, Is.False); Assert.That(() => referenceDataSource.SaveValue(false), Throws.Exception); _referencedDataSourceStub.BusinessObject.AssertWasNotCalled(stub => stub.SetProperty(null, null), options => options.IgnoreArguments()); }
public void IsDefaultValue_ClearsHasBusinessObjectChanged() { var referencedObject = MockRepository.GenerateStub <IBusinessObject> (); _referencePropertyStub.Stub(stub => stub.SupportsDefaultValue).Return(true); _referencePropertyStub.Stub(stub => stub.IsDefaultValue(null, null, null)).IgnoreArguments().Return(true); _referencePropertyStub.Stub(stub => stub.SupportsDelete).Return(true); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = referencedObject; referenceDataSource.SaveValue(false); Assert.That(referenceDataSource.HasBusinessObjectChanged, Is.False); }
public void ParentIsNull_DoesNotSaveValueIntoBoundObject_AndReturnsFalse() { var parentObjectStub = _referencedDataSourceStub.BusinessObject; _referencedDataSourceStub.BusinessObject = null; var expectedValue = MockRepository.GenerateStub <IBusinessObject> (); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = expectedValue; var result = referenceDataSource.SaveValue(false); Assert.That(result, Is.False); parentObjectStub.AssertWasNotCalled(stub => stub.SetProperty(null, null), options => options.IgnoreArguments()); }
public void SetsDefaultValue() { _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_referencePropertyStub)).Return(null); _referencePropertyStub.Stub(stub => stub.SupportsDefaultValue).Return(true); var expectedValue = MockRepository.GenerateStub <IBusinessObject>(); _referencePropertyStub.Stub(stub => stub.CreateDefaultValue(_referencedDataSourceStub.BusinessObject)).Return(expectedValue); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.Mode = DataSourceMode.Edit; referenceDataSource.LoadValue(false); Assert.That(referenceDataSource.BusinessObject, Is.SameAs(expectedValue)); }
public void ClearsHasBusinessObjectCreated() { _referencePropertyStub.Stub(stub => stub.SupportsDefaultValue).Return(true); _referencePropertyStub.Stub(stub => stub.CreateDefaultValue(_referencedDataSourceStub.BusinessObject)) .Return(MockRepository.GenerateStub <IBusinessObject> ()); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.Mode = DataSourceMode.Edit; referenceDataSource.LoadValue(false); Assert.That(referenceDataSource.HasBusinessObjectCreated, Is.True); referenceDataSource.SaveValue(false); Assert.That(referenceDataSource.HasBusinessObjectCreated, Is.False); }
public void PropertyIsReadOnly_SavesValuesForBoundControls_AndReturnsTrue() { var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _readOnlyReferencePropertyStub); var controlMock = MockRepository.GenerateMock <IBusinessObjectBoundEditableControl>(); controlMock.Stub(stub => stub.HasValidBinding).Return(true); referenceDataSource.Register(controlMock); controlMock.Expect(mock => mock.SaveValue(false)).Return(true); var result = referenceDataSource.SaveValue(false); Assert.That(result, Is.True); controlMock.VerifyAllExpectations(); }
public void IsDefaultValue_RequiresAllBoundControlsEmpty_ContainsOnlyEmtpyControls_AndReturnsTrue() { var referencedObject = MockRepository.GenerateStub <IBusinessObject> (); var firstPropertyStub = MockRepository.GenerateStub <IBusinessObjectProperty>(); var secondPropertyStub = MockRepository.GenerateStub <IBusinessObjectProperty> (); _referencePropertyStub.Stub(stub => stub.SupportsDefaultValue).Return(true); _referencePropertyStub .Stub( stub => stub.IsDefaultValue(_referencedDataSourceStub.BusinessObject, referencedObject, new[] { firstPropertyStub, secondPropertyStub })) .Return(true); _referencePropertyStub.Stub(stub => stub.SupportsDelete).Return(true); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.BusinessObject = referencedObject; var firstControlStub = MockRepository.GenerateStub <IBusinessObjectBoundControl> (); firstControlStub.Stub(stub => stub.HasValidBinding).Return(true); firstControlStub.Stub(stub => stub.HasValue).Return(false); firstControlStub.Property = firstPropertyStub; referenceDataSource.Register(firstControlStub); var secondControlStub = MockRepository.GenerateStub <IBusinessObjectBoundControl> (); secondControlStub.Stub(stub => stub.HasValidBinding).Return(true); secondControlStub.Stub(stub => stub.HasValue).Return(false); secondControlStub.Property = secondPropertyStub; referenceDataSource.Register(secondControlStub); var thirdControlStub = MockRepository.GenerateStub <IBusinessObjectBoundControl> (); thirdControlStub.Stub(stub => stub.HasValidBinding).Return(true); thirdControlStub.Stub(stub => stub.HasValue).Return(false); thirdControlStub.Property = firstPropertyStub; referenceDataSource.Register(thirdControlStub); var result = referenceDataSource.SaveValue(false); Assert.That(result, Is.True); _referencePropertyStub.AssertWasCalled(stub => stub.Delete(_referencedDataSourceStub.BusinessObject, referencedObject)); Assert.That(referenceDataSource.BusinessObject, Is.Null); Assert.That(referenceDataSource.HasBusinessObjectChanged, Is.False); }
public void PropertyIsReadWrite_IsDefaultValue_ClearsBusinessObject_AndReturnsTrue() { var referencedObject = MockRepository.GenerateStub <IBusinessObject> (); _referencePropertyStub.Stub(stub => stub.SupportsDefaultValue).Return(true); _referencePropertyStub.Stub(stub => stub.IsDefaultValue(null, null, null)).IgnoreArguments().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); Assert.That(referenceDataSource.BusinessObject, Is.Null); }
public void PropertyIsReadWrite_SavesValueIntoBoundObject_AndReturnsTrue() { var expectedValue = MockRepository.GenerateStub <IBusinessObject>(); _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_referencePropertyStub)).Return(expectedValue); _referencePropertyStub.ReferenceClass.Stub(stub => stub.RequiresWriteBack).Return(true); var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _referencePropertyStub); referenceDataSource.LoadValue(false); Assert.That(referenceDataSource.HasBusinessObjectChanged, Is.False); var result = referenceDataSource.SaveValue(false); Assert.That(result, Is.True); _referencedDataSourceStub.BusinessObject.AssertWasCalled(stub => stub.SetProperty(_referencePropertyStub, expectedValue)); }