Exemplo n.º 1
0
        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 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 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
        }
Exemplo n.º 4
0
 public AddPokemonToUserFavorites(UserFinder userFinder, PokemonFavoriteCreator pokemonFavoriteCreator,
                                  EventPublisher eventPublisher)
 {
     _userFinder             = userFinder;
     _pokemonFavoriteCreator = pokemonFavoriteCreator;
     _publisher = eventPublisher;
 }
        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
        }