public async Task GetGameByIdAsync_ReturnsGameResultForGivenId() { //Arrange var results = _fixture.Create <GetGameResults>(); Guid expectedGameId = Guid.Empty; var game = _fixture.Create <Game>(); _mockGameRepository .Setup(exec => exec.GetGameByIdAsync( It.IsAny <Guid>(), It.IsAny <CancellationToken>())) .Callback <Guid, CancellationToken>((gameIdPassed, ct) => { expectedGameId = gameIdPassed; }) .ReturnsAsync(game); //Act var result = await _gameController .GetGameByIdAsync(game.Id) as OkObjectResult; //Assert _mockGameRepository .Verify(exec => exec.GetGameByIdAsync( It.IsAny <Guid>(), It.IsAny <CancellationToken>()), Times.Once); result .Should() .NotBeNull(); result.StatusCode .Should() .Be((int)HttpStatusCode.OK); var gameResult = result.Value as GetGameResults; gameResult.Id .Should() .Be(expectedGameId); }