public void GivenAnAggregateAndNoInvariantsThenNoExceptionIsThrown() { var context = new SerializableMessage(); var request = new TestableRequest(context); var aggregate = new SerializableAggregateRoot(); request.Satisfies(aggregate); }
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); }
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); }