public void ValidatePersistableData_IntegrationTest_PropertyOk()
        {
            using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope())
            {
                var person = Person.NewObject();
                person.Name = "Not Null";

                var persistableData = PersistableDataObjectMother.Create(ClientTransaction.Current, person);
                Assert.That(() => _validator.Validate(ClientTransaction.Current, persistableData), Throws.Nothing);
            }
        }
        public void Validate_IntegrationTest_RelationsOk()
        {
            using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope())
            {
                var orderTicket = OrderTicket.NewObject();
                orderTicket.Order = Order.NewObject();

                var persistableData = PersistableDataObjectMother.Create(ClientTransaction.Current, orderTicket);
                Assert.That(() => _validator.Validate(ClientTransaction.Current, persistableData), Throws.Nothing);
            }
        }
示例#3
0
        public void RaiseTransactionCommitValidateEvent()
        {
            var data1         = PersistableDataObjectMother.Create();
            var data2         = PersistableDataObjectMother.Create();
            var committedData = Array.AsReadOnly(new[] { data1, data2 });

            CheckEventWithListenersFirst(
                s => s.RaiseTransactionCommitValidateEvent(committedData),
                l => l.TransactionCommitValidate(_clientTransaction, committedData),
                x => x.CommitValidate(_clientTransaction, committedData));
        }
        public void Validate_IntegrationTest_RelationsNotOk()
        {
            using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope())
            {
                var orderTicket = OrderTicket.NewObject();

                var persistableData = PersistableDataObjectMother.Create(ClientTransaction.Current, orderTicket);
                Assert.That(
                    () => _validator.Validate(ClientTransaction.Current, persistableData),
                    Throws.TypeOf <MandatoryRelationNotSetException>().With.Message.Matches(
                        @"Mandatory relation property 'Remotion\.Data\.DomainObjects\.UnitTests\.TestDomain\.OrderTicket\.Order' of domain object "
                        + @"'OrderTicket|.*|System\.Guid' cannot be null."));
            }
        }
示例#5
0
        public void ValidatePersistableData_IntegrationTest_PropertyWithValueOk()
        {
            using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope())
            {
                var person = ClassWithAllDataTypes.NewObject();
                person.BinaryProperty                 = new byte[10];
                person.NullableBinaryProperty         = new byte[1000000];
                person.StringProperty                 = "value";
                person.StringPropertyWithoutMaxLength = "value";

                var persistableData = PersistableDataObjectMother.Create(ClientTransaction.Current, person);
                Assert.That(() => _validator.Validate(ClientTransaction.Current, persistableData), Throws.Nothing);
            }
        }
        public void ValidatePersistableData_IntegrationTest_PropertyNotOk()
        {
            using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope())
            {
                var person = Person.NewObject();
                person.Name = null;

                var persistableData = PersistableDataObjectMother.Create(ClientTransaction.Current, person);
                Assert.That(
                    () => _validator.Validate(ClientTransaction.Current, persistableData),
                    Throws.TypeOf <PropertyValueNotSetException>().With.Message.Matches(
                        @"Not-nullable property 'Remotion\.Data\.DomainObjects\.UnitTests\.TestDomain\.Person\.Name' of domain object "
                        + @"'Person|.*|System\.Guid' cannot be null."));
            }
        }
        public void ValidatePersistableData_IntegrationTest_PropertyNotOk()
        {
            using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope())
            {
                var person = Person.NewObject();
                person.Name = new string ('c', 101);

                var persistableData = PersistableDataObjectMother.Create(ClientTransaction.Current, person);
                Assert.That(
                    () => _validator.Validate(ClientTransaction.Current, persistableData),
                    Throws.TypeOf <PropertyValueTooLongException>().With.Message.Matches(
                        @"Value for property 'Remotion\.Data\.DomainObjects\.UnitTests\.TestDomain\.Person\.Name' "
                        + @"of domain object ''Person|.*|System\.Guid'' is too long. Maximum number of characters: 100."));
            }
        }
        public void CommitValidate()
        {
            var data1 = PersistableDataObjectMother.Create();
            var data2 = PersistableDataObjectMother.Create();

            var transaction = ClientTransaction.CreateRootTransaction();

            var validatorMock = MockRepository.GenerateStrictMock <IPersistableDataValidator>();
            var extension     = new CommitValidationClientTransactionExtension(validatorMock);

            validatorMock.Expect(mock => mock.Validate(transaction, data1));
            validatorMock.Expect(mock => mock.Validate(transaction, data2));
            validatorMock.Replay();

            extension.CommitValidate(transaction, Array.AsReadOnly(new[] { data1, data2 }));

            validatorMock.VerifyAllExpectations();
        }
示例#9
0
        public void ValidatePersistableData_IntegrationTest_PropertyNotOk()
        {
            using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope())
            {
                var person = ClassWithAllDataTypes.NewObject();
                person.BinaryProperty                 = new byte[10];
                person.NullableBinaryProperty         = new byte[1000001];
                person.StringProperty                 = "value";
                person.StringPropertyWithoutMaxLength = "value";

                var persistableData = PersistableDataObjectMother.Create(ClientTransaction.Current, person);
                Assert.That(
                    () => _validator.Validate(ClientTransaction.Current, persistableData),
                    Throws.TypeOf <PropertyValueTooLongException>().With.Message.Matches(
                        @"Value for property 'Remotion\.Data\.DomainObjects\.UnitTests\.TestDomain\.ClassWithAllDataTypes\.NullableBinaryProperty' "
                        + @"of domain object ''ClassWithAllDataTypes|.*|System\.Guid'' is too long. Maximum size: 1000001."));
            }
        }