Skip to content

Commit bb221f9

Browse files
committed
[test] Update TrustFunctionTests for .NET 10 migration
1 parent 99a04eb commit bb221f9

1 file changed

Lines changed: 158 additions & 9 deletions

File tree

tests/ByteSync.Functions.UnitTests/Http/TrustFunctionTests.cs

Lines changed: 158 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
using System.Text;
33
using ByteSync.Common.Business.Misc;
44
using ByteSync.Common.Business.Sessions.Cloud.Connections;
5+
using ByteSync.Common.Business.Trust.Connections;
56
using ByteSync.Common.Business.Versions;
67
using ByteSync.Common.Controls.Json;
8+
using ByteSync.Common.Business.EndPoints;
79
using ByteSync.Functions.Http;
810
using ByteSync.Functions.UnitTests.TestHelpers;
911
using ByteSync.ServerCommon.Business.Auth;
@@ -30,6 +32,159 @@ private static FunctionContext BuildFunctionContextWithClient()
3032
return mockContext.Object;
3133
}
3234

35+
private static async Task WriteBodyAsync<T>(FakeHttpRequestData request, T body)
36+
{
37+
var json = JsonHelper.Serialize(body);
38+
var bytes = Encoding.UTF8.GetBytes(json);
39+
request.Body.SetLength(0);
40+
await request.Body.WriteAsync(bytes, 0, bytes.Length);
41+
request.Body.Position = 0;
42+
}
43+
44+
[Test]
45+
public async Task StartTrustCheck_ForwardsRequest_AndReturnsOk()
46+
{
47+
var mediatorMock = new Mock<IMediator>();
48+
StartTrustCheckRequest? captured = null;
49+
mediatorMock
50+
.Setup(m => m.Send(It.IsAny<StartTrustCheckRequest>(), It.IsAny<CancellationToken>()))
51+
.Callback<object, CancellationToken>((r, _) => captured = (StartTrustCheckRequest)r)
52+
.ReturnsAsync(new StartTrustCheckResult { IsOK = true });
53+
54+
var function = new TrustFunction(mediatorMock.Object);
55+
var context = BuildFunctionContextWithClient();
56+
var request = new FakeHttpRequestData(context);
57+
58+
var parameters = new TrustCheckParameters { SessionId = "S1", MembersInstanceIdsToCheck = ["VI"] };
59+
await WriteBodyAsync(request, parameters);
60+
61+
var response = await function.StartTrustCheck(request, context);
62+
63+
response.StatusCode.Should().Be(HttpStatusCode.OK);
64+
captured.Should().NotBeNull();
65+
captured!.Parameters.SessionId.Should().Be("S1");
66+
}
67+
68+
[Test]
69+
public async Task GiveMemberPublicKeyCheckData_ForwardsRequest_AndReturnsOk()
70+
{
71+
var mediatorMock = new Mock<IMediator>();
72+
GiveMemberPublicKeyCheckDataRequest? captured = null;
73+
mediatorMock
74+
.Setup(m => m.Send(It.IsAny<GiveMemberPublicKeyCheckDataRequest>(), It.IsAny<CancellationToken>()))
75+
.Callback<object, CancellationToken>((r, _) => captured = (GiveMemberPublicKeyCheckDataRequest)r)
76+
.Returns(Task.CompletedTask);
77+
78+
var function = new TrustFunction(mediatorMock.Object);
79+
var context = BuildFunctionContextWithClient();
80+
var request = new FakeHttpRequestData(context);
81+
82+
var parameters = new GiveMemberPublicKeyCheckDataParameters { SessionId = "S1", PublicKeyCheckData = new PublicKeyCheckData() };
83+
await WriteBodyAsync(request, parameters);
84+
85+
var response = await function.GiveMemberPublicKeyCheckData(request, context);
86+
87+
response.StatusCode.Should().Be(HttpStatusCode.OK);
88+
captured.Should().NotBeNull();
89+
captured!.Parameters.SessionId.Should().Be("S1");
90+
}
91+
92+
[Test]
93+
public async Task SendDigitalSignatures_ForwardsRequest_AndReturnsOk()
94+
{
95+
var mediatorMock = new Mock<IMediator>();
96+
SendDigitalSignaturesRequest? captured = null;
97+
mediatorMock
98+
.Setup(m => m.Send(It.IsAny<SendDigitalSignaturesRequest>(), It.IsAny<CancellationToken>()))
99+
.Callback<object, CancellationToken>((r, _) => captured = (SendDigitalSignaturesRequest)r)
100+
.Returns(Task.CompletedTask);
101+
102+
var function = new TrustFunction(mediatorMock.Object);
103+
var context = BuildFunctionContextWithClient();
104+
var request = new FakeHttpRequestData(context);
105+
106+
var parameters = new SendDigitalSignaturesParameters { DataId = "S1", DigitalSignatureCheckInfos = new List<DigitalSignatureCheckInfo>() };
107+
await WriteBodyAsync(request, parameters);
108+
109+
var response = await function.SendDigitalSignatures(request, context);
110+
111+
response.StatusCode.Should().Be(HttpStatusCode.OK);
112+
captured.Should().NotBeNull();
113+
captured!.Parameters.DataId.Should().Be("S1");
114+
}
115+
116+
[Test]
117+
public async Task SetAuthChecked_ForwardsRequest_AndReturnsOk()
118+
{
119+
var mediatorMock = new Mock<IMediator>();
120+
SetAuthCheckedRequest? captured = null;
121+
mediatorMock
122+
.Setup(m => m.Send(It.IsAny<SetAuthCheckedRequest>(), It.IsAny<CancellationToken>()))
123+
.Callback<object, CancellationToken>((r, _) => captured = (SetAuthCheckedRequest)r)
124+
.Returns(Task.CompletedTask);
125+
126+
var function = new TrustFunction(mediatorMock.Object);
127+
var context = BuildFunctionContextWithClient();
128+
var request = new FakeHttpRequestData(context);
129+
130+
var parameters = new SetAuthCheckedParameters { SessionId = "S1" };
131+
await WriteBodyAsync(request, parameters);
132+
133+
var response = await function.SetAuthChecked(request, context);
134+
135+
response.StatusCode.Should().Be(HttpStatusCode.OK);
136+
captured.Should().NotBeNull();
137+
captured!.Parameters.SessionId.Should().Be("S1");
138+
}
139+
140+
[Test]
141+
public async Task RequestTrustPublicKey_ForwardsRequest_AndReturnsOk()
142+
{
143+
var mediatorMock = new Mock<IMediator>();
144+
RequestTrustPublicKeyRequest? captured = null;
145+
mediatorMock
146+
.Setup(m => m.Send(It.IsAny<RequestTrustPublicKeyRequest>(), It.IsAny<CancellationToken>()))
147+
.Callback<object, CancellationToken>((r, _) => captured = (RequestTrustPublicKeyRequest)r)
148+
.Returns(Task.CompletedTask);
149+
150+
var function = new TrustFunction(mediatorMock.Object);
151+
var context = BuildFunctionContextWithClient();
152+
var request = new FakeHttpRequestData(context);
153+
154+
var parameters = new RequestTrustProcessParameters { SessionId = "S1" };
155+
await WriteBodyAsync(request, parameters);
156+
157+
var response = await function.RequestTrustPublicKey(request, context);
158+
159+
response.StatusCode.Should().Be(HttpStatusCode.OK);
160+
captured.Should().NotBeNull();
161+
captured!.Parameters.SessionId.Should().Be("S1");
162+
}
163+
164+
[Test]
165+
public async Task InformPublicKeyValidationIsFinished_ForwardsRequest_AndReturnsOk()
166+
{
167+
var mediatorMock = new Mock<IMediator>();
168+
InformPublicKeyValidationIsFinishedRequest? captured = null;
169+
mediatorMock
170+
.Setup(m => m.Send(It.IsAny<InformPublicKeyValidationIsFinishedRequest>(), It.IsAny<CancellationToken>()))
171+
.Callback<object, CancellationToken>((r, _) => captured = (InformPublicKeyValidationIsFinishedRequest)r)
172+
.Returns(Task.CompletedTask);
173+
174+
var function = new TrustFunction(mediatorMock.Object);
175+
var context = BuildFunctionContextWithClient();
176+
var request = new FakeHttpRequestData(context);
177+
178+
var parameters = new PublicKeyValidationParameters { SessionId = "S1" };
179+
await WriteBodyAsync(request, parameters);
180+
181+
var response = await function.InformPublicKeyValidationIsFinished(request, context);
182+
183+
response.StatusCode.Should().Be(HttpStatusCode.OK);
184+
captured.Should().NotBeNull();
185+
captured!.Parameters.SessionId.Should().Be("S1");
186+
}
187+
33188
[Test]
34189
public async Task InformProtocolVersionIncompatible_ForwardsRequest_AndReturnsOk()
35190
{
@@ -42,23 +197,17 @@ public async Task InformProtocolVersionIncompatible_ForwardsRequest_AndReturnsOk
42197

43198
var function = new TrustFunction(mediatorMock.Object);
44199
var context = BuildFunctionContextWithClient();
45-
46200
var request = new FakeHttpRequestData(context);
47-
var body = new InformProtocolVersionIncompatibleParameters
201+
202+
var parameters = new InformProtocolVersionIncompatibleParameters
48203
{
49204
SessionId = "test-session-id",
50205
MemberClientInstanceId = "member-instance-id",
51206
JoinerClientInstanceId = "joiner-instance-id",
52207
MemberProtocolVersion = ProtocolVersion.CURRENT,
53208
JoinerProtocolVersion = 0
54209
};
55-
var json = JsonHelper.Serialize(body);
56-
await using (var writer = new StreamWriter(request.Body, Encoding.UTF8, 1024, leaveOpen: true))
57-
{
58-
await writer.WriteAsync(json);
59-
}
60-
61-
request.Body.Position = 0;
210+
await WriteBodyAsync(request, parameters);
62211

63212
var response = await function.InformProtocolVersionIncompatible(request, context);
64213

0 commit comments

Comments
 (0)