use of br.com.caelum.agiletickets.models.Espetaculo in project agiletickets by caelum.
the class EspetaculosController method cadastraSessoes.
@Post
@Path("/espetaculo/{espetaculoId}/sessoes")
public void cadastraSessoes(Long espetaculoId, LocalDate inicio, LocalDate fim, LocalTime horario, Periodicidade periodicidade) {
Espetaculo espetaculo = carregaEspetaculo(espetaculoId);
// aqui faz a magica!
// cria sessoes baseado no periodo de inicio e fim passados pelo usuario
List<Sessao> sessoes = espetaculo.criaSessoes(inicio, fim, horario, periodicidade);
agenda.agende(sessoes);
result.include("message", sessoes.size() + " sessões criadas com sucesso");
result.redirectTo(this).lista();
}
use of br.com.caelum.agiletickets.models.Espetaculo in project agiletickets by caelum.
the class EspetaculosControllerTest method deveReservarSeASessaoTemIngressosSuficientes.
@Test
public void deveReservarSeASessaoTemIngressosSuficientes() throws Exception {
Espetaculo espetaculo = new Espetaculo();
espetaculo.setTipo(TipoDeEspetaculo.TEATRO);
Sessao sessao = new Sessao();
sessao.setPreco(new BigDecimal("10.00"));
sessao.setTotalIngressos(5);
sessao.setEspetaculo(espetaculo);
when(agenda.sessao(1234l)).thenReturn(sessao);
controller.reserva(1234l, 3);
assertThat(sessao.getIngressosDisponiveis(), is(2));
}
use of br.com.caelum.agiletickets.models.Espetaculo in project agiletickets by caelum.
the class EspetaculosControllerTest method deveCadastrarEspetaculosComNomeEDescricao.
@Test
public void deveCadastrarEspetaculosComNomeEDescricao() throws Exception {
Espetaculo espetaculo = new Espetaculo();
espetaculo.setNome("um nome");
espetaculo.setDescricao("uma descricao");
controller.adiciona(espetaculo);
verify(agenda).cadastra(espetaculo);
}
use of br.com.caelum.agiletickets.models.Espetaculo in project agiletickets by caelum.
the class PreencheBanco method main.
// ALUNO: Não apague essa classe
public static void main(String[] args) {
EntityManagerFactoryCreator creator = new EntityManagerFactoryCreator();
creator.create();
EntityManagerCreator managerCreator = new EntityManagerCreator(creator.getInstance());
managerCreator.create();
EntityManager manager = managerCreator.getInstance();
manager.getTransaction().begin();
manager.createQuery("delete from Sessao").executeUpdate();
manager.createQuery("delete from Espetaculo").executeUpdate();
manager.createQuery("delete from Estabelecimento").executeUpdate();
Estabelecimento estabelecimento = new Estabelecimento();
estabelecimento.setNome("Casa de shows");
estabelecimento.setEndereco("Rua dos Silveiras, 12345");
Espetaculo espetaculo = new Espetaculo();
espetaculo.setEstabelecimento(estabelecimento);
espetaculo.setNome("Depeche Mode");
espetaculo.setTipo(TipoDeEspetaculo.SHOW);
manager.persist(estabelecimento);
manager.persist(espetaculo);
for (int i = 0; i < 10; i++) {
Sessao sessao = new Sessao();
sessao.setEspetaculo(espetaculo);
sessao.setInicio(new DateTime().plusDays(7 + i));
sessao.setDuracaoEmMinutos(60 * 3);
sessao.setTotalIngressos(100);
sessao.setIngressosReservados(i < 5 ? 100 - i : 0);
sessao.setPreco(new BigDecimal("50"));
manager.persist(sessao);
}
manager.getTransaction().commit();
manager.close();
}
use of br.com.caelum.agiletickets.models.Espetaculo in project agiletickets by caelum.
the class EspetaculosController method sessoes.
@Get
@Path("/espetaculo/{espetaculoId}/sessoes")
public void sessoes(Long espetaculoId) {
Espetaculo espetaculo = carregaEspetaculo(espetaculoId);
result.include("espetaculo", espetaculo);
}
Aggregations