Exemple #1
0
	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)
Exemple #3
0
	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)
Exemple #5
0
	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)
Exemple #6
0
	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()
Exemple #8
0
    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)
Exemple #9
0
    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)
Exemple #10
0
    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)
Exemple #11
0
	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)
Exemple #12
0
	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)
Exemple #13
0
	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)
Exemple #14
0
	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)
Exemple #15
0
	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)
Exemple #16
0
    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)
Exemple #17
0
	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)
Exemple #18
0
	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)
Exemple #19
0
	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)
Exemple #20
0
    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()
Exemple #21
0
    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])
Exemple #22
0
    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)
Exemple #23
0
    def test_deve_settar_automaticamente_em_inscricao_o_evento_adicionado(
            self):

        inscricao = Inscricao(self.participante, self.evento)

        self.assertEqual(inscricao.evento, self.evento)
Exemple #24
0
    def test_inscricao_recem_criada_deve_ter_zero_atividades(self):

        inscricao = Inscricao(self.participante, self.evento)

        self.assertEqual(0, len(inscricao.atividades))