public void DeserializeTheSameAsSqlServer(DateTimeOffset plaintext, byte scale) { Database.Insert(new SqlParameter("@parameter", SqlDbType.DateTimeOffset) { Value = plaintext, Scale = scale }); byte[] ciphertextBytes = Database.SelectCiphertext(SqlDbType.DateTimeOffset); byte[] plaintextBytes = deterministicEncryptionAlgorithm.Decrypt(ciphertextBytes); SqlDatetimeoffsetSerializer serializer = new SqlDatetimeoffsetSerializer(scale); DateTimeOffset expectedPlaintext = serializer.Deserialize(plaintextBytes); DateTimeOffset actualPlaintext = (DateTimeOffset)Database.SelectPlaintext(SqlDbType.DateTimeOffset); Assert.Equal(expectedPlaintext, actualPlaintext); }
public void SerializeTheSameAsSqlServer(DateTimeOffset plaintext, byte scale) { SqlDatetimeoffsetSerializer serializer = new SqlDatetimeoffsetSerializer(scale); byte[] serializedPlaintext = serializer.Serialize(plaintext); byte[] expectedCiphertext = deterministicEncryptionAlgorithm.Encrypt(serializedPlaintext); Database.Insert(new SqlParameter("@parameter", SqlDbType.DateTimeOffset) { Value = plaintext, Scale = scale }); byte[] actualCiphertext = Database.SelectCiphertext(SqlDbType.DateTimeOffset); Assert.Equal(expectedCiphertext, actualCiphertext); }
public void ThrowWhenPropertySizeOutOfRange(int scale) { SqlDatetimeoffsetSerializer serializer = new SqlDatetimeoffsetSerializer(); Assert.Throws <ArgumentOutOfRangeException>(() => serializer.Scale = scale); }
public void ShouldThrowIfDeserializingLessThanTenBytes(byte[] data) { SqlDatetimeoffsetSerializer serializer = new SqlDatetimeoffsetSerializer(); Assert.Throws <ArgumentOutOfRangeException>(() => serializer.Deserialize(data)); }
public void ShouldThrowIfDeserializingNull() { SqlDatetimeoffsetSerializer serializer = new SqlDatetimeoffsetSerializer(); Assert.Throws <ArgumentNullException>(() => serializer.Deserialize(null)); }