Ejemplo n.º 1
0
        public void When_editing_a_game_that_not_found_then_an_entity_not_found_exception_should_be_thrown()
        {
            var id = 3;
            var gamesRepository   = Substitute.For <IGamesRepository>();
            var updateGameHandler = new UpdateGameHandler(gamesRepository, Substitute.For <IUnitOfWork>());

            Func <Task <Unit> > func = async() => await updateGameHandler.Handle(new UpdateGame(3, "Name"), default);

            func.Should().Throw <EntityNotFoundException>().WithMessage($"Entity of type {nameof(Game)} with id {id} was not found.");
        }
Ejemplo n.º 2
0
        public async Task When_updating_an_existing_game_with_a_name_valid_then_a_new_game_should_be_created()
        {
            var id              = 3;
            var newName         = "Name2";
            var gamesRepository = Substitute.For <IGamesRepository>();
            var game            = Game.Create("Name").WithId(id);

            gamesRepository.Find(id, default).Returns(Task.FromResult(game));
            var updateGameHandler = new UpdateGameHandler(gamesRepository, Substitute.For <IUnitOfWork>());

            var result = await updateGameHandler.Handle(new UpdateGame(game.Id, newName), default);

            game.Name.Should().Be(newName);
            await gamesRepository.ReceivedWithAnyArgs(1).AnyAsync(default, default);
Ejemplo n.º 3
0
        public void When_editing_a_game_with_existing_name_then_an_application_exception_should_be_thrown()
        {
            var id              = 3;
            var name            = "Name";
            var gamesRepository = Substitute.For <IGamesRepository>();
            var game            = Game.Create(name).WithId(id);

            gamesRepository.Find(id, default).Returns(Task.FromResult(game));
            gamesRepository.AnyAsync(Arg.Any <Expression <Func <Game, bool> > >(), default).Returns(Task.FromResult(true));
            var updateGameHandler = new UpdateGameHandler(gamesRepository, Substitute.For <IUnitOfWork>());

            Func <Task <Unit> > func = async() => await updateGameHandler.Handle(new UpdateGame(game.Id, "Name2"), default);

            func.Should().Throw <ApplicationException>().WithMessage(Messages.NameMustUnique);
            game.Name.Should().Be(name);
        }
Ejemplo n.º 4
0
        public async Task When_updating_an_existing_game_with_a_name_valid_then_a_new_game_should_be_created()
        {
            const int id = 3;

            var gamesRepository = Substitute.For <GamesRepository>();
            var unitOfWork      = Substitute.For <IUnitOfWork>();

            var game = Game.Create("Name").WithId(id);

            gamesRepository.Find(id, default).Returns(Task.FromResult(game));

            var updateGameHandler = new UpdateGameHandler(gamesRepository, unitOfWork);

            await updateGameHandler.Handle(new UpdateGame
            {
                Id   = id,
                Name = "Name2"
            }, default);

            game.Name.Should().Be("Name2");
            await gamesRepository.ReceivedWithAnyArgs(1).EnsureUniqueness(default);