public void SendPlayerId_None_ClientReceivedPlayerId(IServerMessageTransceiver server, IClientMessageTransceiver client) { const int TestPlayerId = 0; Task sendPlayerIdTask = null; server.ReceivedJoinRequest += (sender, args) => { sendPlayerIdTask = server.SendPlayerIdAsync(args.ConnectionId, TestPlayerId); }; int playerId = -1; client.ReceivedPlayerId += (sender, args) => { playerId = args.PlayerId; }; var sendJoinRequestTask = client.SendJoinRequestAsync(); sendJoinRequestTask.Wait(); sendPlayerIdTask.Wait(); Assert.Equal(TestPlayerId, playerId); }
/// <summary> /// コンストラクタ /// </summary> public DaifugoDealer(Configuration config, IServerMessageTransceiver messageTransceiver) { this.messageTransceiver = messageTransceiver; InitializeGame(config.playerCount, config.localRules); this.messageTransceiver.ReceivedJoinRequest += (sender, args) => { var playerId = LetPlayerJoin(); var connectionId = args.ConnectionId; if (playerId != -1) { playerIdToConnectionIdMap.Add(playerId, connectionId); } var task = messageTransceiver.SendPlayerIdAsync(connectionId, playerId); task.RunSynchronously(); }; this.messageTransceiver.ReceivedCards += (sender, args) => { ReceivedCard(args.PlayerId, args.Cards); }; }