CacheableKeyRingTests.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // Copyright (c) .NET Foundation. All rights reserved.
  2. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
  3. using System;
  4. using System.Threading;
  5. using Microsoft.AspNetCore.DataProtection.KeyManagement.Internal;
  6. using Moq;
  7. using Xunit;
  8. namespace Microsoft.AspNetCore.DataProtection.KeyManagement
  9. {
  10. public class CacheableKeyRingTests
  11. {
  12. [Fact]
  13. public void IsValid_NullKeyRing_ReturnsFalse()
  14. {
  15. Assert.False(CacheableKeyRing.IsValid(null, DateTime.UtcNow));
  16. }
  17. [Fact]
  18. public void IsValid_CancellationTokenTriggered_ReturnsFalse()
  19. {
  20. // Arrange
  21. var keyRing = new Mock<IKeyRing>().Object;
  22. DateTimeOffset now = DateTimeOffset.UtcNow;
  23. var cts = new CancellationTokenSource();
  24. var cacheableKeyRing = new CacheableKeyRing(cts.Token, now.AddHours(1), keyRing);
  25. // Act & assert
  26. Assert.True(CacheableKeyRing.IsValid(cacheableKeyRing, now.UtcDateTime));
  27. cts.Cancel();
  28. Assert.False(CacheableKeyRing.IsValid(cacheableKeyRing, now.UtcDateTime));
  29. }
  30. [Fact]
  31. public void IsValid_Expired_ReturnsFalse()
  32. {
  33. // Arrange
  34. var keyRing = new Mock<IKeyRing>().Object;
  35. DateTimeOffset now = DateTimeOffset.UtcNow;
  36. var cts = new CancellationTokenSource();
  37. var cacheableKeyRing = new CacheableKeyRing(cts.Token, now.AddHours(1), keyRing);
  38. // Act & assert
  39. Assert.True(CacheableKeyRing.IsValid(cacheableKeyRing, now.UtcDateTime));
  40. Assert.False(CacheableKeyRing.IsValid(cacheableKeyRing, now.AddHours(1).UtcDateTime));
  41. }
  42. [Fact]
  43. public void KeyRing_Prop()
  44. {
  45. // Arrange
  46. var keyRing = new Mock<IKeyRing>().Object;
  47. var cacheableKeyRing = new CacheableKeyRing(CancellationToken.None, DateTimeOffset.Now, keyRing);
  48. // Act & assert
  49. Assert.Same(keyRing, cacheableKeyRing.KeyRing);
  50. }
  51. }
  52. }