public void GivenAnInstanceThenAllPropertiesAreSerialized()
        {
            var context   = new SerializableMessage();
            var request   = new TestableRequest(context);
            var aggregate = new SerializableAggregateRoot();

            AggregateInvariantsNotSatisfiedDomainException original = Assert.Throws <AggregateInvariantsNotSatisfiedDomainException>(
                () => request.Satisfies(aggregate, (request => false, "Irrelevant #1")));

            AggregateInvariantsNotSatisfiedDomainException deserialized = original.Clone();

            Assert.NotSame(original, deserialized);
            Assert.Equal(original.Aggregate, deserialized.Aggregate);
            Assert.Equal(original.Explainations, deserialized.Explainations);
        }
Пример #2
0
        public void GivenAnAggregateAndSeriesOfFailingInvariantsThenAnAggregateInvariantsNotSatisfiedDomainExceptionIsThrownThatContainsTheExplainations()
        {
            const string ExpectedMessage1   = "Expected #1";
            const string ExpectedMessage2   = "Expected #2";
            const string IrrelevantMessage1 = "Irrelevant #1";
            const string IrrelevantMessage2 = "Irrelevant #2";

            var context   = new SerializableMessage();
            var request   = new TestableRequest(context);
            var aggregate = new SerializableAggregateRoot();

            AggregateInvariantsNotSatisfiedDomainException exception = Assert.Throws <AggregateInvariantsNotSatisfiedDomainException>(
                () => request.Satisfies(
                    aggregate,
                    (request => false, ExpectedMessage1),
                    (request => true, IrrelevantMessage1),
                    (request => false, ExpectedMessage2),
                    (request => true, IrrelevantMessage2)));

            Assert.Contains(ExpectedMessage1, exception.Message);
            Assert.Contains(ExpectedMessage2, exception.Message);
            Assert.DoesNotContain(IrrelevantMessage1, exception.Message);
            Assert.DoesNotContain(IrrelevantMessage2, exception.Message);
        }