public void EndGameRunningIsFalseTest() { // Arrange var repositoryMock = new Mock <IRepository <Room, long> >(MockBehavior.Strict); var publisherMock = new Mock <IEventPublisher>(MockBehavior.Strict); var endCommand = new EndGameCommand() { RoomId = 1 }; var foundRoom = new Room() { Id = 1, Name = "Chess-01", Running = true }; repositoryMock.Setup(x => x.Find(1)).Returns(foundRoom); repositoryMock.Setup(x => x.Update(foundRoom)).Returns(1); var target = new RoomService(repositoryMock.Object, publisherMock.Object); var createRoomCommand = new CreateRoomCommand() { RoomName = "Chess-01" }; // Act var result = target.EndGame(endCommand); // Assert repositoryMock.Verify(x => x.Find(endCommand.RoomId), Times.Once()); repositoryMock.Verify(x => x.Update(It.IsAny <Room>()), Times.Once()); Assert.IsNotNull(result); Assert.AreEqual(foundRoom.Name, result.Name); Assert.IsFalse(result.Running); }
public IActionResult EndGame([FromBody] EndGameCommand endCommand) { if (ModelState.IsValid) { var error = new ErrorMessage(ErrorTypes.BadRequest, "Modelstate Invalide"); return(BadRequest(error)); } try { var room = _service.EndGame(endCommand); return(Ok(room)); } catch (DbUpdateException) { var error = new ErrorMessage(ErrorTypes.NotFound, $"Fout met updaten game met volgende Command: RoomName:{endCommand.RoomName}, CommandId:{endCommand.CommandId}, TimeStamp:{endCommand.Timestamp}"); return(NotFound(error)); } catch (Exception) { var error = new ErrorMessage(ErrorTypes.Unknown, $"Onbekende fout met volgende Command: RoomName:{endCommand.RoomName}, CommandId:{endCommand.CommandId}, TimeStamp:{endCommand.Timestamp}"); return(BadRequest(error)); } }
public async Task <ActionResult> PostEndGameAsync(Guid gameId, EndGameRequest request) { var command = new EndGameCommand(gameId, request.EndTime); await _endGameCommandHandler.HandleAsync(command); return(Ok()); }
public void EndGameCommand() { ICommand endGameCommand = new EndGameCommand(_context); endGameCommand.Execute(); Assert.IsTrue(_context.State is EndGameState); }
public Room EndGame(EndGameCommand endCommand) { var room = _repository.Find(endCommand.RoomId); room.Running = false; _repository.Update(room); return(room); }
public EndGame(EndGameState endGameState) { Action = (ecs, config) => { var endGameCommand = new EndGameCommand() { EndGameState = endGameState }; ecs.EnqueueCommand(endGameCommand); }; }
public void SuccesEndingGameCorrectCommand() { //Arrange var mock = new Mock <RoomService>(MockBehavior.Strict); var command = new EndGameCommand(); mock.Setup(x => x.EndGame(It.Is <EndGameCommand>(y => y == command))); var target = new RoomController(mock.Object); //Act target.EndGame(command); //Assert mock.Verify(x => x.EndGame(It.Is <EndGameCommand>(y => y == command)), Times.Once); }
/// <summary> /// Transitates to the next round /// </summary> private void NextRound() { bool accepted; int commitedAt; RaftCommand command; if (this.State != State.LEADER) { return; } if (!this.HasGameStarted) { return; } // Console.WriteLine($"{DateTime.Now.ToString("yyyyMMddHHmmssfff")} ON NextRound {this.Address} in State {this.State}"); if (this.StateMachine.HasGameEnded()) { this.HasGameStarted = false; Console.WriteLine(" GAME HAS ENDED"); Console.WriteLine(this.StateMachine.Stage.GetPlayers().Count > 0); command = new EndGameCommand(); this.OnCommand(command); // TODO: handle clients and server lists // TODO: Generate Log Entry and multicast AppendEntries return; } command = new NewRoundCommand() { Name = "New Round" }; this.OnCommand(command); }
internal void Apply(EndGameCommand command) { ApplyDomainEvent(new MatchEndedEvent(Id, command.Winner)); }