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);
        }