public async Task Battle_SecondPokemonStronger_FirstPokemonWins() { // ARRANGE var firstPokemon = new PokemonDTO() { Id = Guid.Parse("8372c3f3-8281-4c21-8d0f-8830817bc2fb"), BaseStats = new BaseStat() { HealthPoints = 50, SpecialAttack = 10, Attack = 10, SpecialDefense = 10, Defense = 10, Speed = 2 } }; var secondPokemon = new PokemonDTO() { Id = Guid.Parse("9372c3f3-8281-4c21-8d0f-8830817bc2fb"), BaseStats = new BaseStat() { HealthPoints = 100, SpecialAttack = 10, Attack = 10, SpecialDefense = 10, Defense = 10, Speed = 2 } }; var pokemonServiceMock = new Mock <IPokemonService>(); pokemonServiceMock .Setup(x => x.Get(Guid.Parse("8372c3f3-8281-4c21-8d0f-8830817bc2fb"), CancellationToken.None)) .ReturnsAsync(firstPokemon); pokemonServiceMock .Setup(x => x.Get(Guid.Parse("9372c3f3-8281-4c21-8d0f-8830817bc2fb"), CancellationToken.None)) .ReturnsAsync(secondPokemon); var logger = new NullLogger <BattleService>(); var service = new BattleService(pokemonServiceMock.Object, logger); // ACT var result = await service.Battle(firstPokemon.Id, secondPokemon.Id, CancellationToken.None); // ASSERT Assert.Equal(secondPokemon.Id, result.WinnerID); Assert.Equal(firstPokemon.Id, result.LoserID); Assert.False(result.Draw); }