ConfigTest.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. namespace MeloongCore.Tests;
  2. public class ConfigTest : TestWithFolder {
  3. [Test]
  4. public async Task JsonConfigProvider_EncryptedReadWrite() {
  5. var filePath = Path.Combine(tempFolder, "config.json");
  6. var provider = new JsonConfigProvider(filePath);
  7. provider.SetToCache("token", "plain token", encrypted: true);
  8. provider.Save();
  9. await Assert.That(FileUtils.ReadAsString(filePath).Contains("plain token")).IsFalse();
  10. await Assert.That(provider.Read("token", encrypted: true)).IsEqualTo("plain token");
  11. await Assert.That(provider.DecryptedContent.TryGetValue("token", out var decrypted) && decrypted == "plain token").IsTrue();
  12. }
  13. [Test]
  14. public async Task JsonConfigProvider_ClearCache() {
  15. var filePath = Path.Combine(tempFolder, "config.json");
  16. var provider = new JsonConfigProvider(filePath);
  17. provider.SetToCache("token", "old token", encrypted: true);
  18. provider.Save();
  19. await Assert.That(provider.Read("token", encrypted: true)).IsEqualTo("old token");
  20. var secondProvider = new JsonConfigProvider(filePath);
  21. secondProvider.SetToCache("token", "new token", encrypted: true);
  22. secondProvider.Save();
  23. provider.ClearCache();
  24. await Assert.That(provider.DecryptedContent.IsEmpty).IsTrue();
  25. await Assert.That(provider.Read("token", encrypted: true)).IsEqualTo("new token");
  26. }
  27. }