test(free-battle): two-viewer PvP pairing flow
This commit is contained in:
@@ -62,4 +62,35 @@ public class FreeBattleControllerTests
|
||||
Assert.That(data.GetProperty("node_server_url").GetString(), Is.EqualTo(""),
|
||||
"Empty string, not absent — Phase 2 fix pattern.");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task DoMatching_unlimited_two_viewers_pair_PvP()
|
||||
{
|
||||
await using var factory = new SVSimTestFactory();
|
||||
var v1 = await factory.SeedViewerAsync(steamId: 76_561_198_000_000_011UL, displayName: "Alice");
|
||||
var v2 = await factory.SeedViewerAsync(steamId: 76_561_198_000_000_012UL, displayName: "Bob");
|
||||
await factory.SeedGlobalsAsync();
|
||||
await factory.SeedDeckAsync(v1, Format.Unlimited, 1);
|
||||
await factory.SeedDeckAsync(v2, Format.Unlimited, 1);
|
||||
|
||||
// Alice polls first → parks.
|
||||
var c1 = factory.CreateAuthenticatedClient(v1);
|
||||
var r1 = await c1.PostAsJsonAsync("/unlimited_free_battle/do_matching", DoMatchingBody);
|
||||
var j1 = JsonDocument.Parse(await r1.Content.ReadAsStringAsync()).RootElement;
|
||||
Assert.That(j1.GetProperty("matching_state").GetInt32(), Is.EqualTo(3002));
|
||||
|
||||
// Bob polls — pairs, returns joiner (3004).
|
||||
var c2 = factory.CreateAuthenticatedClient(v2);
|
||||
var r2 = await c2.PostAsJsonAsync("/unlimited_free_battle/do_matching", DoMatchingBody);
|
||||
var j2 = JsonDocument.Parse(await r2.Content.ReadAsStringAsync()).RootElement;
|
||||
Assert.That(j2.GetProperty("matching_state").GetInt32(), Is.EqualTo(3004), "Joiner = 3004.");
|
||||
Assert.That(j2.GetProperty("battle_id").GetString(), Is.Not.Null.And.Not.Empty);
|
||||
Assert.That(j2.GetProperty("node_server_url").GetString(), Is.Not.Empty);
|
||||
|
||||
// Alice polls again — gets cached match, owner role (3007).
|
||||
var r3 = await c1.PostAsJsonAsync("/unlimited_free_battle/do_matching", DoMatchingBody);
|
||||
var j3 = JsonDocument.Parse(await r3.Content.ReadAsStringAsync()).RootElement;
|
||||
Assert.That(j3.GetProperty("matching_state").GetInt32(), Is.EqualTo(3007), "Owner = 3007.");
|
||||
Assert.That(j3.GetProperty("battle_id").GetString(), Is.EqualTo(j2.GetProperty("battle_id").GetString()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user