public async Task GetPokemonFavorites_ReturnsPokemonFavorites()
        {
            #region Arrange
            string           id               = UserIdMother.Id();
            UserId           userId           = UserIdMother.UserId();
            int              pokemonId        = PokemonIdMother.Id();
            PokemonFavorites pokemonFavorites = PokemonFavoritesMother.PokemonFavorites();

            var userRepository = new Mock <UserRepository>();

            userRepository
            .Setup(r => r.Find(It.IsAny <UserId>()))
            .ReturnsAsync(UserMother.UserWithFavorites(id, pokemonId));

            userRepository
            .Setup(r => r.Exists(It.IsAny <UserId>()))
            .ReturnsAsync(true);

            UserFinder userFinder = new UserFinder(userRepository.Object);
            PokemonFavoriteSearcher pokemonFavoriteSearcher = new PokemonFavoriteSearcher();
            GetPokemonUserFavorites getPokemonUserFavorites = new GetPokemonUserFavorites(userFinder, pokemonFavoriteSearcher);

            #endregion

            #region Act
            PokemonFavorites favorites = await getPokemonUserFavorites.Execute(id);

            #endregion

            #region Assert
            Assert.True(pokemonFavorites.Favorites.All(f => favorites.Favorites.Any(item =>
                                                                                    item.PokemonId.Id == f.PokemonId.Id)));

            #endregion
        }
 public GetPokemonUserFavorites(UserFinder userFinder,
                                PokemonFavoriteSearcher pokemonFavoriteSearcher)
 {
     _userFinder = userFinder;
     _pokemonFavoriteSearcher = pokemonFavoriteSearcher;
 }