def test_ao_efetuar_compra_settar_inscricao_como_paga(self): inscricao = Inscricao(self.participante2,self.evento) inscricao.adicionar_atividade(self.tutorial) inscricao.adicionar_atividade(self.workshop1) compra = Compra(inscricao) compra.pagar(150.00) self.assertTrue(inscricao.paga)
def test_deve_gerar_excecao_adicionar_atividade_nao_associada_ao_evento_inscrito(self): for atividade in [self.palestra,self.hackathon,self.tutorial]: self.evento.adicionar_atividade(atividade) inscricao = Inscricao(self.participante,self.evento) with self.assertRaises(AtividadeNaoEncontradaNoEvento): for atividade in [self.hackathon,self.mini_curso]: inscricao.adicionar_atividade(atividade)
def test_deve_gerar_excecao_ao_realizar_pagamento_inferior_ao_valor(self): inscricao = Inscricao(self.participante1,self.evento) inscricao.adicionar_atividade(self.tutorial) inscricao.adicionar_atividade(self.workshop1) compra = Compra(inscricao) with self.assertRaises(ValorPagoInferior): compra.pagar(40.00)
def test_deve_gerar_excecao_ao_adicionar_atividade_repetida_na_inscricao(self): inscricao = Inscricao(self.participante,self.evento) for atividade in [self.palestra,self.hackathon]: self.evento.adicionar_atividade(atividade) with self.assertRaises(AtividadeJaExisteNaInscricao): for atividade in [self.hackathon,self.palestra,self.hackathon]: inscricao.adicionar_atividade(atividade)
def test_deve_gerar_excecao_quando_pagar_uma_inscricao_ja_paga(self): inscricao = Inscricao(self.participante2,self.evento) inscricao.adicionar_atividade(self.tutorial) inscricao.adicionar_atividade(self.workshop1) compra = Compra(inscricao) compra.pagar(150.00) with self.assertRaises(InscricaoJaPaga): compra.pagar(100.00)
def test_valor_da_inscricao_e_o_valor_dos_seus_itens(self): inscricao = Inscricao(self.participante1,self.evento) inscricao.adicionar_atividade(self.workshop1) inscricao.adicionar_atividade(self.tutorial) compra = Compra(inscricao) valor_total = compra.preco_total self.assertEqual(45.00,valor_total)
def test_deve_gerar_excecao_de_checkin_de_inscricao_nao_encontrada_no_evento(self): for atividade in [self.palestra,self.tutorial,self.mini_curso,self.hackathon]: self.evento.adicionar_atividade(atividade) inscricao = Inscricao(self.participante,self.evento) for atividade in [self.palestra,self.hackathon,self.tutorial]: inscricao.adicionar_atividade(atividade) with self.assertRaises(InscricaoNaoExisteNoEvento): inscricao.realizar_checkin()
def test_deve_gerar_excecao_adicionar_atividade_nao_associada_ao_evento_inscrito( self): for atividade in [self.palestra, self.hackathon, self.tutorial]: self.evento.adicionar_atividade(atividade) inscricao = Inscricao(self.participante, self.evento) with self.assertRaises(AtividadeNaoEncontradaNoEvento): for atividade in [self.hackathon, self.mini_curso]: inscricao.adicionar_atividade(atividade)
def test_deve_gerar_excecao_ao_adicionar_atividade_repetida_na_inscricao( self): inscricao = Inscricao(self.participante, self.evento) for atividade in [self.palestra, self.hackathon]: self.evento.adicionar_atividade(atividade) with self.assertRaises(AtividadeJaExisteNaInscricao): for atividade in [self.hackathon, self.palestra, self.hackathon]: inscricao.adicionar_atividade(atividade)
def test_deve_gerar_excecao_quando_se_inscrever_repetidamente_no_evento( self): inscricao1 = Inscricao(self.participante, self.evento) inscricao2 = Inscricao(self.participante, self.evento) compra = Compra(inscricao1) compra.pagar(10) with self.assertRaises(InscricaoJaExisteNoEvento): compra = Compra(inscricao2) compra.pagar(10)
def test_nao_deve_aplicar_descontos_de_cupons_nao_ativos(self): inscricao = Inscricao(self.participante1,self.evento) atividades = [self.tutorial, self.workshop1 , self.workshop2 , self.hackathon] for atividade in atividades: inscricao.adicionar_atividade(atividade) compra = Compra(inscricao) with self.assertRaises(CupomExpirado): compra.aplicar_cupom(self.cupom_workshop)
def test_deve_gerar_excecao_quando_aplicar_um_cupom_nao_cadastrado_no_evento(self): inscricao = Inscricao(self.participante2,self.evento) atividades = [self.tutorial, self.workshop1 , self.workshop2 , self.hackathon] for atividade in atividades: inscricao.adicionar_atividade(atividade) compra = Compra(inscricao) with self.assertRaises(CupomNaoEncontradoNoEvento): compra.aplicar_cupom(self.hackathon)
def test_deve_aceitar_adicionar_atividades_que_estejam_no_seu_evento(self): palestra = AtividadeSimples(TipoAtividade.PALESTRA,"CSS Escalável",self.duracao1,0.0) tutorial = AtividadeSimples(TipoAtividade.TUTORIAL,"Javascript e SVG",self.duracao2,15.00) mini_curso = AtividadeSimples(TipoAtividade.MINI_CURSO,"Javascript + StorageLocal",self.duracao3,30.00) hackathon = AtividadeSimples(TipoAtividade.HACKATHON,"Aplicações em NodeJS",self.duracao4,10.00) for atividade in [palestra,tutorial,mini_curso,hackathon]: self.evento.adicionar_atividade(atividade) inscricao = Inscricao(self.participante,self.evento) for atividade in [palestra,hackathon,tutorial]: inscricao.adicionar_atividade(atividade)
def test_compra_de_uma_inscricao_com_cupom_deve_retornar_valor_atualizado(self): inscricao = Inscricao(self.participante1,self.evento) atividades = [self.tutorial, self.workshop1 , self.workshop2 , self.hackathon] for atividade in atividades: inscricao.adicionar_atividade(atividade) compra = Compra(inscricao) compra.aplicar_cupom(self.cupom_tutorial) #Desconto de 50% nos tutoriais valor_compra = compra.preco_total self.assertEqual(112.5,valor_compra)
def test_compra_deve_retornar_o_troco_correto_ao_participante(self): inscricao = Inscricao(self.participante1,self.evento) atividades = [self.tutorial, self.workshop1 , self.workshop2 , self.hackathon] for atividade in atividades: inscricao.adicionar_atividade(atividade) compra = Compra(inscricao) compra.aplicar_cupom(self.cupom_tutorial) #Cupom de 50% nos Tutoriais valor_compra = compra.preco_total compra.pagar(115.00) self.assertEqual(2.5,compra.troco)
def test_deve_aceitar_adicionar_atividades_que_estejam_no_seu_evento(self): palestra = AtividadeSimples(TipoAtividade.PALESTRA, "CSS Escalável", self.duracao1, 0.0) tutorial = AtividadeSimples(TipoAtividade.TUTORIAL, "Javascript e SVG", self.duracao2, 15.00) mini_curso = AtividadeSimples(TipoAtividade.MINI_CURSO, "Javascript + StorageLocal", self.duracao3, 30.00) hackathon = AtividadeSimples(TipoAtividade.HACKATHON, "Aplicações em NodeJS", self.duracao4, 10.00) for atividade in [palestra, tutorial, mini_curso, hackathon]: self.evento.adicionar_atividade(atividade) inscricao = Inscricao(self.participante, self.evento) for atividade in [palestra, hackathon, tutorial]: inscricao.adicionar_atividade(atividade)
def test_deve_retornar_data_do_checkin_da_inscricao(self): for atividade in [self.palestra,self.tutorial,self.mini_curso,self.hackathon]: self.evento.adicionar_atividade(atividade) inscricao = Inscricao(self.participante,self.evento) for atividade in [self.palestra,self.hackathon,self.tutorial]: inscricao.adicionar_atividade(atividade) compra = Compra(inscricao) compra.pagar(25.00) inscricao.realizar_checkin() from datetime import date hoje = date.today() self.assertEqual(inscricao.data_checkin,hoje)
def test_deve_retornar_data_de_pagamento_correta_ao_efetuar_compra(self): inscricao = Inscricao(self.participante2,self.evento) atividades = [ self.workshop1 , self.workshop2 , self.hackathon] for atividade in atividades: inscricao.adicionar_atividade(atividade) compra = Compra(inscricao) compra.aplicar_cupom(self.cupom_tutorial) self.assertEqual(105.00,compra.preco_total) compra.pagar(105.00) from datetime import datetime dia_pagamento = date.today() self.assertEqual(dia_pagamento,inscricao.data_pagamento)
def test_inscricao_paga_nao_deve_aceitar_novos_itens(self): inscricao = Inscricao(self.participante1,self.evento) inscricao.adicionar_atividade(self.tutorial) inscricao.adicionar_atividade(self.workshop1) compra = Compra(inscricao) compra.pagar(150.00) with self.assertRaises(InscricaoJaPagaNaoAceitaItens): inscricao.adicionar_atividade(self.hackathon)
def test_deve_gerar_excecao_de_checkin_de_inscricao_nao_encontrada_no_evento( self): for atividade in [ self.palestra, self.tutorial, self.mini_curso, self.hackathon ]: self.evento.adicionar_atividade(atividade) inscricao = Inscricao(self.participante, self.evento) for atividade in [self.palestra, self.hackathon, self.tutorial]: inscricao.adicionar_atividade(atividade) with self.assertRaises(InscricaoNaoExisteNoEvento): inscricao.realizar_checkin()
def test_inscricao_unica_deve_adicionar_todas_as_atividades_do_evento_inscrito( self): self.evento.inscricao_unica = True tutorial = AtividadeSimples(TipoAtividade.TUTORIAL, "Javascript e SVG", self.duracao2, 15.00) mini_curso = AtividadeSimples(TipoAtividade.MINI_CURSO, "Javascript + StorageLocal", self.duracao3, 30.00) hackathon = AtividadeSimples(TipoAtividade.HACKATHON, "Aplicações em NodeJS", self.duracao4, 10.00) for atividade in [tutorial, mini_curso, hackathon]: self.evento.adicionar_atividade(atividade) inscricao = Inscricao(self.participante, self.evento) self.assertListEqual(inscricao.atividades, [tutorial, mini_curso, hackathon])
def test_deve_retornar_data_do_checkin_da_inscricao(self): for atividade in [ self.palestra, self.tutorial, self.mini_curso, self.hackathon ]: self.evento.adicionar_atividade(atividade) inscricao = Inscricao(self.participante, self.evento) for atividade in [self.palestra, self.hackathon, self.tutorial]: inscricao.adicionar_atividade(atividade) compra = Compra(inscricao) compra.pagar(25.00) inscricao.realizar_checkin() from datetime import date hoje = date.today() self.assertEqual(inscricao.data_checkin, hoje)
def test_deve_settar_automaticamente_em_inscricao_o_evento_adicionado( self): inscricao = Inscricao(self.participante, self.evento) self.assertEqual(inscricao.evento, self.evento)
def test_inscricao_recem_criada_deve_ter_zero_atividades(self): inscricao = Inscricao(self.participante, self.evento) self.assertEqual(0, len(inscricao.atividades))