From 49bb14a7f0906b6e88b7613ac1bc508d1709c06d Mon Sep 17 00:00:00 2001 From: Rory& Date: Fri, 28 Feb 2025 02:24:24 +0100 Subject: Well known resolver rewrite work --- Tests/LibMatrix.Tests/Config.cs | 2 +- .../Tests/HomeserverResolverTests.cs | 36 ------------------- .../ClientWellKnownResolverTests.cs | 41 ++++++++++++++++++++++ .../Tests/LegacyHomeserverResolverTests.cs | 36 +++++++++++++++++++ 4 files changed, 78 insertions(+), 37 deletions(-) delete mode 100644 Tests/LibMatrix.Tests/Tests/HomeserverResolverTests.cs create mode 100644 Tests/LibMatrix.Tests/Tests/HomeserverResolverTests/ClientWellKnownResolverTests.cs create mode 100644 Tests/LibMatrix.Tests/Tests/LegacyHomeserverResolverTests.cs (limited to 'Tests') diff --git a/Tests/LibMatrix.Tests/Config.cs b/Tests/LibMatrix.Tests/Config.cs index 045ea40..b59b238 100644 --- a/Tests/LibMatrix.Tests/Config.cs +++ b/Tests/LibMatrix.Tests/Config.cs @@ -18,7 +18,7 @@ public class Config { { "matrix.org", "https://matrix-client.matrix.org" }, { "rory.gay", "https://matrix.rory.gay" }, { "feline.support", "https://matrix.feline.support" }, - { "transfem.dev", "https://matrix.transfem.dev" }, + { "transfem.dev", "https://matrix.transfem.dev/" }, { "the-apothecary.club", "https://the-apothecary.club" }, { "nixos.org", "https://matrix.nixos.org" }, { "fedora.im", "https://fedora.ems.host" } diff --git a/Tests/LibMatrix.Tests/Tests/HomeserverResolverTests.cs b/Tests/LibMatrix.Tests/Tests/HomeserverResolverTests.cs deleted file mode 100644 index 7226fe9..0000000 --- a/Tests/LibMatrix.Tests/Tests/HomeserverResolverTests.cs +++ /dev/null @@ -1,36 +0,0 @@ -using LibMatrix.Services; -using LibMatrix.Tests.Fixtures; -using Xunit.Abstractions; -using Xunit.Microsoft.DependencyInjection.Abstracts; - -namespace LibMatrix.Tests.Tests; - -public class HomeserverResolverTests : TestBed { - private readonly Config _config; - private readonly HomeserverResolverService _resolver; - - public HomeserverResolverTests(ITestOutputHelper testOutputHelper, TestFixture fixture) : base(testOutputHelper, fixture) { - _config = _fixture.GetService(_testOutputHelper) ?? throw new InvalidOperationException($"Failed to get {nameof(Config)}"); - _resolver = _fixture.GetService(_testOutputHelper) ?? throw new InvalidOperationException($"Failed to get {nameof(HomeserverResolverService)}"); - } - - [Fact] - public async Task ResolveServerClient() { - var tasks = _config.ExpectedHomeserverClientMappings.Select(async mapping => { - var server = await _resolver.ResolveHomeserverFromWellKnown(mapping.Key); - Assert.Equal(mapping.Value, server.Client); - return server; - }).ToList(); - await Task.WhenAll(tasks); - } - - [Fact] - public async Task ResolveServerServer() { - var tasks = _config.ExpectedHomeserverFederationMappings.Select(async mapping => { - var server = await _resolver.ResolveHomeserverFromWellKnown(mapping.Key); - Assert.Equal(mapping.Value, server.Server); - return server; - }).ToList(); - await Task.WhenAll(tasks); - } -} \ No newline at end of file diff --git a/Tests/LibMatrix.Tests/Tests/HomeserverResolverTests/ClientWellKnownResolverTests.cs b/Tests/LibMatrix.Tests/Tests/HomeserverResolverTests/ClientWellKnownResolverTests.cs new file mode 100644 index 0000000..f6dfd97 --- /dev/null +++ b/Tests/LibMatrix.Tests/Tests/HomeserverResolverTests/ClientWellKnownResolverTests.cs @@ -0,0 +1,41 @@ +using LibMatrix.Services; +using LibMatrix.Services.WellKnownResolvers; +using LibMatrix.Tests.Fixtures; +using Xunit.Abstractions; +using Xunit.Microsoft.DependencyInjection.Abstracts; + +namespace LibMatrix.Tests.Tests.HomeserverResolverTests; + +public class ClientWellKnownResolverTests : TestBed { + private readonly Config _config; + private readonly ClientWellKnownResolver _resolver; + + public ClientWellKnownResolverTests(ITestOutputHelper testOutputHelper, TestFixture fixture) : base(testOutputHelper, fixture) { + _config = _fixture.GetService(_testOutputHelper) ?? throw new InvalidOperationException($"Failed to get {nameof(Config)}"); + _resolver = _fixture.GetService(_testOutputHelper) ?? throw new InvalidOperationException($"Failed to get {nameof(HomeserverResolverService)}"); + } + + [Fact] + public async Task ResolveServerClient() { + var tasks = _config.ExpectedHomeserverClientMappings.Select(async mapping => { + var server = await _resolver.TryResolveClientWellKnown(mapping.Key); + Assert.Equal(mapping.Value, server.WellKnown.Homeserver.BaseUrl); + return server; + }).ToList(); + await Task.WhenAll(tasks); + } + + private async Task AssertClientWellKnown(string homeserver, string expected) { + var server = await _resolver.TryResolveClientWellKnown(homeserver); + Assert.Equal(expected, server.WellKnown.Homeserver.BaseUrl); + } + + [Fact] + public Task ResolveMatrixOrg() => AssertClientWellKnown("matrix.org", "https://matrix-client.matrix.org"); + + [Fact] + public Task ResolveRoryGay() => AssertClientWellKnown("rory.gay", "https://matrix.rory.gay"); + + [Fact] + public Task ResolveTransfemDev() => AssertClientWellKnown("transfem.dev", "https://matrix.transfem.dev/"); +} \ No newline at end of file diff --git a/Tests/LibMatrix.Tests/Tests/LegacyHomeserverResolverTests.cs b/Tests/LibMatrix.Tests/Tests/LegacyHomeserverResolverTests.cs new file mode 100644 index 0000000..20dc4fb --- /dev/null +++ b/Tests/LibMatrix.Tests/Tests/LegacyHomeserverResolverTests.cs @@ -0,0 +1,36 @@ +using LibMatrix.Services; +using LibMatrix.Tests.Fixtures; +using Xunit.Abstractions; +using Xunit.Microsoft.DependencyInjection.Abstracts; + +namespace LibMatrix.Tests.Tests; + +public class LegacyHomeserverResolverTests : TestBed { + private readonly Config _config; + private readonly HomeserverResolverService _resolver; + + public LegacyHomeserverResolverTests(ITestOutputHelper testOutputHelper, TestFixture fixture) : base(testOutputHelper, fixture) { + _config = _fixture.GetService(_testOutputHelper) ?? throw new InvalidOperationException($"Failed to get {nameof(Config)}"); + _resolver = _fixture.GetService(_testOutputHelper) ?? throw new InvalidOperationException($"Failed to get {nameof(HomeserverResolverService)}"); + } + + [Fact] + public async Task ResolveServerClient() { + var tasks = _config.ExpectedHomeserverClientMappings.Select(async mapping => { + var server = await _resolver.ResolveHomeserverFromWellKnown(mapping.Key); + Assert.Equal(mapping.Value, server.Client); + return server; + }).ToList(); + await Task.WhenAll(tasks); + } + + [Fact] + public async Task ResolveServerServer() { + var tasks = _config.ExpectedHomeserverFederationMappings.Select(async mapping => { + var server = await _resolver.ResolveHomeserverFromWellKnown(mapping.Key); + Assert.Equal(mapping.Value, server.Server); + return server; + }).ToList(); + await Task.WhenAll(tasks); + } +} \ No newline at end of file -- cgit 1.5.1