Implement desktop sync protocol handling

This commit is contained in:
Misaka
2026-05-15 21:19:27 +08:00
parent 498251ad79
commit 4c314c510b
9 changed files with 253 additions and 14 deletions

View File

@@ -0,0 +1,31 @@
using System.Text.Json;
using WirelessTextSyncer.Windows.Models;
namespace WirelessTextSyncer.Windows.Tests;
[TestClass]
public sealed class SyncMessageTests
{
[TestMethod]
public void DeserializeAndroidInsertTextMessage()
{
var message = JsonSerializer.Deserialize<SyncMessage>(
"""{"action":"insertText","text":"hello"}""",
new JsonSerializerOptions(JsonSerializerDefaults.Web));
Assert.IsNotNull(message);
Assert.AreEqual(SyncAction.InsertText, message.Action);
Assert.AreEqual("hello", message.Text);
}
[TestMethod]
public void DeserializeAndroidBackspaceMessage()
{
var message = JsonSerializer.Deserialize<SyncMessage>(
"""{"action":"backspace"}""",
new JsonSerializerOptions(JsonSerializerDefaults.Web));
Assert.IsNotNull(message);
Assert.AreEqual(SyncAction.Backspace, message.Action);
}
}

View File

@@ -0,0 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
</ItemGroup>
<ItemGroup>
<Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\WirelessTextSyncer.Windows\WirelessTextSyncer.Windows.csproj" />
</ItemGroup>
</Project>