Exemple #1
0
        public void CryptoPropertyIsSetFromConstructorParameter()
        {
            var mockCrypto = new Mock <ICrypto>();

            var encryptionMechanism = new CryptoEncryptionMechanism(mockCrypto.Object);

            encryptionMechanism.Crypto.Should().BeSameAs(mockCrypto.Object);
        }
        public void CryptoPropertyIsSetFromConstructorParameter()
        {
            var mockCrypto = new Mock <ICrypto>();

            var encryptionMechanism = new CryptoEncryptionMechanism(mockCrypto.Object);

            Assert.AreEqual(encryptionMechanism.Crypto, mockCrypto.Object);
        }
Exemple #3
0
        public void DecryptCallsCryptoGetDecryptorWhenSerializationStateIsEmpty()
        {
            var mockCrypto    = new Mock <ICrypto>();
            var mockDecryptor = new Mock <IDecryptor>();

            mockCrypto.Setup(c => c.GetDecryptor(It.IsAny <string>())).Returns(() => mockDecryptor.Object);

            var encryptionMechanism = new CryptoEncryptionMechanism(mockCrypto.Object);

            var credentialName     = "foobar";
            var serializationState = new SerializationState();

            encryptionMechanism.Decrypt("foo", credentialName, serializationState);

            mockCrypto.Verify(c => c.GetDecryptor(It.Is <string>(obj => obj == credentialName)), Times.Once());
        }
        public void GetEncryptorIsNotCalledWhenSerializationStateIsNotEmpty()
        {
            var mockCrypto    = new Mock <ICrypto>();
            var mockEncryptor = new Mock <IEncryptor>();

            mockCrypto.Setup(c => c.GetEncryptor(It.IsAny <string>())).Returns(() => mockEncryptor.Object);

            var encryptionMechanism = new CryptoEncryptionMechanism(mockCrypto.Object);

            const string credentialName     = "foobar";
            var          serializationState = new SerializationState();

            serializationState.Get(() => mockEncryptor.Object);

            encryptionMechanism.Encrypt("foo", credentialName, serializationState);

            mockCrypto.Verify(c => c.GetEncryptor(It.Is <string>(obj => obj == credentialName)), Times.Never());
        }
        public void TheCachedEncryptorReturnsTheReturnValue()
        {
            var mockCrypto    = new Mock <ICrypto>();
            var mockEncryptor = new Mock <IEncryptor>();

            mockCrypto.Setup(c => c.GetEncryptor(It.IsAny <string>())).Returns(() => mockEncryptor.Object);
            mockEncryptor.Setup(e => e.Encrypt(It.IsAny <string>())).Returns("bar");

            var encryptionMechanism = new CryptoEncryptionMechanism(mockCrypto.Object);

            var credentialName     = "foobar";
            var serializationState = new SerializationState();

            serializationState.Get(() => mockEncryptor.Object);

            var encrypted = encryptionMechanism.Encrypt("foo", credentialName, serializationState);

            Assert.AreEqual(encrypted, "bar");
        }
Exemple #6
0
        public void TheCachedEncryptorReturnsTheReturnValue()
        {
            var mockCrypto    = new Mock <ICrypto>();
            var mockEncryptor = new Mock <IEncryptor>();

            mockCrypto.Setup(c => c.GetEncryptor(It.IsAny <string>())).Returns(() => mockEncryptor.Object);
            mockEncryptor.Setup(e => e.Encrypt(It.IsAny <string>())).Returns("bar");

            var encryptionMechanism = new CryptoEncryptionMechanism(mockCrypto.Object);

            var credentialName     = "foobar";
            var serializationState = new SerializationState();

            // Force the mock encryptor to be cached in the serialization state.
            serializationState.Get(() => mockEncryptor.Object);

            var encrypted = encryptionMechanism.Encrypt("foo", credentialName, serializationState);

            encrypted.Should().Be("bar");
        }
 /// <summary>
 /// Sets the value of the <see cref="EncryptionMechanism"/> property.
 /// </summary>
 /// <param name="cryptoEncryptionMechanism">The new value of the <see cref="EncryptionMechanism"/> property.</param>
 /// <remarks>
 /// Each method of the <see cref="SerializingCrypto"/> class ultimately uses the value
 /// of this property and calls one of its methods.
 /// </remarks>
 public static void SetEncryptionMechanism(CryptoEncryptionMechanism cryptoEncryptionMechanism)
 {
     _encryptionMechanism.SetValue(() => cryptoEncryptionMechanism ?? GetDefaultCryptoEncryptionMechanism());
 }