public void ShouldThrowAnExceptionWhenUserAlreadyExists() { #region Given string userId = UserIdMother.Id(); string expectedMessage = $"The user '{userId}' already exists"; User user = UserMother.User(userId); var userRepository = new Mock <UserRepository>(); userRepository .Setup(r => r.Find(It.IsAny <UserId>())) .ReturnsAsync(UserMother.User(userId)); userRepository .Setup(r => r.Exists(It.IsAny <UserId>())) .ReturnsAsync(true); userRepository .Setup(r => r.Save(It.IsAny <User>())); UserCreator userCreator = new UserCreator(userRepository.Object); #endregion #region When var exception = Record.ExceptionAsync(async() => await userCreator.Execute(user)); #endregion #region Then Assert.Equal(expectedMessage, exception.Result.Message); #endregion }
public void CreateUser_ReturnsUserAlreadyExistsException() { #region Arrange string userId = UserIdMother.Id(); string expectedMessage = $"The user '{userId}' already exists"; var userRepository = new Mock <UserRepository>(); userRepository .Setup(r => r.Find(It.IsAny <UserId>())) .ReturnsAsync(UserMother.User(userId)); userRepository .Setup(r => r.Exists(It.IsAny <UserId>())) .ReturnsAsync(true); userRepository .Setup(r => r.Save(It.IsAny <User>())); UserCreator userCreator = new UserCreator(userRepository.Object); CreateUser createUser = new CreateUser(userCreator); #endregion #region Act var exception = Record.ExceptionAsync(async() => await createUser.Execute(userId)); #endregion #region Assert Assert.Equal(expectedMessage, exception.Result.Message); #endregion }
public async Task ShouldCreateUser() { #region Given string userId = UserIdMother.Id(); User user = UserMother.User(userId); var userRepository = new Mock <UserRepository>(); userRepository .Setup(r => r.Save(It.IsAny <User>())); UserCreator userCreator = new UserCreator(userRepository.Object); #endregion #region When await userCreator.Execute(user); #endregion #region Then userRepository.Verify(r => r.Save(It.IsAny <User>()), Times.Once()); #endregion }
public void ShouldThrowAnExceptionWhenPokemonFavoriteAlreadyExists() { #region Given PokemonId pokemonId = PokemonIdMother.PokemonId(); PokemonFavorite pokemonFavorite = new PokemonFavorite(pokemonId); string userId = UserIdMother.Id(); string expectedMessage = $"The pokemon with Id '{pokemonId.Id}' already exists in user favorites list"; User user = UserMother.UserWithFavorites(userId, pokemonId.Id); var userRepository = new Mock <UserRepository>(); userRepository .Setup(r => r.Find(It.IsAny <UserId>())) .ReturnsAsync(UserMother.UserWithFavorites(userId, pokemonId.Id)); userRepository .Setup(r => r.SaveFavorites(It.IsAny <User>())); PokemonFavoriteCreator pokemonFavoriteCreator = new PokemonFavoriteCreator(userRepository.Object); #endregion #region When var exception = Record.ExceptionAsync(async() => await pokemonFavoriteCreator.Execute(user, pokemonFavorite)); #endregion #region Then Assert.Equal(expectedMessage, exception.Result.Message); #endregion }
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 ShouldCreatePokemonFavorite() { #region Given PokemonId pokemonId = PokemonIdMother.PokemonId(); PokemonFavorite pokemonFavorite = new PokemonFavorite(pokemonId); string userId = UserIdMother.Id(); User user = new User(new UserId(userId)); var userRepository = new Mock <UserRepository>(); userRepository .Setup(r => r.SaveFavorites(It.IsAny <User>())); PokemonFavoriteCreator pokemonFavoriteCreator = new PokemonFavoriteCreator(userRepository.Object); #endregion #region When await pokemonFavoriteCreator.Execute(user, pokemonFavorite); #endregion #region Then userRepository.Verify(r => r.SaveFavorites(It.IsAny <User>()), Times.Once()); #endregion }
public void AddPokemonToUserFavorites_ReturnsUserNotFoundException() { #region Arrange int pokemonId = PokemonIdMother.Id(); string userId = UserIdMother.Id(); string expectedMessage = $"User '{userId}' does not exists"; var userRepository = new Mock <UserRepository>(); userRepository .Setup(r => r.SaveFavorites(It.IsAny <User>())); UserFinder userFinder = new UserFinder(userRepository.Object); PokemonFavoriteCreator pokemonFavoriteCreator = new PokemonFavoriteCreator(userRepository.Object); AddPokemonToUserFavorites addPokemonToUserFavorites = new AddPokemonToUserFavorites(userFinder, pokemonFavoriteCreator); #endregion #region Act var exception = Record.ExceptionAsync(async() => await addPokemonToUserFavorites.Execute(userId, pokemonId)); #endregion #region Assert Assert.Equal(expectedMessage, exception.Result.Message); #endregion }
public async Task AddPokemonToUserFavorites_ReturnsVoid() { #region Arrange int pokemonId = PokemonIdMother.Id(); string userId = UserIdMother.Id(); var userRepository = new Mock <UserRepository>(); userRepository .Setup(r => r.Find(It.IsAny <UserId>())) .ReturnsAsync(UserMother.User(userId)); userRepository .Setup(r => r.Exists(It.IsAny <UserId>())) .ReturnsAsync(true); userRepository .Setup(r => r.SaveFavorites(It.IsAny <User>())); UserFinder userFinder = new UserFinder(userRepository.Object); PokemonFavoriteCreator pokemonFavoriteCreator = new PokemonFavoriteCreator(userRepository.Object); AddPokemonToUserFavorites addPokemonToUserFavorites = new AddPokemonToUserFavorites(userFinder, pokemonFavoriteCreator); #endregion #region Act await addPokemonToUserFavorites.Execute(userId, pokemonId); #endregion #region Assert userRepository.Verify(r => r.SaveFavorites(It.IsAny <User>()), Times.Once()); #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 }
public async Task SearchUser_NotFound_ReturnsNull() { #region Arrange InMemoryUserRepository inMemoryUserRepository = new InMemoryUserRepository(memoryCache); UserId userId = new UserId(UserIdMother.Id()); #endregion #region Act User userFound = await inMemoryUserRepository.Find(userId); #endregion #region Assert Assert.Null(userFound); #endregion }
public async Task ExistsUser_ReturnsBool() { #region Arrange InMemoryUserRepository inMemoryUserRepository = new InMemoryUserRepository(memoryCache); UserId userId = new UserId(UserIdMother.Id()); User user = new User(userId); #endregion #region Act await inMemoryUserRepository.Save(user); bool exists = await inMemoryUserRepository.Exists(userId); #endregion #region Assert Assert.True(exists); #endregion }
public async Task SearchUser_Found_ReturnsUser() { #region Arrange InMemoryUserRepository inMemoryUserRepository = new InMemoryUserRepository(memoryCache); UserId userId = new UserId(UserIdMother.Id()); User user = new User(userId); #endregion #region Act await inMemoryUserRepository.Save(user); User userFound = await inMemoryUserRepository.Find(userId); #endregion #region Assert Assert.Equal(userFound.UserId.Id, userId.Id); #endregion }
public async Task CreateUser_ReturnsVoid() { #region Arrange string userId = UserIdMother.Id(); var userRepository = new Mock <UserRepository>(); userRepository .Setup(r => r.Save(It.IsAny <User>())); UserCreator userCreator = new UserCreator(userRepository.Object); CreateUser createUser = new CreateUser(userCreator); #endregion #region Act await createUser.Execute(userId); #endregion #region Assert userRepository.Verify(r => r.Save(It.IsAny <User>()), Times.Once()); #endregion }
public void AddPokemonToUserFavorites_ReturnsPokemonAlreadyExistsException() { #region Arrange int pokemonId = PokemonIdMother.Id(); string userId = UserIdMother.Id(); string expectedMessage = $"The pokemon with Id '{pokemonId}' already exists in user favorites list"; var userRepository = new Mock <UserRepository>(); userRepository .Setup(r => r.Find(It.IsAny <UserId>())) .ReturnsAsync(UserMother.UserWithFavorites(userId, pokemonId)); userRepository .Setup(r => r.Exists(It.IsAny <UserId>())) .ReturnsAsync(true); userRepository .Setup(r => r.SaveFavorites(It.IsAny <User>())); UserFinder userFinder = new UserFinder(userRepository.Object); PokemonFavoriteCreator pokemonFavoriteCreator = new PokemonFavoriteCreator(userRepository.Object); AddPokemonToUserFavorites addPokemonToUserFavorites = new AddPokemonToUserFavorites(userFinder, pokemonFavoriteCreator); #endregion #region Act var exception = Record.ExceptionAsync(async() => await addPokemonToUserFavorites.Execute(userId, pokemonId)); #endregion #region Assert Assert.Equal(expectedMessage, exception.Result.Message); #endregion }