about summary refs log tree commit diff
path: root/Tests
diff options
context:
space:
mode:
Diffstat (limited to 'Tests')
-rw-r--r--Tests/LibMatrix.Tests/Abstractions/HomeserverAbstraction.cs18
-rw-r--r--Tests/LibMatrix.Tests/Abstractions/RoomAbstraction.cs18
-rw-r--r--Tests/LibMatrix.Tests/DataTests/WhoAmITests.cs2
-rw-r--r--Tests/LibMatrix.Tests/LibMatrix.Tests.csproj16
-rw-r--r--Tests/LibMatrix.Tests/Tests/RoomTests/RoomMembershipTests.cs25
-rw-r--r--Tests/LibMatrix.Tests/Tests/RoomTests/RoomTests.cs17
-rw-r--r--Tests/LibMatrix.Tests/Tests/RoomTests/SpaceTests.cs13
7 files changed, 55 insertions, 54 deletions
diff --git a/Tests/LibMatrix.Tests/Abstractions/HomeserverAbstraction.cs b/Tests/LibMatrix.Tests/Abstractions/HomeserverAbstraction.cs

index 6878b44..20be560 100644 --- a/Tests/LibMatrix.Tests/Abstractions/HomeserverAbstraction.cs +++ b/Tests/LibMatrix.Tests/Abstractions/HomeserverAbstraction.cs
@@ -10,15 +10,15 @@ namespace LibMatrix.Tests.Abstractions; public class HomeserverAbstraction(HomeserverProviderService _hsProvider, Config _config, ILogger<HomeserverAbstraction> _logger) { // private static readonly HomeserverResolverService _hsResolver = new HomeserverResolverService(NullLogger<HomeserverResolverService>.Instance); // private static readonly HomeserverProviderService _hsProvider = new HomeserverProviderService(NullLogger<HomeserverProviderService>.Instance, _hsResolver); - + private static AuthenticatedHomeserverGeneric? ConfiguredHomeserver { get; set; } private static readonly SemaphoreSlim _lock = new(1, 1); - + public async Task<AuthenticatedHomeserverGeneric> GetConfiguredHomeserver(ITestOutputHelper? testOutputHelper = null) { Assert.False(string.IsNullOrWhiteSpace(_config.TestHomeserver)); Assert.False(string.IsNullOrWhiteSpace(_config.TestUsername)); Assert.False(string.IsNullOrWhiteSpace(_config.TestPassword)); - + _logger.LogDebug("Using homeserver '{0}' with login '{1}' '{2}", _config.TestHomeserver, _config.TestUsername, _config.TestPassword); testOutputHelper?.WriteLine($"Using homeserver '{_config.TestHomeserver}' with login '{_config.TestUsername}' '{_config.TestPassword}'"); @@ -29,7 +29,7 @@ public class HomeserverAbstraction(HomeserverProviderService _hsProvider, Config } var rhs = await _hsProvider.GetRemoteHomeserver(_config.TestHomeserver); - + LoginResponse reg; try { reg = await rhs.LoginAsync(_config.TestUsername, _config.TestPassword); @@ -53,27 +53,27 @@ public class HomeserverAbstraction(HomeserverProviderService _hsProvider, Config Assert.False(string.IsNullOrWhiteSpace(_config.TestHomeserver)); var username = Guid.NewGuid().ToString(); var password = Guid.NewGuid().ToString(); - + _logger.LogDebug("Creating new homeserver '{0}' with login '{1}' '{2}'", _config.TestHomeserver, username, password); - + var rhs = await _hsProvider.GetRemoteHomeserver(_config.TestHomeserver); var reg = await rhs.RegisterAsync(username, password, "Unit tests!"); var hs = await _hsProvider.GetAuthenticatedWithToken(reg.Homeserver, reg.AccessToken); - + return hs; } public async IAsyncEnumerable<AuthenticatedHomeserverGeneric> GetNewHomeservers(int count = 1) { var createRandomUserTasks = Enumerable .Range(0, count) - .Select(_ => GetNewHomeserver()).ToAsyncEnumerable(); + .Select(_ => GetNewHomeserver()).ToAsyncResultEnumerable(); await foreach (var hs in createRandomUserTasks) yield return hs; } public async Task<(string username, string password, string token)> GetKnownCredentials() { Assert.False(string.IsNullOrWhiteSpace(_config.TestHomeserver)); var rhs = await _hsProvider.GetRemoteHomeserver(_config.TestHomeserver); - + var username = _config.TestUsername; var password = _config.TestPassword; var reg = await rhs.RegisterAsync(username, password, "Unit tests!"); diff --git a/Tests/LibMatrix.Tests/Abstractions/RoomAbstraction.cs b/Tests/LibMatrix.Tests/Abstractions/RoomAbstraction.cs
index b1176ca..7c74d9f 100644 --- a/Tests/LibMatrix.Tests/Abstractions/RoomAbstraction.cs +++ b/Tests/LibMatrix.Tests/Abstractions/RoomAbstraction.cs
@@ -14,29 +14,29 @@ public static class RoomAbstraction { // Visibility = CreateRoomVisibility.Public, RoomAliasName = Guid.NewGuid().ToString() }; - crq.InitialState ??= new List<StateEvent>(); - crq.InitialState.Add(new StateEvent() { + crq.InitialState ??= new List<MatrixEvent>(); + crq.InitialState.Add(new MatrixEvent() { Type = RoomTopicEventContent.EventId, StateKey = "", TypedContent = new RoomTopicEventContent() { Topic = "LibMatrix Test Room " + DateTime.Now.ToString("O") } }); - crq.InitialState.Add(new StateEvent() { + crq.InitialState.Add(new MatrixEvent() { Type = RoomNameEventContent.EventId, StateKey = "", TypedContent = new RoomNameEventContent() { Name = "LibMatrix Test Room " + DateTime.Now.ToString("O") } }); - crq.InitialState.Add(new StateEvent() { + crq.InitialState.Add(new MatrixEvent() { Type = RoomAvatarEventContent.EventId, StateKey = "", TypedContent = new RoomAvatarEventContent() { Url = "mxc://conduit.rory.gay/r9KiT0f9eQbv8pv4RxwBZFuzhfKjGWHx" } }); - crq.InitialState.Add(new StateEvent() { + crq.InitialState.Add(new MatrixEvent() { Type = RoomAliasEventContent.EventId, StateKey = "", TypedContent = new RoomAliasEventContent() { @@ -60,7 +60,7 @@ public static class RoomAbstraction { Name = $"LibMatrix Test Space ({roomCount} children)", // Visibility = CreateRoomVisibility.Public, RoomAliasName = Guid.NewGuid().ToString(), - InitialState = new List<StateEvent>() + InitialState = new List<MatrixEvent>() }; crq.CreationContentBaseType.Type = "m.space"; @@ -69,10 +69,10 @@ public static class RoomAbstraction { Name = $"LibMatrix Test Room {Guid.NewGuid()}", // Visibility = CreateRoomVisibility.Public, RoomAliasName = Guid.NewGuid().ToString() - })).ToAsyncEnumerable(); + })).ToAsyncResultEnumerable(); await foreach (var room in createRoomTasks) - crq.InitialState.Add(new StateEvent { + crq.InitialState.Add(new MatrixEvent { Type = "m.space.child", StateKey = room.RoomId, TypedContent = new SpaceChildEventContent() { @@ -85,7 +85,7 @@ public static class RoomAbstraction { if (addSpaces) for (var i = 0; i < roomCount; i++) { var space = await GetTestSpace(hs, roomCount - spaceSizeReduction, true, spaceSizeReduction); - crq.InitialState.Add(new StateEvent { + crq.InitialState.Add(new MatrixEvent { Type = "m.space.child", StateKey = space.RoomId, TypedContent = new SpaceChildEventContent() { diff --git a/Tests/LibMatrix.Tests/DataTests/WhoAmITests.cs b/Tests/LibMatrix.Tests/DataTests/WhoAmITests.cs
index e1da3d5..2a25056 100644 --- a/Tests/LibMatrix.Tests/DataTests/WhoAmITests.cs +++ b/Tests/LibMatrix.Tests/DataTests/WhoAmITests.cs
@@ -1,3 +1,5 @@ +using LibMatrix.Responses; + namespace LibMatrix.Tests.DataTests; public static class WhoAmITests { diff --git a/Tests/LibMatrix.Tests/LibMatrix.Tests.csproj b/Tests/LibMatrix.Tests/LibMatrix.Tests.csproj
index 98c8101..234b978 100644 --- a/Tests/LibMatrix.Tests/LibMatrix.Tests.csproj +++ b/Tests/LibMatrix.Tests/LibMatrix.Tests.csproj
@@ -1,7 +1,7 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> - <TargetFramework>net9.0</TargetFramework> + <TargetFramework>net10.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> @@ -10,20 +10,20 @@ </PropertyGroup> <ItemGroup> - <PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.1" /> + <PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.0-rc.2.25502.107"/> - <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" /> - <PackageReference Include="xunit" Version="2.9.3" /> - <PackageReference Include="Xunit.Microsoft.DependencyInjection" Version="9.0.0" /> - <PackageReference Include="xunit.runner.visualstudio" Version="3.0.1"> + <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.0"/> + <PackageReference Include="xunit" Version="2.9.3"/> + <PackageReference Include="Xunit.Microsoft.DependencyInjection" Version="9.2.2"/> + <PackageReference Include="xunit.runner.visualstudio" Version="3.1.5"> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> - <PackageReference Include="coverlet.collector" Version="6.0.3"> + <PackageReference Include="coverlet.collector" Version="6.0.4"> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> - <PackageReference Include="Xunit.SkippableFact" Version="1.5.23" /> + <PackageReference Include="Xunit.SkippableFact" Version="1.5.23"/> </ItemGroup> <ItemGroup> diff --git a/Tests/LibMatrix.Tests/Tests/RoomTests/RoomMembershipTests.cs b/Tests/LibMatrix.Tests/Tests/RoomTests/RoomMembershipTests.cs
index 8419518..1b2271e 100644 --- a/Tests/LibMatrix.Tests/Tests/RoomTests/RoomMembershipTests.cs +++ b/Tests/LibMatrix.Tests/Tests/RoomTests/RoomMembershipTests.cs
@@ -14,11 +14,11 @@ public class RoomMembershipTests : TestBed<TestFixture> { public RoomMembershipTests(ITestOutputHelper testOutputHelper, TestFixture fixture) : base(testOutputHelper, fixture) { _hsAbstraction = _fixture.GetService<HomeserverAbstraction>(_testOutputHelper) ?? throw new InvalidOperationException($"Failed to get {nameof(HomeserverAbstraction)}"); } - + [Fact] public async Task GetMembersAsync() { - Assert.True(StateEvent.KnownStateEventTypes is { Count: > 0 }, "StateEvent.KnownStateEventTypes is empty!"); - Assert.True(StateEvent.KnownStateEventTypesByName is { Count: > 0 }, "StateEvent.KnownStateEventTypesByName is empty!"); + Assert.True(MatrixEvent.KnownEventTypes is { Count: > 0 }, "MatrixEvent.KnownEventTypes is empty!"); + Assert.True(MatrixEvent.KnownEventTypesByName is { Count: > 0 }, "MatrixEvent.KnownEventTypesByName is empty!"); var hs = await _hsAbstraction.GetConfiguredHomeserver(); var room = await RoomAbstraction.GetTestRoom(hs); @@ -44,7 +44,7 @@ public class RoomMembershipTests : TestBed<TestFixture> { } Assert.True(hitMembers, "No members were found in the room"); - + await room.LeaveAsync(); } @@ -62,7 +62,7 @@ public class RoomMembershipTests : TestBed<TestFixture> { Assert.NotNull(id); Assert.NotNull(id.RoomId); Assert.NotEmpty(id.RoomId); - + await room.LeaveAsync(); } @@ -95,7 +95,7 @@ public class RoomMembershipTests : TestBed<TestFixture> { Assert.NotNull(banState); Assert.Equal("leave", banState.Membership); Assert.Equal("test", banState.Reason); - + await room.LeaveAsync(); } @@ -109,7 +109,7 @@ public class RoomMembershipTests : TestBed<TestFixture> { var banState = await room.GetStateAsync<RoomMemberEventContent>("m.room.member", hs2.UserId); Assert.NotNull(banState); Assert.Equal("ban", banState.Membership); - + await room.LeaveAsync(); } @@ -124,12 +124,12 @@ public class RoomMembershipTests : TestBed<TestFixture> { Assert.NotNull(banState); Assert.Equal("ban", banState.Membership); await room.UnbanAsync(hs2.UserId, "testing"); - + var unbanState = await room.GetStateAsync<RoomMemberEventContent>("m.room.member", hs2.UserId); Assert.NotNull(unbanState); Assert.Equal("leave", unbanState.Membership); Assert.Equal("testing", unbanState.Reason); - + await room.LeaveAsync(); } @@ -157,17 +157,16 @@ public class RoomMembershipTests : TestBed<TestFixture> { tasks.Add(otherUser, room.InviteUserAsync(otherUser.UserId, "Unit test!")); } - await foreach (var otherUser in tasks.ToAsyncEnumerable()) { + await foreach (var otherUser in tasks.ToAsyncResultEnumerable()) { _testOutputHelper.WriteLine($"Joining {otherUser.UserId} to {room.RoomId}"); await otherUser.GetRoom(room.RoomId).JoinAsync(reason: "Unit test!"); } var states = await room.GetMembersListAsync(); Assert.Equal(count + 1, states.Count); - + await room.LeaveAsync(); - await foreach (var authenticatedHomeserverGeneric in otherUsers) - { + await foreach (var authenticatedHomeserverGeneric in otherUsers) { await authenticatedHomeserverGeneric.GetRoom(room.RoomId).LeaveAsync(); } } diff --git a/Tests/LibMatrix.Tests/Tests/RoomTests/RoomTests.cs b/Tests/LibMatrix.Tests/Tests/RoomTests/RoomTests.cs
index 7801ed0..817eca9 100644 --- a/Tests/LibMatrix.Tests/Tests/RoomTests/RoomTests.cs +++ b/Tests/LibMatrix.Tests/Tests/RoomTests/RoomTests.cs
@@ -35,8 +35,8 @@ public class RoomTests : TestBed<TestFixture> { [Fact] public async Task GetMembersAsync() { - Assert.True(StateEvent.KnownStateEventTypes is { Count: > 0 }, "StateEvent.KnownStateEventTypes is empty!"); - Assert.True(StateEvent.KnownStateEventTypesByName is { Count: > 0 }, "StateEvent.KnownStateEventTypesByName is empty!"); + Assert.True(MatrixEvent.KnownEventTypes is { Count: > 0 }, "MatrixEvent.KnownEventTypes is empty!"); + Assert.True(MatrixEvent.KnownEventTypesByName is { Count: > 0 }, "MatrixEvent.KnownEventTypesByName is empty!"); var hs = await _hsAbstraction.GetConfiguredHomeserver(); var room = await RoomAbstraction.GetTestRoom(hs); @@ -240,7 +240,7 @@ public class RoomTests : TestBed<TestFixture> { }); await room.LeaveAsync(); - + await File.WriteAllTextAsync("test.json", messages.ToJson()); } @@ -268,7 +268,7 @@ public class RoomTests : TestBed<TestFixture> { await room.LeaveAsync(); } - + [Fact] public async Task SendMessageEventAsync() { var hs = await _hsAbstraction.GetConfiguredHomeserver(); @@ -276,13 +276,14 @@ public class RoomTests : TestBed<TestFixture> { Assert.NotNull(room); var res = await room.SendMessageEventAsync(new RoomMessageEventContent(body: "This test was written by Emma [it/its], member of the Rory& system." + - "\nIf you are reading this on matrix, it means the unit test for sending a message works!", messageType: "m.text")); + "\nIf you are reading this on matrix, it means the unit test for sending a message works!", + messageType: "m.text")); Assert.NotNull(res); Assert.NotNull(res.EventId); await room.LeaveAsync(); } - + [Fact] public async Task InviteUsersAsync() { var hs = await _hsAbstraction.GetConfiguredHomeserver(); @@ -298,7 +299,7 @@ public class RoomTests : TestBed<TestFixture> { Assert.NotNull(u.UserId); Assert.NotEmpty(u.UserId); }); - + await room.InviteUsersAsync(users.Select(u => u.UserId)); var members = await room.GetMembersListAsync(); Assert.NotNull(members); @@ -310,7 +311,7 @@ public class RoomTests : TestBed<TestFixture> { Assert.NotEmpty(m.StateKey); }); Assert.All(users, u => Assert.Contains(u.UserId, members.Select(m => m.StateKey))); - + await room.LeaveAsync(); } } \ No newline at end of file diff --git a/Tests/LibMatrix.Tests/Tests/RoomTests/SpaceTests.cs b/Tests/LibMatrix.Tests/Tests/RoomTests/SpaceTests.cs
index be8076a..d59920d 100644 --- a/Tests/LibMatrix.Tests/Tests/RoomTests/SpaceTests.cs +++ b/Tests/LibMatrix.Tests/Tests/RoomTests/SpaceTests.cs
@@ -52,14 +52,14 @@ public class SpaceTests : TestBed<TestFixture> { }); await space.AddChildByIdAsync(child.RoomId); - + //validate children var children = space.GetChildrenAsync().ToBlockingEnumerable().ToList(); Assert.NotNull(children); Assert.NotEmpty(children); Assert.Single(children, x => x.RoomId == child.RoomId); } - + [Fact] public async Task GetChildrenAsync() { var hs = await _hsAbstraction.GetConfiguredHomeserver(); @@ -68,11 +68,11 @@ public class SpaceTests : TestBed<TestFixture> { Name = "Test child" }); return room; - }).ToAsyncEnumerable().ToBlockingEnumerable().ToList(); - + }).ToAsyncResultEnumerable().ToBlockingEnumerable().ToList(); + var crq = new CreateRoomRequest() { Name = "Test space", - InitialState = expectedChildren.Select(c => new StateEvent() { + InitialState = expectedChildren.Select(c => new MatrixEvent() { Type = "m.space.child", StateKey = c.RoomId, TypedContent = new SpaceChildEventContent() { @@ -89,8 +89,7 @@ public class SpaceTests : TestBed<TestFixture> { Assert.NotNull(children); Assert.NotEmpty(children); Assert.Equal(expectedChildren.Count, children.Count); - foreach (var expectedChild in expectedChildren) - { + foreach (var expectedChild in expectedChildren) { Assert.Single(children, x => x.RoomId == expectedChild.RoomId); } }