示例#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 SetUp()
 {
     _referencedDataSourceStub = MockRepository.GenerateStub <IBusinessObjectDataSource>();
     _referencedDataSourceStub.BusinessObject = MockRepository.GenerateStub <IBusinessObject>();
     _referencedDataSourceStub.Stub(_ => _.BusinessObjectClass).Return(MockRepository.GenerateStub <IBusinessObjectClass>());
     _referencedDataSourceStub.Mode = DataSourceMode.Edit;
     _referencePropertyStub         = MockRepository.GenerateStub <IBusinessObjectReferenceProperty>();
     _referencePropertyStub.Stub(_ => _.ReflectedClass).Return(MockRepository.GenerateStub <IBusinessObjectClass>());
     _referencePropertyStub.Stub(stub => stub.ReferenceClass).Return(MockRepository.GenerateStub <IBusinessObjectClass>());
     _readOnlyReferencePropertyStub = MockRepository.GenerateStub <IBusinessObjectReferenceProperty>();
     _readOnlyReferencePropertyStub.Stub(_ => _.ReflectedClass).Return(MockRepository.GenerateStub <IBusinessObjectClass>());
     _readOnlyReferencePropertyStub.Stub(stub => stub.ReferenceClass).Return(MockRepository.GenerateStub <IBusinessObjectClass>());
     _readOnlyReferencePropertyStub
     .Stub(stub => stub.IsReadOnly(Arg <IBusinessObject> .Is.Anything))
     .Return(true);
 }
示例#3
0
 public void SetUp()
 {
     _referencedDataSourceStub = MockRepository.GenerateStub <IBusinessObjectDataSource>();
     _referencedDataSourceStub.BusinessObject = MockRepository.GenerateStub <IBusinessObject>();
     _referencedDataSourceStub.Stub(_ => _.BusinessObjectClass).Return(MockRepository.GenerateStub <IBusinessObjectClass>());
     _referencePropertyStub = MockRepository.GenerateStub <IBusinessObjectReferenceProperty> ();
     _referencePropertyStub.Stub(_ => _.ReflectedClass).Return(MockRepository.GenerateStub <IBusinessObjectClass>());
 }
示例#4
0
        public override void SetUp()
        {
            base.SetUp();

            _referencedDataSourceStub = MockRepository.GenerateStub <IBusinessObjectDataSource> ();
            _referencedDataSourceStub.BusinessObject = MockRepository.GenerateStub <IBusinessObject> ();
            _referencedDataSourceStub.Mode           = DataSourceMode.Edit;
            _referencePropertyStub = MockRepository.GenerateStub <IBusinessObjectReferenceProperty> ();
            _referencePropertyStub.Stub(stub => stub.ReferenceClass).Return(MockRepository.GenerateStub <IBusinessObjectClass> ());
            _referencePropertyStub.Stub(stub => stub.ReflectedClass).Return(MockRepository.GenerateStub <IBusinessObjectClass> ());

            _dataSourceControl                = new BusinessObjectReferenceDataSourceControl();
            _dataSourceControl.DataSource     = _referencedDataSourceStub;
            _dataSourceControl.Property       = _referencePropertyStub;
            _dataSourceControl.BusinessObject = MockRepository.GenerateStub <IBusinessObject> ();

            Assert.That(_dataSourceControl.IsReadOnly, Is.False);
        }
示例#5
0
        public void SupportsDefaultValue_True_AllBoundControlsEmpty_NotAllBoundControlsValid_ReturnsTrue()
        {
            _referencePropertyStub.Stub(stub => stub.SupportsDefaultValue).Return(true);
            _referencePropertyStub.Stub(stub => stub.IsDefaultValue(null, null, null)).IgnoreArguments().Return(true);

            var firstControlStub = MockRepository.GenerateMock <IBusinessObjectBoundControl, IValidatableControl> ();

            firstControlStub.Stub(stub => stub.HasValidBinding).Return(true);
            firstControlStub.Stub(stub => stub.HasValue).Return(false);
            ((IValidatableControl)firstControlStub).Stub(stub => stub.Validate()).Return(true);
            _dataSourceControl.Register(firstControlStub);

            var secondControlStub = MockRepository.GenerateMock <IBusinessObjectBoundControl, IValidatableControl> ();

            secondControlStub.Stub(stub => stub.HasValidBinding).Return(true);
            secondControlStub.Stub(stub => stub.HasValue).Return(false);
            ((IValidatableControl)secondControlStub).Stub(stub => stub.Validate()).Return(false);
            _dataSourceControl.Register(secondControlStub);

            Assert.That(_dataSourceControl.Validate(), Is.True);
        }
示例#6
0
        public void PropertyIsReadOnly_ThrowsInvalidOperationException()
        {
            var expectedValue = MockRepository.GenerateStub <IBusinessObject>();

            _referencedDataSourceStub.BusinessObject.Stub(stub => stub.GetProperty(_readOnlyReferencePropertyStub)).Return(expectedValue);
            _readOnlyReferencePropertyStub.ReferenceClass.Stub(stub => stub.RequiresWriteBack).Return(true);
            _readOnlyReferencePropertyStub.Stub(stub => stub.Identifier).Return("TestProperty");

            var referenceDataSource = new TestableBusinessObjectReferenceDataSource(_referencedDataSourceStub, _readOnlyReferencePropertyStub);

            referenceDataSource.ID = "TestDataSource";
            referenceDataSource.LoadValue(false);
            Assert.That(referenceDataSource.HasBusinessObjectChanged, Is.False);

            Assert.That(
                () => referenceDataSource.SaveValue(false),
                Throws.InvalidOperationException.With.Message.EqualTo(
                    "The business object of the TestDataSource could not be saved into the domain model "
                    + "because the property 'TestProperty' is read only."));

            _referencedDataSourceStub.BusinessObject.AssertWasNotCalled(stub => stub.SetProperty(null, null), options => options.IgnoreArguments());
        }
示例#7
0
        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);
        }