コード例 #1
0
        public void GivenAnAggregateAndNoInvariantsThenNoExceptionIsThrown()
        {
            var context   = new SerializableMessage();
            var request   = new TestableRequest(context);
            var aggregate = new SerializableAggregateRoot();

            request.Satisfies(aggregate);
        }
コード例 #2
0
        public void GivenAFactoryAndNoInvariantsThenTheFactoryIsNotInvoked()
        {
            var  context    = new SerializableMessage();
            var  request    = new TestableRequest(context);
            bool wasInvoked = false;

            DomainException Factory(IEnumerable <string> explainations)
            {
                wasInvoked = true;

                return(default !);
コード例 #3
0
        public void GivenAnAggregateAndSeriesOfPassingInvariantsThenNoExceptionIsThrown()
        {
            var context   = new SerializableMessage();
            var request   = new TestableRequest(context);
            var aggregate = new SerializableAggregateRoot();

            request.Satisfies(
                aggregate,
                (request => true, "Irrelevant #1"),
                (request => true, "Irrelevant #2"));
        }
        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);
        }
コード例 #5
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);
        }