public ActionResult Cenario()
        {
            Estabelecimento morumbi = new Estabelecimento();
            morumbi.Nome = "Estádio do Morumbi";
            morumbi.Endereco = "São Paulo / SP";
            session.Save(morumbi);

            Espetaculo e1 = new Espetaculo();
            e1.Nome = "O Médico e o Monstro";
            e1.Descricao = "Espetáculo que se passa em Londres";
            e1.Estabelecimento = morumbi;
            session.Save(e1);

            Espetaculo e2 = new Espetaculo();
            e2.Nome = "Mamma Mia!";
            e2.Descricao = "Show muito legal!";
            e2.Estabelecimento = morumbi;
            session.Save(e2);

            for (int i = 0; i < 10; i++)
            {
                Sessao sessao = new Sessao();
                sessao.Espetaculo = i % 2 == 0 ? e1 : e2;
                sessao.TotalDeIngressos = 10;
                sessao.IngressosReservados = 10 - i;
                sessao.Inicio = DateTime.Now.AddDays(7 + i);

                session.Save(sessao);
            }

            return View();
        }
        public void DeveInformarSeEhPossivelReservarAQuantidadeExataDeIngressosDentroDeQualquerDasSessoesComUmMinimoPorSessao()
        {
            Espetaculo ivete = new Espetaculo();

            ivete.Sessoes.Add(SessaoComIngressosSobrando(3));
            ivete.Sessoes.Add(SessaoComIngressosSobrando(3));
            ivete.Sessoes.Add(SessaoComIngressosSobrando(4));

            Assert.IsTrue(ivete.Vagas(10, 3));
        }
        public void DeveInformarSeEhPossivelReservarAQuantidadeDeIngressosDentroDeQualquerDasSessoes()
        {
            Espetaculo ivete = new Espetaculo();

            ivete.Sessoes.Add(SessaoComIngressosSobrando(1));
            ivete.Sessoes.Add(SessaoComIngressosSobrando(3));
            ivete.Sessoes.Add(SessaoComIngressosSobrando(2));

            Assert.IsTrue(ivete.Vagas(5));
        }
        public void DeveInformarSeNaoEhPossivelReservarAQuantidadeDeIngressosDentroDeQualquerDasSessoesComUmMinimoPorSessao()
        {
            Espetaculo ivete = new Espetaculo();

            ivete.Sessoes.Add(SessaoComIngressosSobrando(2));
            ivete.Sessoes.Add(SessaoComIngressosSobrando(2));
            ivete.Sessoes.Add(SessaoComIngressosSobrando(2));

            Assert.IsFalse(ivete.Vagas(5, 3));
        }
        public void DeveCriarSessoesDiarias()
        {
            // Arrange
            Espetaculo esp = new Espetaculo();
            IList<Sessao> sessoes;
            IList<Sessao> sessoesEsperadas = new List<Sessao>
            {
                new Sessao() { Inicio = new DateTime(2014, 8, 1) }
            };

            // Act
            sessoes = esp.CriaSessoes(new DateTime(2014, 8, 1), new DateTime(2014, 8, 1), Periodicidade.DIARIA);

            // Assert
        }
        public void DeveCriar1NovaSessao()
        {
            Espetaculo gordinho = new Espetaculo();

            IList<Sessao> sessoes = gordinho.CriaSessoes(DateTime.Now, DateTime.Now.AddDays(3), Periodicidade.DIARIA);

            Assert.AreEqual(4, sessoes.Count);
            CollectionAssert.AllItemsAreInstancesOfType(sessoes, typeof(Sessao));
            Assert.AreEqual(gordinho, sessoes[0].Espetaculo);
            Assert.AreEqual(gordinho, sessoes[1].Espetaculo);
            Assert.AreEqual(gordinho, sessoes[2].Espetaculo);
            Assert.AreEqual(gordinho, sessoes[3].Espetaculo);
            Assert.AreEqual(DateTime.Now.Date, sessoes[0].Inicio.Date);
            Assert.AreEqual(DateTime.Now.AddDays(1).Date, sessoes[1].Inicio.Date);
            Assert.AreEqual(DateTime.Now.AddDays(2).Date, sessoes[2].Inicio.Date);
            Assert.AreEqual(DateTime.Now.AddDays(3).Date, sessoes[3].Inicio.Date);
        }
        public void CriarSessaoSemanalComInicio5semanasDepoisDoFim()
        {
            Espetaculo ivete = new Espetaculo();

            IList<Sessao> resultadoEsperado = new List<Sessao>() {
                new Sessao(){ Inicio = DateTime.Today}
                ,new Sessao(){ Inicio = DateTime.Today.AddDays(7)}
                ,new Sessao(){ Inicio = DateTime.Today.AddDays(14)}
                ,new Sessao(){ Inicio = DateTime.Today.AddDays(21)}
                ,new Sessao(){ Inicio = DateTime.Today.AddDays(28)}
                ,new Sessao(){ Inicio = DateTime.Today.AddDays(35)}
            };

            IList<Sessao> resultadoObtido = ivete.CriaSessoes(DateTime.Today, DateTime.Today.AddDays(35), Periodicidade.SEMANAL);

            Assert.AreEqual(resultadoEsperado.Count, resultadoObtido.Count);
        }
 public void Cadastra(Espetaculo espetaculo)
 {
     session.Save(espetaculo);
 }
        public void DeveRetornarFalsoSeTentarReservarQuantidadeNegativaDeIngressos()
        {
            Espetaculo ivete = new Espetaculo();

            ivete.Sessoes.Add(SessaoComIngressosSobrando(1));
            ivete.Sessoes.Add(SessaoComIngressosSobrando(3));
            ivete.Sessoes.Add(SessaoComIngressosSobrando(2));

            Assert.IsFalse(ivete.Vagas(-5));
        }
        public ActionResult Novo(Espetaculo espetaculo)
        {
            agenda.Cadastra(espetaculo);

            return RedirectToAction("Index");
        }
 public void Inicializa()
 {
     ivete = new Espetaculo();
 }