From 2a37322d78c9ce1d27cbc12e24dd918407a931e3 Mon Sep 17 00:00:00 2001 From: "Emma [it/its]@Rory&" Date: Mon, 3 Jun 2024 04:59:40 +0200 Subject: Update dependencies, some tests, other things --- .../LibMatrix.EventTypes.Abstractions.Tests.csproj | 43 ++++++++ .../SerialisationTests.cs | 122 +++++++++++++++++++++ .../TestData/RoomMembershipEvent.json | 17 +++ .../TestData/RoomMembershipEventContent.json | 6 + .../TestData/RoomMessageEvent.json | 18 +++ .../TestData/RoomMessageEventContent.json | 11 ++ Tests/LibMatrix.Tests/GlobalUsings.cs | 1 - Tests/LibMatrix.Tests/LibMatrix.Tests.csproj | 17 +-- 8 files changed, 227 insertions(+), 8 deletions(-) create mode 100644 Tests/LibMatrix.EventTypes.Abstractions.Tests/LibMatrix.EventTypes.Abstractions.Tests.csproj create mode 100644 Tests/LibMatrix.EventTypes.Abstractions.Tests/SerialisationTests.cs create mode 100644 Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMembershipEvent.json create mode 100644 Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMembershipEventContent.json create mode 100644 Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMessageEvent.json create mode 100644 Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMessageEventContent.json delete mode 100644 Tests/LibMatrix.Tests/GlobalUsings.cs (limited to 'Tests') diff --git a/Tests/LibMatrix.EventTypes.Abstractions.Tests/LibMatrix.EventTypes.Abstractions.Tests.csproj b/Tests/LibMatrix.EventTypes.Abstractions.Tests/LibMatrix.EventTypes.Abstractions.Tests.csproj new file mode 100644 index 0000000..d4a45e0 --- /dev/null +++ b/Tests/LibMatrix.EventTypes.Abstractions.Tests/LibMatrix.EventTypes.Abstractions.Tests.csproj @@ -0,0 +1,43 @@ + + + + net8.0 + enable + enable + + false + true + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + + + + + + + + Always + + + PreserveNewest + + + + diff --git a/Tests/LibMatrix.EventTypes.Abstractions.Tests/SerialisationTests.cs b/Tests/LibMatrix.EventTypes.Abstractions.Tests/SerialisationTests.cs new file mode 100644 index 0000000..fe1a575 --- /dev/null +++ b/Tests/LibMatrix.EventTypes.Abstractions.Tests/SerialisationTests.cs @@ -0,0 +1,122 @@ +using System.Text.Json; +using ArcaneLibs.Extensions; +using LibMatrix.EventTypes.Spec; + +namespace LibMatrix.EventTypes.Abstractions.Tests; + +public class SerialisationTests { + private static readonly Dictionary TestData = Directory.GetFiles("TestData").Where(x=>x.EndsWith(".json")).ToDictionary(Path.GetFileNameWithoutExtension, File.ReadAllText); + [Fact] + public void DeserializeEvent() { + var evt = JsonSerializer.Deserialize>(TestData["RoomMembershipEvent"]); + Assert.NotNull(evt); + Assert.NotNull(evt.Content); + Assert.NotNull(evt.Content.Membership); + } + + [Fact] + public void DeserialiseEventContent() { + var evt = JsonSerializer.Deserialize(TestData["RoomMembershipEventContent"]); + Assert.NotNull(evt); + Assert.NotNull(evt.Membership); + } + + [Fact] + public void DeserializeUnknownEvent() { + var evt = JsonSerializer.Deserialize>(TestData["RoomMembershipEvent"]); + Assert.NotNull(evt); + Assert.NotNull(evt.Content); + Assert.NotNull(evt.Content["membership"]); + } + + [Fact] + public void DeserializeUnknownEventContent() { + var evt = JsonSerializer.Deserialize(TestData["RoomMembershipEventContent"]); + Assert.NotNull(evt); + Assert.NotNull(evt["membership"]); + } + + [Fact] + public void SerializeEvent() { + var evt = JsonSerializer.Deserialize>(TestData["RoomMembershipEvent"]); + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("membership", json); + } + + [Fact] + public void SerializeEventContent() { + var evt = JsonSerializer.Deserialize(TestData["RoomMembershipEventContent"]); + Assert.NotNull(evt); + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("membership", json); + } + + [Fact] + public void SerializeUnknownEvent() { + var evt = JsonSerializer.Deserialize>(TestData["RoomMembershipEvent"]); + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("membership", json); + } + + [Fact] + public void SerializeUnknownEventContent() { + var evt = JsonSerializer.Deserialize(TestData["RoomMembershipEventContent"]); + Assert.NotNull(evt); + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("membership", json); + } + + [Fact] + public void ModifyEvent() { + var evt = JsonSerializer.Deserialize>(TestData["RoomMembershipEvent"]); + Assert.NotNull(evt); + Assert.NotNull(evt.Content); + evt.Content.Membership = "meow"; + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("meow", json); + } + + [Fact] + public void ModifyEventContent() { + var evt = JsonSerializer.Deserialize(TestData["RoomMembershipEventContent"]); + Assert.NotNull(evt); + evt.Membership = "meow"; + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("meow", json); + } + + [Fact] + public void ModifyUnknownEvent() { + var evt = JsonSerializer.Deserialize>(TestData["RoomMembershipEvent"]); + Assert.NotNull(evt); + evt.Content["membership"] = "meow"; + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("meow", json); + } + + [Fact] + public void ModifyUnknownEventContent() { + var evt = JsonSerializer.Deserialize(TestData["RoomMembershipEventContent"]); + Assert.NotNull(evt); + evt["membership"] = "meow"; + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("meow", json); + } + + [Fact] + public void SerializeEventWithUnknownContent() { + var evt = JsonSerializer.Deserialize>(TestData["RoomMembershipEvent"]); + Assert.NotNull(evt); + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("membership", json); + } +} \ No newline at end of file diff --git a/Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMembershipEvent.json b/Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMembershipEvent.json new file mode 100644 index 0000000..1134a58 --- /dev/null +++ b/Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMembershipEvent.json @@ -0,0 +1,17 @@ +{ + "content": { + "avatar_url": "mxc://server1/abcdefgh", + "displayname": "User 1", + "is_direct": false, + "membership": "join" + }, + "event_id": "$DLgeeol91D36xqZQvEwRJrOoBKttZ_S66hco8Ci-qb0", + "origin_server_ts": 1717146801732, + "sender": "@user1:server1", + "state_key": "@user1:server1", + "type": "m.room.member", + "unsigned": { + "prev_sender": "@user1:server1", + "replaces_state": "$4QptWS_8YzaZfROeFzOdhoV2wzYPEzQDx0Q6u2UOt8c" + } +} \ No newline at end of file diff --git a/Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMembershipEventContent.json b/Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMembershipEventContent.json new file mode 100644 index 0000000..ca328d4 --- /dev/null +++ b/Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMembershipEventContent.json @@ -0,0 +1,6 @@ +{ + "avatar_url": "mxc://server1/abcdefgh", + "displayname": "User 1", + "is_direct": false, + "membership": "join" +} \ No newline at end of file diff --git a/Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMessageEvent.json b/Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMessageEvent.json new file mode 100644 index 0000000..3072114 --- /dev/null +++ b/Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMessageEvent.json @@ -0,0 +1,18 @@ +{ + "content": { + "body": "This is a test message", + "format": "org.matrix.custom.html", + "formatted_body": "This is a test message with HTML!", + "m.mentions": { + "user_ids": [ + "@emma:rory.gay" + ] + }, + "msgtype": "m.text" + }, + "event_id": "$qBmS2SyNAA-ODcOZpAd_RRfApzXuMmy0VHsCqnMebzI", + "origin_server_ts": 1717100265714, + "sender": "@user:example.xyz", + "type": "m.room.message", + "unsigned": null +} diff --git a/Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMessageEventContent.json b/Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMessageEventContent.json new file mode 100644 index 0000000..d9c7024 --- /dev/null +++ b/Tests/LibMatrix.EventTypes.Abstractions.Tests/TestData/RoomMessageEventContent.json @@ -0,0 +1,11 @@ +{ + "body": "This is a test message", + "format": "org.matrix.custom.html", + "formatted_body": "This is a test message with HTML!", + "m.mentions": { + "user_ids": [ + "@emma:rory.gay" + ] + }, + "msgtype": "m.text" +} \ No newline at end of file diff --git a/Tests/LibMatrix.Tests/GlobalUsings.cs b/Tests/LibMatrix.Tests/GlobalUsings.cs deleted file mode 100644 index 8c927eb..0000000 --- a/Tests/LibMatrix.Tests/GlobalUsings.cs +++ /dev/null @@ -1 +0,0 @@ -global using Xunit; \ No newline at end of file diff --git a/Tests/LibMatrix.Tests/LibMatrix.Tests.csproj b/Tests/LibMatrix.Tests/LibMatrix.Tests.csproj index d833d8b..085816f 100644 --- a/Tests/LibMatrix.Tests/LibMatrix.Tests.csproj +++ b/Tests/LibMatrix.Tests/LibMatrix.Tests.csproj @@ -10,22 +10,25 @@ - - - - - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + + runtime; build; native; contentfiles; analyzers; buildtransitive all + + + + + + -- cgit 1.4.1