public void UsingTheConstructorWithMessageReturnsExceptionWithExpectedProperties()
        {
            var sut = new AggregateNotFoundException(AggregateIdentifier, AggregateType, "Message");

            Assert.That(sut.Identifier, Is.EqualTo(AggregateIdentifier));
            Assert.That(sut.ClrType, Is.EqualTo(AggregateType));
            Assert.That(sut.Message, Is.EqualTo("Message"));
            Assert.That(sut.InnerException, Is.Null);
        }
        public void UsingTheConstructorWithMessageReturnsExceptionWithExpectedProperties()
        {
            var sut = new AggregateNotFoundException(AggregateIdentifier, AggregateType, "Message");

            Assert.That(sut.Identifier, Is.EqualTo(AggregateIdentifier));
            Assert.That(sut.ClrType, Is.EqualTo(AggregateType));
            Assert.That(sut.Message, Is.EqualTo("Message"));
            Assert.That(sut.InnerException, Is.Null);
        }
        public void UsingTheDefaultContstructorReturnsExceptionWithExpectedProperties()
        {
            var sut = new AggregateNotFoundException(AggregateIdentifier, AggregateType);

            Assert.That(sut.Identifier, Is.EqualTo(AggregateIdentifier));
            Assert.That(sut.ClrType, Is.EqualTo(AggregateType));
            Assert.That(sut.Message, Is.EqualTo(
                            "The Object aggregate with identifier " + AggregateIdentifier +
                            " could not be found. Please make sure the call site is indeed passing in an identifier for an Object aggregate."));
            Assert.That(sut.InnerException, Is.Null);
        }
        public void UsingTheDefaultContstructorReturnsExceptionWithExpectedProperties()
        {
            var sut = new AggregateNotFoundException(AggregateIdentifier, AggregateType);

            Assert.That(sut.Identifier, Is.EqualTo(AggregateIdentifier));
            Assert.That(sut.ClrType, Is.EqualTo(AggregateType));
            Assert.That(sut.Message, Is.EqualTo(
                "The Object aggregate with identifier " + AggregateIdentifier +
                " could not be found. Please make sure the call site is indeed passing in an identifier for an Object aggregate."));
            Assert.That(sut.InnerException, Is.Null);
        }
        public void CanBeSerialized()
        {
            var innerException = new Exception("InnerMessage");
            var sut            = new AggregateNotFoundException(AggregateIdentifier, AggregateType, "Message", innerException);

            using (var stream = new MemoryStream())
            {
                var formatter = new BinaryFormatter();
                formatter.Serialize(stream, sut);
                stream.Position = 0;
                var result = (AggregateNotFoundException)formatter.Deserialize(stream);

                Assert.That(result.Identifier, Is.EqualTo(AggregateIdentifier));
                Assert.That(result.ClrType, Is.EqualTo(AggregateType));
                Assert.That(result.Message, Is.EqualTo(result.Message));
                Assert.That(result.InnerException.Message, Is.EqualTo(result.InnerException.Message));
            }
        }
        public void CanBeSerialized()
        {
            var innerException = new Exception("InnerMessage");
            var sut = new AggregateNotFoundException(AggregateIdentifier, AggregateType, "Message", innerException);

            using (var stream = new MemoryStream())
            {
                var formatter = new BinaryFormatter();
                formatter.Serialize(stream, sut);
                stream.Position = 0;
                var result = (AggregateNotFoundException) formatter.Deserialize(stream);

                Assert.That(sut.Identifier, Is.EqualTo(AggregateIdentifier));
                Assert.That(sut.Type, Is.EqualTo(AggregateType));
                Assert.That(sut.Message, Is.EqualTo(result.Message));
                Assert.That(sut.InnerException.Message, Is.EqualTo(result.InnerException.Message));
            }
        }