2
0

DataProtectionUtilityExtensionsTests.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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 Microsoft.AspNetCore.DataProtection.Infrastructure;
  5. using Microsoft.AspNetCore.Hosting;
  6. using Moq;
  7. using Xunit;
  8. namespace Microsoft.AspNetCore.DataProtection
  9. {
  10. public class DataProtectionUtilityExtensionsTests
  11. {
  12. [Theory]
  13. [InlineData(" discriminator", "app-path ", "discriminator")] // normalized trim
  14. [InlineData("", "app-path", null)] // app discriminator not null -> overrides app base path
  15. [InlineData(null, "app-path ", "app-path")] // normalized trim
  16. [InlineData(null, " ", null)] // normalized whitespace -> null
  17. [InlineData(null, null, null)] // nothing provided at all
  18. public void GetApplicationUniqueIdentifier(string appDiscriminator, string appBasePath, string expected)
  19. {
  20. // Arrange
  21. var mockAppDiscriminator = new Mock<IApplicationDiscriminator>();
  22. mockAppDiscriminator.Setup(o => o.Discriminator).Returns(appDiscriminator);
  23. var mockEnvironment = new Mock<IHostingEnvironment>();
  24. mockEnvironment.Setup(o => o.ContentRootPath).Returns(appBasePath);
  25. var mockServiceProvider = new Mock<IServiceProvider>();
  26. mockServiceProvider.Setup(o => o.GetService(typeof(IApplicationDiscriminator))).Returns(mockAppDiscriminator.Object);
  27. mockServiceProvider.Setup(o => o.GetService(typeof(IHostingEnvironment))).Returns(mockEnvironment.Object);
  28. // Act
  29. string actual = mockServiceProvider.Object.GetApplicationUniqueIdentifier();
  30. // Assert
  31. Assert.Equal(expected, actual);
  32. }
  33. [Fact]
  34. public void GetApplicationUniqueIdentifier_NoServiceProvider_ReturnsNull()
  35. {
  36. Assert.Null(((IServiceProvider)null).GetApplicationUniqueIdentifier());
  37. }
  38. }
  39. }