Skip to content

Commit bd5aedc

Browse files
committed
Add test for Set
1 parent ae2d622 commit bd5aedc

File tree

1 file changed

+27
-12
lines changed

1 file changed

+27
-12
lines changed

dotnet/test/common/BiDi/Script/CallFunctionParameterTest.cs

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ public async Task CanCallFunctionInARealm()
225225

226226
[Test]
227227
[TestCaseSource(nameof(RoundtripOptions))]
228-
public async Task CanCallFunctionAndRoundtrip_Five(LocalValue local, RemoteValue returned, string javaScriptAssert)
228+
public async Task CanCallFunctionAndRoundtrip_Five(LocalValue local, RemoteValue expected, string javaScriptAssert)
229229
{
230230
var response = await context.Script.CallFunctionAsync($$"""
231231
(arg) => {
@@ -237,27 +237,31 @@ public async Task CanCallFunctionAndRoundtrip_Five(LocalValue local, RemoteValue
237237
}
238238
""", false, new() { Arguments = [local] });
239239

240-
if (response.Result is RemoteValue.Array arrayResponse && returned is RemoteValue.Array expectedArray)
240+
if (response.Result is RemoteValue.Array actualArray && expected is RemoteValue.Array expectedArray)
241241
{
242-
Assert.That(arrayResponse.Value, Is.EqualTo(expectedArray.Value));
242+
Assert.That(actualArray.Value, Is.EqualTo(expectedArray.Value));
243243
}
244-
else if (response.Result is RemoteValue.Object objectResponse && returned is RemoteValue.Object expectedObject)
244+
else if (response.Result is RemoteValue.Object actualObject && expected is RemoteValue.Object expectedObject)
245245
{
246-
Assert.That(objectResponse.Value, Is.EqualTo(expectedObject.Value));
246+
Assert.That(actualObject.Value, Is.EqualTo(expectedObject.Value));
247247
}
248-
else if (response.Result is RemoteValue.Map mapResponse && returned is RemoteValue.Map expectedMap)
248+
else if (response.Result is RemoteValue.Map actualMap && expected is RemoteValue.Map expectedMap)
249249
{
250-
Assert.That(mapResponse.Value, Is.EqualTo(expectedMap.Value));
250+
Assert.That(actualMap.Value, Is.EqualTo(expectedMap.Value));
251251
}
252-
else if (response.Result is RemoteValue.Date dateResponse && returned is RemoteValue.Date expectedDate)
252+
else if (response.Result is RemoteValue.Set actualSet && expected is RemoteValue.Set expectedSet)
253253
{
254-
var actualDate = DateTime.SpecifyKind(DateTime.Parse(dateResponse.Value, CultureInfo.InvariantCulture), DateTimeKind.Utc);
255-
Assert.That(actualDate.Kind, Is.EqualTo(DateTimeKind.Utc));
256-
Assert.That(actualDate, Is.EqualTo(DateTime.Parse(expectedDate.Value)).Within(TimeSpan.FromMilliseconds(1)));
254+
Assert.That(actualSet.Value, Is.EqualTo(expectedSet.Value));
255+
}
256+
else if (response.Result is RemoteValue.Date actualDate && expected is RemoteValue.Date expectedDate)
257+
{
258+
var actualDateParsed = DateTime.SpecifyKind(DateTime.Parse(actualDate.Value, CultureInfo.InvariantCulture), DateTimeKind.Utc);
259+
Assert.That(actualDateParsed.Kind, Is.EqualTo(DateTimeKind.Utc));
260+
Assert.That(actualDateParsed, Is.EqualTo(DateTime.Parse(expectedDate.Value)).Within(TimeSpan.FromMilliseconds(1)));
257261
}
258262
else
259263
{
260-
Assert.That(response.Result, Is.EqualTo(returned));
264+
Assert.That(response.Result, Is.EqualTo(expected));
261265
}
262266
}
263267
private const string PinnedDateTimeString = "2025-03-09T00:30:33.083Z";
@@ -357,5 +361,16 @@ private static IEnumerable<TestCaseData> RoundtripOptions()
357361
{
358362
TestName = nameof(CanCallFunctionAndRoundtrip_Five) + "(Map({'key': 'value'}))",
359363
};
364+
365+
yield return new TestCaseData
366+
(
367+
new LocalValue.Set([new LocalValue.String("key")]),
368+
new RemoteValue.Set { Value = [new RemoteValue.String("key")] },
369+
"arg.has('key') && arg.size === 1"
370+
)
371+
{
372+
TestName = nameof(CanCallFunctionAndRoundtrip_Five) + "(Set({'key'}))",
373+
374+
};
360375
}
361376
}

0 commit comments

Comments
 (0)