EphemeralXmlRepositoryTests.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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.Xml.Linq;
  5. using Xunit;
  6. namespace Microsoft.AspNetCore.DataProtection.Repositories
  7. {
  8. public class EphemeralXmlRepositoryTests
  9. {
  10. [Fact]
  11. public void GetAllElements_Empty()
  12. {
  13. // Arrange
  14. var repository = new EphemeralXmlRepository(null);
  15. // Act & assert
  16. Assert.Empty(repository.GetAllElements());
  17. }
  18. [Fact]
  19. public void Store_Then_Get()
  20. {
  21. // Arrange
  22. var element1 = XElement.Parse(@"<element1 />");
  23. var element2 = XElement.Parse(@"<element1 />");
  24. var element3 = XElement.Parse(@"<element1 />");
  25. var repository = new EphemeralXmlRepository(null);
  26. // Act & assert
  27. repository.StoreElement(element1, "Invalid friendly name."); // nobody should care about the friendly name
  28. repository.StoreElement(element2, "abcdefg");
  29. Assert.Equal(new[] { element1, element2 }, repository.GetAllElements(), XmlAssert.EqualityComparer);
  30. repository.StoreElement(element3, null);
  31. Assert.Equal(new[] { element1, element2, element3 }, repository.GetAllElements(), XmlAssert.EqualityComparer);
  32. }
  33. }
  34. }