public async Task <IActionResult> RestartGame([FromBody] P2PGameKeyDto dto) { if (string.IsNullOrWhiteSpace(dto.Code)) { return(BadRequest()); } if (string.IsNullOrWhiteSpace(dto.ConnectionId)) { return(BadRequest()); } PeerToPeerSessionState session = await _p2pSvc.FindActiveSessionAsync(dto.Code, dto.ConnectionId); if (session == null) { return(BadRequest()); } //only host can restart game for now if (dto.ConnectionId != session.HostConnectionId) { return(BadRequest()); } session = await _p2pSvc.RestartGameAsync(session); await _gameHubContext.Clients.Client(session.FriendConnectionId).SendAsync("RestartGame"); return(Ok(new { })); }
public async Task JoinSessionTest_Ok() { P2PGameKeyDto dto = new P2PGameKeyDto() { Code = "12345", ConnectionId = "123" }; var p2pSvc = new Mock <IPeerToPeerGameService>(); p2pSvc.Setup(x => x.JoinSessionAsync(It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(new PeerToPeerSessionState() { Code = "12345", HostConnectionId = "c1", FriendConnectionId = "c2" }); var controller = new PeerToPeerGameController(p2pSvc.Object, _mapper, _signalRHub.Object, _logger.Object); var output = await controller.JoinSession(dto); p2pSvc.Verify(p => p.JoinSessionAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Once); _signalRHub.VerifyGet(p => p.Clients, Times.Once); Assert.AreEqual(output.GetType(), typeof(OkObjectResult)); }
public async Task StartNewGame_BadRequest_3() { P2PGameKeyDto dto = new P2PGameKeyDto(); var p2pSvc = new Mock <IPeerToPeerGameService>(); var controller = new PeerToPeerGameController(p2pSvc.Object, _mapper, _signalRHub.Object, _logger.Object); var output = await controller.StartNewGame(new P2PNewGametDto { Code = "12345", ConnectionId = "c1", Ships = null }); Assert.AreEqual(output.GetType(), typeof(BadRequestResult)); }
public async Task FireCannonProcessResult_BadRequest_2() { P2PGameKeyDto dto = new P2PGameKeyDto(); var p2pSvc = new Mock <IPeerToPeerGameService>(); var controller = new PeerToPeerGameController(p2pSvc.Object, _mapper, _signalRHub.Object, _logger.Object); var output = await controller.FireCannonProcessResult(new P2PFireCannonCallbackDto { Code = "12345", ConnectionId = null }); _signalRHub.VerifyGet(p => p.Clients, Times.Never); Assert.AreEqual(output.GetType(), typeof(BadRequestResult)); }
public async Task StartNewGame_BadRequest_4() { P2PGameKeyDto dto = new P2PGameKeyDto(); var p2pSvc = new Mock <IPeerToPeerGameService>(); p2pSvc.Setup(x => x.AddPeerToSession(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <IEnumerable <ShipInfo> >())) .ReturnsAsync((PeerToPeerSessionState)null); var controller = new PeerToPeerGameController(p2pSvc.Object, _mapper, _signalRHub.Object, _logger.Object); var output = await controller.StartNewGame(new P2PNewGametDto { Code = "12345", ConnectionId = "c1", Ships = new ClientShipDto[10] }); Assert.AreEqual(output.GetType(), typeof(BadRequestResult)); }
public async Task FireCannonProcessResult_BadRequest_3() { P2PGameKeyDto dto = new P2PGameKeyDto(); var p2pSvc = new Mock <IPeerToPeerGameService>(); p2pSvc.Setup(x => x.AddPeerToSession(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <IEnumerable <ShipInfo> >())) .ReturnsAsync((PeerToPeerSessionState)null); var controller = new PeerToPeerGameController(p2pSvc.Object, _mapper, _signalRHub.Object, _logger.Object); var output = await controller.FireCannonProcessResult(new P2PFireCannonCallbackDto { Code = "12345", ConnectionId = "c1" }); _signalRHub.VerifyGet(p => p.Clients, Times.Never); Assert.AreEqual(output.GetType(), typeof(BadRequestResult)); }
public async Task <IActionResult> JoinSession([FromBody] P2PGameKeyDto dto) { if (string.IsNullOrWhiteSpace(dto.ConnectionId)) { return(BadRequest()); } PeerToPeerSessionState g = await _p2pSvc.JoinSessionAsync(dto.Code, dto.ConnectionId); if (g == null) { return(BadRequest()); } if (dto.ConnectionId == g.HostConnectionId) { return(BadRequest()); } await _gameHubContext.Clients.Client(g.HostConnectionId).SendAsync("FriendConnected"); return(Ok(new { })); }