public void Handle_WhenAppropriateGameDoesNotExist_ShouldThrowNotFoundException() { // arrange int gameId = 999; var command = new CheckAndUpdateGameWinConditionsCommand(gameId); var handler = new CheckAndUpdateGameWinConditionsCommandHandler(Context); // act // assert Should.ThrowAsync <NotFoundException>(() => handler.Handle(command, CancellationToken.None)); }
public void IsValid_WhenGameIdIsNought_ShouldBeFalse() { // arrange int gameId = 0; var command = new CheckAndUpdateGameWinConditionsCommand(gameId); var validator = new CheckAndUpdateGameWinConditionsCommandValidator(); // act FluentValidation.Results.ValidationResult result = validator.Validate(command); // assert result.IsValid.ShouldBe(false); }
public void IsValid_WhenGameIdIsGreaterThan0_ShouldBeTrue() { // arrange int gameId = 10; var command = new CheckAndUpdateGameWinConditionsCommand(gameId); var validator = new CheckAndUpdateGameWinConditionsCommandValidator(); // act FluentValidation.Results.ValidationResult result = validator.Validate(command); // assert result.IsValid.ShouldBe(true); }
public async Task Handle_WhenGameWithTurnNumberLessThanMinimal_ShouldOnlyIncrementTurnNumber() { // arrange int gameId = 5; var command = new CheckAndUpdateGameWinConditionsCommand(gameId); var handler = new CheckAndUpdateGameWinConditionsCommandHandler(Context); // act await handler.Handle(command, CancellationToken.None); Domain.Entities.Game entity = Context.Games.Find(command.GameId); // assert entity.ShouldNotBeNull(); entity.TurnNumber.ShouldBe((byte)4); }
public async Task Handle_WhenNoneOfThePlayersHaveWinConditionTilesButThereArePossibility_ShouldReturnActive() { // arrange int gameId = 7; var command = new CheckAndUpdateGameWinConditionsCommand(gameId); var handler = new CheckAndUpdateGameWinConditionsCommandHandler(Context); // act GameResult result = await handler.Handle(command, CancellationToken.None); Domain.Entities.Game entity = Context.Games.Find(command.GameId); // assert entity.TurnNumber.ShouldBe((byte)6); result.ShouldBe(GameResult.Active); entity.Result.ShouldBe(GameResult.Active); }
public async Task Handle_WhenNoughtPlayerHasWinConditionTiles_ShouldReturnLoss() { // arrange int gameId = 8; var command = new CheckAndUpdateGameWinConditionsCommand(gameId); var handler = new CheckAndUpdateGameWinConditionsCommandHandler(Context); // act GameResult result = await handler.Handle(command, CancellationToken.None); Domain.Entities.Game entity = Context.Games.Find(command.GameId); // assert entity.TurnNumber.ShouldBe((byte)7); result.ShouldBe(GameResult.Loss); entity.Result.ShouldBe(GameResult.Loss); }