Package br.com.caelum.agiletickets.models

Examples of br.com.caelum.agiletickets.models.Sessao


    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();
View Full Code Here


  }


  @Get @Path("/sessao/{id}")
  public void sessao(Long id) {
    Sessao sessao = agenda.sessao(id);
    if (sessao == null) {
      result.notFound();
    }

    result.include("sessao", sessao);
View Full Code Here

    result.include("sessao", sessao);
  }

  @Post @Path("/sessao/{sessaoId}/reserva")
  public void reserva(Long sessaoId, final Integer quantidade) {
    Sessao sessao = agenda.sessao(sessaoId);
    if (sessao == null) {
      result.notFound();
      return;
    }

    if (quantidade < 1) {
      validator.add(new ValidationMessage("Você deve escolher um lugar ou mais", ""));
    }

    if (!sessao.podeReservar(quantidade)) {
      validator.add(new ValidationMessage("Não existem ingressos disponíveis", ""));
    }

    // em caso de erro, redireciona para a lista de sessao
    validator.onErrorRedirectTo(this).sessao(sessao.getId());

    BigDecimal precoTotal = CalculadoraDePrecos.calcula(sessao, quantidade);

    sessao.reserva(quantidade);

    result.include("message", "Sessão reservada com sucesso por " + CURRENCY.format(precoTotal));

    result.redirectTo(IndexController.class).index();
  }
View Full Code Here

public class CalculadoraDePrecosTest {

  @Test
  public void deveConsiderarQuantidadeAoCalcularPrecoTotal(){
    Sessao sessao =  SessaoTestDataBuilder
      .umaSessao()
      .deUmEspetaculoDoTipo(TipoDeEspetaculo.TEATRO)
      .comOPreco(10.0)
      .build();
   
View Full Code Here

  }

 
  @Test
  public void deveAplicar10PorCentoAMaisNosUltimosIngressosQuandoForCinema(){
    Sessao sessao =  SessaoTestDataBuilder
        .umaSessao()
        .deUmEspetaculoDoTipo(TipoDeEspetaculo.CINEMA)
        .comTotalIngressos(100)
        .comIngressoReservados(95)
        .comOPreco(20.0)
View Full Code Here

    assertEquals(0, BigDecimal.valueOf(22.0).compareTo(precoTotal));
  }

  @Test
  public void naoDeveAplicarAcrescimoNosPrimeirosIngressosQuandoForCinema(){
    Sessao sessao =  SessaoTestDataBuilder
        .umaSessao()
        .deUmEspetaculoDoTipo(TipoDeEspetaculo.CINEMA)
        .comTotalIngressos(100)
        .comIngressoReservados(10)
        .comOPreco(20.0)
View Full Code Here

  }

 
  @Test
  public void deveAplicar10PorCentoAMaisNosUltimosIngressosQuandoForShow(){
    Sessao sessao =  SessaoTestDataBuilder
        .umaSessao()
        .deUmEspetaculoDoTipo(TipoDeEspetaculo.SHOW)
        .comTotalIngressos(200)
        .comIngressoReservados(195)
        .comOPreco(100.0)
View Full Code Here

    assertEquals(0, BigDecimal.valueOf(110.0).compareTo(precoTotal));
  }

  @Test
  public void naoDeveAplicarAcrescimoNosPrimeirosIngressosQuandoForShow(){
    Sessao sessao =  SessaoTestDataBuilder
        .umaSessao()
        .deUmEspetaculoDoTipo(TipoDeEspetaculo.SHOW)
        .comTotalIngressos(200)
        .comIngressoReservados(15)
        .comOPreco(100.0)
View Full Code Here

    assertEquals(0, BigDecimal.valueOf(100.0).compareTo(precoTotal));
  }
 
  @Test
  public void deveAplicar20PorCentoAMaisNosUltimosIngressosQuandoForBallet(){
    Sessao sessao =  SessaoTestDataBuilder
        .umaSessao()
        .deUmEspetaculoDoTipo(TipoDeEspetaculo.BALLET)
        .comTotalIngressos(50)
        .comIngressoReservados(25)
        .comOPreco(500.0)
View Full Code Here

    assertEquals(0, BigDecimal.valueOf(600.0).compareTo(precoTotal));
  }

  @Test
  public void naoDeveAplicarAcrescimoNosPrimeirosIngressosQuandoForBallet(){
    Sessao sessao =  SessaoTestDataBuilder
        .umaSessao()
        .deUmEspetaculoDoTipo(TipoDeEspetaculo.BALLET)
        .comTotalIngressos(50)
        .comIngressoReservados(5)
        .comOPreco(500.0)
View Full Code Here

TOP

Related Classes of br.com.caelum.agiletickets.models.Sessao

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.