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