示例#1
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());
        }
示例#2
0
        public void GetDecryptorIsNotCalledWhenSerializationStateIsNotEmpty()
        {
            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();

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

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

            mockCrypto.Verify(c => c.GetDecryptor(It.Is <string>(obj => obj == credentialName)), Times.Never());
        }
        public void TheCachedDecryptorReturnsTheReturnValue()
        {
            var mockCrypto    = new Mock <ICrypto>();
            var mockDecryptor = new Mock <IDecryptor>();

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

            var encryptionMechanism = new CryptoEncryptionMechanism(mockCrypto.Object);

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

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

            var decrypted = encryptionMechanism.Decrypt("foo", credentialName, serializationState);

            Assert.AreEqual(decrypted, "bar");
        }
示例#4
0
        public void TheCachedDecryptorReturnsTheReturnValue()
        {
            var mockCrypto    = new Mock <ICrypto>();
            var mockDecryptor = new Mock <IDecryptor>();

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

            var encryptionMechanism = new CryptoEncryptionMechanism(mockCrypto.Object);

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

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

            var decrypted = encryptionMechanism.Decrypt("foo", credentialName, serializationState);

            decrypted.Should().Be("bar");
        }