public async Task SaveFavorites_ReturnsUserWithFavorites() { #region Arrange InMemoryUserRepository inMemoryUserRepository = new InMemoryUserRepository(memoryCache); UserId userId = new UserId(UserIdMother.Id()); User user = new User(userId); PokemonId pokemonId = PokemonIdMother.PokemonId(); user.AddPokemonFavorite(new PokemonFavorite(pokemonId)); #endregion #region Act await inMemoryUserRepository.Save(user); User userFound = await inMemoryUserRepository.Find(userId); await inMemoryUserRepository.SaveFavorites(user); #endregion #region Assert var pokemonFavoritesArray = userFound.PokemonFavorites.Favorites.Select(s => s.PokemonId.Id.ToString()).ToArray(); Assert.Equal(pokemonFavoritesArray, PokemonFavoritesMother.PokemonFavorites().Favorites.Select(s => s.PokemonId.Id.ToString()).ToArray(), StringComparer.InvariantCultureIgnoreCase); #endregion }
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 }