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 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"); }
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"); }