From 9e15a88f4ae19e5b8658545439499bc26276d81a Mon Sep 17 00:00:00 2001 From: Filipe GP <4021025+Eastrall@users.noreply.github.com> Date: Fri, 12 May 2023 09:40:22 +0200 Subject: [PATCH] Add unit test case --- .../PropertyBuilderExtensionsTest.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/EntityFrameworkCore.DataEncryption.Test/PropertyBuilderExtensionsTest.cs b/test/EntityFrameworkCore.DataEncryption.Test/PropertyBuilderExtensionsTest.cs index d9a5b8f..11c1f20 100644 --- a/test/EntityFrameworkCore.DataEncryption.Test/PropertyBuilderExtensionsTest.cs +++ b/test/EntityFrameworkCore.DataEncryption.Test/PropertyBuilderExtensionsTest.cs @@ -36,7 +36,8 @@ public void PropertyShouldHaveEncryptionAnnotationsTest() Name = name, NameAsBytes = name, ExtraData = bytes, - ExtraDataAsBytes = bytes + ExtraDataAsBytes = bytes, + EmptyString = "" }; using var contextFactory = new DatabaseContextFactory(); @@ -52,6 +53,7 @@ public void PropertyShouldHaveEncryptionAnnotationsTest() AssertPropertyAnnotations(entityType.GetProperty(nameof(UserEntity.ExtraData)), true, StorageFormat.Base64); AssertPropertyAnnotations(entityType.GetProperty(nameof(UserEntity.ExtraDataAsBytes)), true, StorageFormat.Binary); AssertPropertyAnnotations(entityType.GetProperty(nameof(UserEntity.Id)), false, StorageFormat.Default); + AssertPropertyAnnotations(entityType.GetProperty(nameof(UserEntity.EmptyString)), true, StorageFormat.Base64); context.Users.Add(user); context.SaveChanges(); @@ -66,6 +68,7 @@ public void PropertyShouldHaveEncryptionAnnotationsTest() Assert.Equal(name, u.NameAsBytes); Assert.Equal(bytes, u.ExtraData); Assert.Equal(bytes, u.ExtraDataAsBytes); + Assert.Null(u.EmptyString); } } @@ -106,6 +109,9 @@ private class UserEntity // Encrypted as raw byte array. public byte[] ExtraDataAsBytes { get; set; } + + // Encrypt as Base64 string, but will be empty. + public string EmptyString { get; set; } } private class FluentDbContext : DbContext @@ -134,6 +140,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) userEntityBuilder.Property(x => x.NameAsBytes).IsRequired().HasColumnType("BLOB").IsEncrypted(StorageFormat.Binary); userEntityBuilder.Property(x => x.ExtraData).IsRequired().HasColumnType("TEXT").IsEncrypted(StorageFormat.Base64); userEntityBuilder.Property(x => x.ExtraDataAsBytes).IsRequired().HasColumnType("BLOB").IsEncrypted(StorageFormat.Binary); + userEntityBuilder.Property(x => x.EmptyString).IsRequired(false).HasColumnType("TEXT").IsEncrypted(StorageFormat.Base64); modelBuilder.UseEncryption(_encryptionProvider); }