예제 #1
0
        public ICommandResult Handle(CancelReservaCommand command)
        {
            command.Validate();
            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Dados incorretos", command.Notifications));
            }

            var reserva = _reservaRepository.GetById(command.ReservaId);

            _reservaRepository.Delete(reserva);
            return(new GenericCommandResult(true, "Reserva cancelada com sucesso"));
        }
예제 #2
0
        public void Dado_um_CancelReservaCommand_valido_a_reserva_deve_ser_confirmada()
        {
            var cliente = _clientRepository.GetById(Guid.NewGuid());
            var sessao  = _sessaoRepository.GetById(Guid.NewGuid());
            var reserva = new Reserva(cliente, sessao);

            reserva.AdicionarIngresso(new Ingresso("Jose", sessao.Poltrona[0]));
            _reservaRepository.Add(reserva);

            var command       = new CancelReservaCommand(reserva.Id);
            var commandResult = (GenericCommandResult)_handler.Handle(command);

            Assert.IsTrue(commandResult.Sucess);
            Assert.AreEqual(_reservaRepository.GetByCliente(cliente.Id).Count(), 0);
        }