about summary refs log tree commit diff
path: root/Tests/LibMatrix.EventTypes.Abstractions.Tests/SerialisationTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/LibMatrix.EventTypes.Abstractions.Tests/SerialisationTests.cs')
-rw-r--r--Tests/LibMatrix.EventTypes.Abstractions.Tests/SerialisationTests.cs122
1 files changed, 122 insertions, 0 deletions
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<string, string> TestData = Directory.GetFiles("TestData").Where(x=>x.EndsWith(".json")).ToDictionary(Path.GetFileNameWithoutExtension, File.ReadAllText); + [Fact] + public void DeserializeEvent() { + var evt = JsonSerializer.Deserialize<MatrixEvent<RoomMembershipEventContent>>(TestData["RoomMembershipEvent"]); + Assert.NotNull(evt); + Assert.NotNull(evt.Content); + Assert.NotNull(evt.Content.Membership); + } + + [Fact] + public void DeserialiseEventContent() { + var evt = JsonSerializer.Deserialize<RoomMembershipEventContent>(TestData["RoomMembershipEventContent"]); + Assert.NotNull(evt); + Assert.NotNull(evt.Membership); + } + + [Fact] + public void DeserializeUnknownEvent() { + var evt = JsonSerializer.Deserialize<MatrixEvent<BaseMatrixEventContent>>(TestData["RoomMembershipEvent"]); + Assert.NotNull(evt); + Assert.NotNull(evt.Content); + Assert.NotNull(evt.Content["membership"]); + } + + [Fact] + public void DeserializeUnknownEventContent() { + var evt = JsonSerializer.Deserialize<BaseMatrixEventContent>(TestData["RoomMembershipEventContent"]); + Assert.NotNull(evt); + Assert.NotNull(evt["membership"]); + } + + [Fact] + public void SerializeEvent() { + var evt = JsonSerializer.Deserialize<MatrixEvent<RoomMembershipEventContent>>(TestData["RoomMembershipEvent"]); + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("membership", json); + } + + [Fact] + public void SerializeEventContent() { + var evt = JsonSerializer.Deserialize<RoomMembershipEventContent>(TestData["RoomMembershipEventContent"]); + Assert.NotNull(evt); + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("membership", json); + } + + [Fact] + public void SerializeUnknownEvent() { + var evt = JsonSerializer.Deserialize<MatrixEvent<BaseMatrixEventContent>>(TestData["RoomMembershipEvent"]); + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("membership", json); + } + + [Fact] + public void SerializeUnknownEventContent() { + var evt = JsonSerializer.Deserialize<BaseMatrixEventContent>(TestData["RoomMembershipEventContent"]); + Assert.NotNull(evt); + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("membership", json); + } + + [Fact] + public void ModifyEvent() { + var evt = JsonSerializer.Deserialize<MatrixEvent<RoomMembershipEventContent>>(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<RoomMembershipEventContent>(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<MatrixEvent<BaseMatrixEventContent>>(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<BaseMatrixEventContent>(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<MatrixEvent<BaseMatrixEventContent>>(TestData["RoomMembershipEvent"]); + Assert.NotNull(evt); + var json = evt.ToJson(); + Assert.NotNull(json); + Assert.Contains("membership", json); + } +} \ No newline at end of file