public void TrueShouldBeReturned()
            {
                var typeConverter = new DbEncryptedStringTypeConverter(
                    new Mock<ISymmetricAlgorithmProvider>().Object);

                Assert.True(typeConverter.CanConvert(typeof(DbEncryptedString)));
            }
            public void AMicroLiteExceptionShouldBeThrown()
            {
                var typeConverter = new DbEncryptedStringTypeConverter(
                    new Mock<ISymmetricAlgorithmProvider>().Object);

                var exception = Assert.Throws<MicroLiteException>(
                    () => typeConverter.ConvertFromDbValue("foo", typeof(DbEncryptedString)));

                Assert.Equal(ExceptionMessages.DbEncryptedStringTypeConverter_CipherTextInvalid, exception.Message);
            }
            public void AnArgumentNullExceptionShouldBeThrown()
            {
                var typeConverter = new DbEncryptedStringTypeConverter(
                    new Mock<ISymmetricAlgorithmProvider>().Object);

                var exception = Assert.Throws<ArgumentNullException>(
                    () => typeConverter.ConvertFromDbValue("foo", null));

                Assert.Equal("type", exception.ParamName);
            }
            public WhenCallingConvertFromDbValue_WithDbNull()
            {
                var typeConverter = new DbEncryptedStringTypeConverter(new Mock<ISymmetricAlgorithmProvider>().Object);

                this.result = (DbEncryptedString)typeConverter.ConvertFromDbValue(DBNull.Value, typeof(DbEncryptedString));
            }
            public WhenCallingConvertToDbValueWithReader()
            {
                var mockAlgorithmProvider = new Mock<ISymmetricAlgorithmProvider>();
                mockAlgorithmProvider.Setup(x => x.CreateAlgorithm()).Returns(() =>
                {
#if!NET_3_5
                    var algorithm = SymmetricAlgorithm.Create("AesManaged");
#else
                    var algorithm = SymmetricAlgorithm.Create("Rijndael");
#endif
                    algorithm.Key = Encoding.ASCII.GetBytes("bru$3atheM-pey+=!a5ebr7d6Tru@E?4");

                    return algorithm;
                });

                this.typeConverter = new DbEncryptedStringTypeConverter(mockAlgorithmProvider.Object);
                this.encrypted = (string)this.typeConverter.ConvertToDbValue(this.source, typeof(DbEncryptedString));
            }
 public WhenCallingConvertToDbValue_WithAnEmptyValue()
 {
     var typeConverter = new DbEncryptedStringTypeConverter(new Mock<ISymmetricAlgorithmProvider>().Object);
     this.result = (string)typeConverter.ConvertToDbValue(string.Empty, typeof(DbEncryptedString));
 }
            public WhenCallingConvertFromDbValueWithReader_WithDbNull()
            {
                var typeConverter = new DbEncryptedStringTypeConverter(new Mock<ISymmetricAlgorithmProvider>().Object);

                this.mockReader.Setup(x => x.IsDBNull(0)).Returns(true);
                this.result = (DbEncryptedString)typeConverter.ConvertFromDbValue(this.mockReader.Object, 0, typeof(DbEncryptedString));
            }
            public void AMicroLiteExceptionShouldBeThrown()
            {
                var typeConverter = new DbEncryptedStringTypeConverter(
                    new Mock<ISymmetricAlgorithmProvider>().Object);

                var mockReader = new Mock<IDataReader>();
                mockReader.Setup(x => x.IsDBNull(0)).Returns(false);
                mockReader.Setup(x => x.GetString(0)).Returns("foo");

                var exception = Assert.Throws<MicroLiteException>(
                    () => typeConverter.ConvertFromDbValue(mockReader.Object, 0, typeof(DbEncryptedString)));

                Assert.Equal(ExceptionMessages.DbEncryptedStringTypeConverter_CipherTextInvalid, exception.Message);
            }