| File: Resilience\UriExtensionsTests.cs | Web Access |
| Project: src\test\Libraries\Microsoft.Extensions.Http.Resilience.Tests\Microsoft.Extensions.Http.Resilience.Tests.csproj (Microsoft.Extensions.Http.Resilience.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using FluentAssertions; using Microsoft.Extensions.Http.Resilience.Internal; using Xunit; namespace Microsoft.Extensions.Http.Resilience.Test.Resilience; #pragma warning disable CA2000 // Test class public class UriExtensionsTests { [Theory] [InlineData("https://initial.uri", "https://fallback-uri.com")] [InlineData("https://initial.uri/somepath", "https://fallback-uri.com/somepath")] [InlineData("https://initial.uri/somepath/someotherpath", "https://fallback-uri.com/somepath/someotherpath")] [InlineData("https://initial.uri:2030/somepath", "https://fallback-uri.com/somepath")] [InlineData("https://initial.uri:2030/somepath?query=value", "https://fallback-uri.com/somepath?query=value")] [InlineData("https://initial.uri?a=1&b=2&c=3", "https://fallback-uri.com?a=1&b=2&c=3")] [InlineData("https://initial.uri?", "https://fallback-uri.com")] public void ReplaceHost_ValidArguments_ShouldReplaceUri(string initialUriString, string expectedUriString) { var fallbackUri = new Uri("https://fallback-uri.com"); var initialUri = new Uri(initialUriString); initialUri.ReplaceHost(fallbackUri).Should().Be(new Uri(expectedUriString)); } [Theory] [InlineData("https://initial.uri", "https://initial.uri", true)] [InlineData("https://initial.uri:123", "https://initial.uri:123", true)] [InlineData("http://initial.uri:123", "http://initial.uri:123", true)] [InlineData("https://initial.uri", "https://initial.uri:123", false)] [InlineData("https://initial.uri:123", "https://initial.uri:123/some-path", false)] [InlineData("http://initial.uri:123", "https://initial.uri:123", false)] public void ReplaceHost_TargetHostSame_ShouldReturnInitialUri(string initialUriString, string replacementUri, bool shouldBeSame) { var initialUri = new Uri(initialUriString); if (shouldBeSame) { initialUri.ReplaceHost(new Uri(replacementUri)).Should().BeSameAs(initialUri); } else { initialUri.ReplaceHost(new Uri(replacementUri)).Should().NotBeSameAs(initialUri); } } }