Skip to content

Commit 7ef449f

Browse files
committed
🦊 xUnit -> TUnit
1 parent a11e978 commit 7ef449f

3 files changed

Lines changed: 40 additions & 46 deletions

File tree

‎global.json‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"test": {
3+
"runner": "Microsoft.Testing.Platform"
4+
}
5+
}
Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,41 @@
11
using OpenOnlineConfig.v1;
22
using System.Text.Json;
3-
using Xunit;
43

5-
namespace OpenOnlineConfig.Tests
4+
namespace OpenOnlineConfig.Tests;
5+
6+
public class DeserializationTests
67
{
7-
public class DeserializationTests
8+
[Test]
9+
[Arguments("{\"version\":1,\"baseUrl\":\"https://example.com\",\"secret\":\"8c1da4d8-8684-4a2c-9abb-57b9d5fa7e52\",\"userId\":\"a117460e-41df-4dbd-b2df-4bd0c16efd2f\"}",
10+
1, "https://example.com", "8c1da4d8-8684-4a2c-9abb-57b9d5fa7e52", "a117460e-41df-4dbd-b2df-4bd0c16efd2f", null)]
11+
[Arguments("{\"version\":1,\"baseUrl\":\"https://github.com\",\"secret\":\"8b7ef7fd-c2ac-47d9-8517-2b20c4fee5a7\",\"userId\":\"68720c88-e5e5-4b84-9db7-98fb4be109eb\",\"certSha256\":\"0ae384bfd4dde9d13e50c5857c05a442c93f8e01445ee4b34540d22bd1e37f1b\"}",
12+
1, "https://github.com", "8b7ef7fd-c2ac-47d9-8517-2b20c4fee5a7", "68720c88-e5e5-4b84-9db7-98fb4be109eb", "0ae384bfd4dde9d13e50c5857c05a442c93f8e01445ee4b34540d22bd1e37f1b")]
13+
public async Task ApiToken_Deserialization(string json, int expectedVersion, string expectedBaseUrl, string expectedSecret, string expectedUserId, string? expectedCertSha256)
814
{
9-
[Theory]
10-
[InlineData("{\"version\":1,\"baseUrl\":\"https://example.com\",\"secret\":\"8c1da4d8-8684-4a2c-9abb-57b9d5fa7e52\",\"userId\":\"a117460e-41df-4dbd-b2df-4bd0c16efd2f\"}",
11-
1, "https://example.com", "8c1da4d8-8684-4a2c-9abb-57b9d5fa7e52", "a117460e-41df-4dbd-b2df-4bd0c16efd2f", null)]
12-
[InlineData("{\"version\":1,\"baseUrl\":\"https://github.com\",\"secret\":\"8b7ef7fd-c2ac-47d9-8517-2b20c4fee5a7\",\"userId\":\"68720c88-e5e5-4b84-9db7-98fb4be109eb\",\"certSha256\":\"0ae384bfd4dde9d13e50c5857c05a442c93f8e01445ee4b34540d22bd1e37f1b\"}",
13-
1, "https://github.com", "8b7ef7fd-c2ac-47d9-8517-2b20c4fee5a7", "68720c88-e5e5-4b84-9db7-98fb4be109eb", "0ae384bfd4dde9d13e50c5857c05a442c93f8e01445ee4b34540d22bd1e37f1b")]
14-
public void ApiToken_Deserialization(string json, int expectedVersion, string expectedBaseUrl, string expectedSecret, string expectedUserId, string? expectedCertSha256)
15-
{
16-
OOCv1ApiToken? token = JsonSerializer.Deserialize(json, OOCv1JsonSerializerContext.Default.OOCv1ApiToken);
15+
OOCv1ApiToken? token = JsonSerializer.Deserialize(json, OOCv1JsonSerializerContext.Default.OOCv1ApiToken);
1716

18-
Assert.NotNull(token);
19-
Assert.Equal(expectedVersion, token.Version);
20-
Assert.Equal(expectedBaseUrl, token.BaseUrl);
21-
Assert.Equal(expectedSecret, token.Secret);
22-
Assert.Equal(expectedUserId, token.UserId);
23-
Assert.Equal(expectedCertSha256, token.CertSha256);
24-
}
17+
await Assert.That(token).IsNotNull();
18+
await Assert.That(token.Version).IsEqualTo(expectedVersion);
19+
await Assert.That(token.BaseUrl).IsEqualTo(expectedBaseUrl);
20+
await Assert.That(token.Secret).IsEqualTo(expectedSecret);
21+
await Assert.That(token.UserId).IsEqualTo(expectedUserId);
22+
await Assert.That(token.CertSha256).IsEqualTo(expectedCertSha256);
23+
}
2524

26-
[Theory]
27-
[InlineData("{\"username\":\"somebody\",\"protocols\":[\"shadowsocks\"]}",
28-
"somebody", null, null, null, new string[] { "shadowsocks", })]
29-
[InlineData("{\"username\":\"nobody\",\"bytesUsed\":274877906944,\"bytesRemaining\":824633720832,\"expiryDate\":1609459200,\"protocols\":[\"shadowsocks\",\"vmess\",\"trojan-go\"]}",
30-
"nobody", 274877906944UL, 824633720832UL, 1609459200L, new string[] { "shadowsocks", "vmess", "trojan-go", })]
31-
public void ConfigBase_Deserialization(string json, string? expectedUsername, ulong? expectedBytesUsed, ulong? expectedBytesRemaining, long? expectedExpiryDate, string[] expectedProtocols)
32-
{
33-
OOCv1ConfigBase? config = JsonSerializer.Deserialize(json, OOCv1JsonSerializerContext.Default.OOCv1ConfigBase);
25+
[Test]
26+
[Arguments("{\"username\":\"somebody\",\"protocols\":[\"shadowsocks\"]}",
27+
"somebody", null, null, null, new string[] { "shadowsocks", })]
28+
[Arguments("{\"username\":\"nobody\",\"bytesUsed\":274877906944,\"bytesRemaining\":824633720832,\"expiryDate\":1609459200,\"protocols\":[\"shadowsocks\",\"vmess\",\"trojan-go\"]}",
29+
"nobody", 274877906944UL, 824633720832UL, 1609459200L, new string[] { "shadowsocks", "vmess", "trojan-go", })]
30+
public async Task ConfigBase_Deserialization(string json, string? expectedUsername, ulong? expectedBytesUsed, ulong? expectedBytesRemaining, long? expectedExpiryDate, string[] expectedProtocols)
31+
{
32+
OOCv1ConfigBase? config = JsonSerializer.Deserialize(json, OOCv1JsonSerializerContext.Default.OOCv1ConfigBase);
3433

35-
Assert.NotNull(config);
36-
Assert.Equal(expectedUsername, config.Username);
37-
Assert.Equal(expectedBytesUsed, config.BytesUsed);
38-
Assert.Equal(expectedBytesRemaining, config.BytesRemaining);
39-
Assert.Equal(expectedExpiryDate, config.ExpiryDate?.ToUnixTimeSeconds());
40-
Assert.Equal(expectedProtocols, config.Protocols);
41-
}
34+
await Assert.That(config).IsNotNull();
35+
await Assert.That(config.Username).IsEqualTo(expectedUsername);
36+
await Assert.That(config.BytesUsed).IsEqualTo(expectedBytesUsed);
37+
await Assert.That(config.BytesRemaining).IsEqualTo(expectedBytesRemaining);
38+
await Assert.That(config.ExpiryDate?.ToUnixTimeSeconds()).IsEqualTo(expectedExpiryDate);
39+
await Assert.That(config.Protocols).IsEquivalentTo(expectedProtocols);
4240
}
4341
}

‎tests/OpenOnlineConfig.Tests/OpenOnlineConfig.Tests.csproj‎

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,15 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
45
<TargetFramework>net10.0</TargetFramework>
5-
66
<IsPackable>false</IsPackable>
7-
87
<Nullable>enable</Nullable>
8+
<ImplicitUsings>enable</ImplicitUsings>
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.10.1" />
13-
<PackageReference Include="xunit" Version="2.9.3" />
14-
<PackageReference Include="xunit.runner.visualstudio" Version="4.0.0">
15-
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
16-
<PrivateAssets>all</PrivateAssets>
17-
</PackageReference>
18-
<PackageReference Include="coverlet.collector" Version="10.1.0">
19-
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
20-
<PrivateAssets>all</PrivateAssets>
21-
</PackageReference>
12+
<PackageReference Include="TUnit" Version="1.73.5" />
2213
</ItemGroup>
2314

2415
<ItemGroup>

0 commit comments

Comments
 (0)