Exemplo n.º 1
0
class Test(TestCase):


    def setUp(self):
        self.oControle= Controle()
        self.oProjetoControle= ProjetoControle()
        self.oCadastroControle= CadastroCadastroControle()
        self.mokarEstadoProjeto()
        self.mokarCriacaoDeTipoDeEvento()
        self.mokarValorProjeto()
        self.mokarTipoHabilidade()
        self.mokarHabilidades()
        self.mokarTipoUsuario()
        self.mokarClasseUsuario()
        self.mokarCriacaoDeUmUsuario()
        self.mokarCriacaoDeProjeto() 
        self.mokarCriacaoDeEventoDeHistorico()
        self.mokarCriandoTipoDeEvento() 
        self.mokarCriandoEventoDeHistorico()
        self.mokarCriandoProposta()
        self.mokarSalvandoProposta()
        self.mokarDefinindoPropostaVencedora()
        self.mokarTipoDePagamento()
        self.mokarEstadoDoPagamento()
        self.mokarTipoDePromocao()
        pass


    def tearDown(self):
        pass
    
    def testCriandoPagamento(self):
        iIDProjeto= 1
        iTipo1= constantes.cntTipoPagamento_CreditoOfertante
        self.oControle.criaPagamento(iIDProjeto, iTipo1)
        
        iTipo2= constantes.cntTipoPagamento_DebitoFreelancer
        iPagamento2= Pagamentos()
        iPagamento2.id_projeto= Projetos.objects.filter(id_projeto= iIDProjeto)[0]
        iPagamento2.id_estado_pagamento= Estado_do_Pagamento.objects.filter(id_estado= 2)[0]
        iPagamento2.id_tipo_pagamento= Tipo_de_Pagamento.objects.filter(id_tipo= iTipo2)[0]
        iPagamento2.id_usuario= Usuario.objects.all()[0]
        iPagamento2.valor= 850.00
        iPagamento2.desconto= 0.00
        iPagamento2.data= datetime.datetime.today()
        iPagamento2.save()
        
        self.assertEquals(iIDProjeto, Pagamentos.objects.filter(id_projeto= iIDProjeto)[0].id_projeto.id_projeto)
        self.assertEquals(iIDProjeto, Pagamentos.objects.filter(id_projeto= iIDProjeto)[1].id_projeto.id_projeto)
        
    def testObtendoPagamentoAuxiliar(self):
        self.testCriandoPagamento()
        iIDProjeto= 1
        iPagamentoAuxiliarFreelancer= self.oControle.obtemPagamentoAuxiliar(iIDProjeto, constantes.cntTipoPagamento_DebitoFreelancer)
        iPagamentoAuxiliarOfertante= self.oControle.obtemPagamentoAuxiliar(iIDProjeto, constantes.cntTipoPagamento_CreditoOfertante)
        
        self.assertEquals(iIDProjeto, iPagamentoAuxiliarFreelancer.id_projeto)
        self.assertEquals(iIDProjeto, iPagamentoAuxiliarOfertante.id_projeto)
    
    def testCriandoPromocao(self):
        iTipoPromocao= Tipo_de_Promocao.objects.filter(id_tipo= constantes.cntTipoPromocao_Ofertante)[0]
        iPromocao1= Promocoes()
        iPromocao1.id_promocao= 1
        iPromocao1.id_tipo_promocao= iTipoPromocao
        iPromocao1.descricacao= 'Teste de Promocao Vigente'
        iPromocao1.porcentagem= 0.05
        iPromocao1.data_inicio= datetime.datetime.today()
        iPromocao1.data_fim= datetime.datetime.today() + datetime.timedelta(days= 10)
        iPromocao1.save()
        
        iPromocao2= Promocoes()
        iPromocao2.id_promocao= 2
        iPromocao2.id_tipo_promocao= iTipoPromocao
        iPromocao2.descricacao= 'Teste de Promocao Vencida'
        iPromocao2.porcentagem= 0.05
        iPromocao2.data_inicio= datetime.datetime.today() - datetime.timedelta(days= 5)
        iPromocao2.data_fim= datetime.datetime.today() - datetime.timedelta(days= 10)
        iPromocao2.save()
        
        self.assertEqual(2, Promocoes.objects.count())
    
    def testObtendoPromocoes(self):
        self.testCriandoPromocao()
        iPromocoes= self.oControle.obtemPromocoes(constantes.cntTipoPromocao_Ofertante)
        
        self.assertEquals(1, len(iPromocoes))
        
    def testObtendoValorDeDesconto(self):
        self.testCriandoPromocao()
        iPromocoes= self.oControle.obtemPromocoes(constantes.cntTipoPromocao_Ofertante)
        iValorProjeto= 1000.00
        iValorDesconto= self.oControle.calculaValorDoDesconto(iPromocoes, iValorProjeto)

        self.assertEquals(50.00, iValorDesconto)
    
    def testCalculandoValorDoProjeto(self):
        self.testCriandoPromocao()
        iProjeto= Projetos.objects.filter(id_projeto= 1)[0]
        iValorOfertante= self.oControle.calculaValorDoProjeto(iProjeto, constantes.cntTipoPagamento_CreditoOfertante)
        iValorFreelancer= self.oControle.calculaValorDoProjeto(iProjeto, constantes.cntTipoPagamento_DebitoFreelancer)
        
        self.assertEquals(1000.00, iValorOfertante)
        self.assertEquals(900.00, iValorFreelancer)
    
    def testObtendoPagamentosRealizados(self):
        self.testCriandoPagamento()
        iUsuario= Usuario.objects.all()[0]
        iTipoPagamento= constantes.cntTipoPagamento_CreditoOfertante
        iPagamentos= self.oControle.obtemPagamentos(iTipoPagamento, iUsuario.id)
        
        self.assertEquals(1, len(iPagamentos))
        self.assertEquals('1050.00', iPagamentos[0].pagamento_valor)
    
    def testObtendoPagamentosRecebidos(self):
        self.testCriandoPagamento()
        iUsuario= Usuario.objects.all()[0]
        iTipoPagamento= constantes.cntTipoPagamento_DebitoFreelancer
        iPagamentos= self.oControle.obtemPagamentos(iTipoPagamento, iUsuario.id)
        
        self.assertEquals(1, len(iPagamentos))
        self.assertEquals('900.00', iPagamentos[0].pagamento_valor)
        
#--------------------------------------------MOKS-------------------------------------------- 

    def mokarTipoUsuario(self):
        iDescricao= 'Freelancer'
        
        iTipoUsuario1= Tipo_de_Usuario(descricao= iDescricao)
        
        iTipoUsuario1.save()
        
        iDescricao= 'Ofertante'
        
        iTipoUsuario2= Tipo_de_Usuario(descricao= iDescricao)
        
        iTipoUsuario2.save()
        
        iDescricao= 'Ambos'
        
        iTipoUsuario3= Tipo_de_Usuario(descricao= iDescricao)
        
        iTipoUsuario3.save()
        
    
    def mokarClasseUsuario(self):
        iDescricao= 'Padrao'
        
        iClasseUsuario1= Classe_de_Usuario(descricao= iDescricao)
        
        iClasseUsuario1.save()
    
    def mokarTipoDePromocao(self):
        iIDTipo= 1
        iDescricao= 'Freelancer'
        
        iTipoPromocao1= Tipo_de_Promocao(id_tipo= iIDTipo, descricao= iDescricao)
        iTipoPromocao1.save()
        
        iIDTipo= 2
        iDescricao= 'Ofertante'
        
        iTipoPromocao2= Tipo_de_Promocao(id_tipo= iIDTipo, descricao= iDescricao)
        iTipoPromocao2.save()
    
    def mokarTipoDePagamento(self):
        iIDTipo= 1
        iDescricao= 'Debito - Freelancer'
        
        iTipoPagamento1= Tipo_de_Pagamento(id_tipo= iIDTipo, descricao= iDescricao)
        iTipoPagamento1.save()
        
        iIDTipo= 2
        iDescricao= 'Credito - Ofertante'
        
        iTipoPagamento2= Tipo_de_Pagamento(id_tipo= iIDTipo, descricao= iDescricao)
        iTipoPagamento2.save()
    
    def mokarEstadoDoPagamento(self):
        iIDEstado= 1
        iDescricao= 'Pendente'
        
        iEstadoPagamento1= Estado_do_Pagamento(id_estado= iIDEstado, descricao= iDescricao)
        iEstadoPagamento1.save()
        
        iIDEstado= 2
        iDescricao= 'Em Analise'
        
        iEstadoPagamento2= Estado_do_Pagamento(id_estado= iIDEstado, descricao= iDescricao)
        iEstadoPagamento2.save()
        
        iIDEstado= 3
        iDescricao= 'Aprovado'
        
        iEstadoPagamento3= Estado_do_Pagamento(id_estado= iIDEstado, descricao= iDescricao)
        iEstadoPagamento3.save()
        
        iIDEstado= 4
        iDescricao= 'Reprovado'
        
        iEstadoPagamento4= Estado_do_Pagamento(id_estado= iIDEstado, descricao= iDescricao)
        iEstadoPagamento4.save()

    def mokarCriandoTipoDeEvento(self):
        iIDTipo= 1
        iDescricao= 'Evento Teste'
        
        iTipoEvento= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento.save()
        
        self.assertEquals(iTipoEvento.id_tipo_evento, (Tipo_de_Evento.objects.filter(id_tipo_evento= iIDTipo)[0]).id_tipo_evento)
        
    def mokarCriandoEventoDeHistorico(self):
        iProjeto= Projetos.objects.all()[0]
        iIDEvento= 1
        iData= str(datetime.datetime.today())[:19]
        
        iEvento= self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto, iIDEvento, iData)
        
        self.assertEquals(iEvento.id_projeto, (Historico_Projeto_Eventos.objects.filter(id_tipo_evento= iIDEvento)[0]).id_projeto)
    
    def mokarCriandoProposta(self):
        iProjeto= Projetos.objects.all()[0]
        iUsuario= Usuario.objects.all()[0]
        
        iValor= 1000.00
        iDiasEntrega= 20
        iDescricao= 'Descricao da proposta'
        iData= str(datetime.datetime.today())[:19]
        
        iProposta= Propostas(id_projeto= iProjeto, id_usuario= iUsuario, valor= iValor,
                             dias_entrega= iDiasEntrega, descricao= iDescricao, data= iData)
        
        iProposta.save()
        
        self.assertEquals(iProposta, (Propostas.objects.filter(id_projeto= iProjeto.id_projeto)[0]))
    
    def mokarSalvandoProposta(self):
        iValor= 1000.00
        iDiasEntrega= 20
        iDescricao= 'Descricao da proposta'
        
        iIDProjeto= 1
        iUsuario= Usuario.objects.all()[0]
        
        iProposta= Propostas(valor= iValor,dias_entrega= iDiasEntrega, descricao= iDescricao)
        
        self.oProjetoControle.salvaProposta(iIDProjeto, iUsuario, iProposta)
        
        self.assertEquals(iIDProjeto, (Propostas.objects.filter(id_projeto= iIDProjeto)[0]).id_projeto.id_projeto)
        self.assertEquals(True, (Projetos.objects.filter(id_projeto= iIDProjeto)[0]).tem_proposta)
    
    def mokarDefinindoPropostaVencedora(self):
        iIDProposta= 1
        
        self.oProjetoControle.definePropostaVencedora(iIDProposta)
        iProjeto= (Propostas.objects.filter(id_proposta= iIDProposta)[0]).id_projeto
            
    def mokarObtendoPropostaVencedora(self):
        self.mokarSalvandoProposta()
        self.mokarDefinindoPropostaVencedora()
        iIDProjeto= 1
        
        iProposta= self.oProjetoControle.obtemPropostaVencedora(iIDProjeto)
        
    def mokarObtendoNomeFreelancerVencedor(self): 
        self.mokarDefinindoPropostaVencedora()
        iIDProjeto1= 1
        iIDProjeto2= 2
        
        iNome1= self.oProjetoControle.obtemNomeFreelancerVencedor(iIDProjeto1)
        iNome2= self.oProjetoControle.obtemNomeFreelancerVencedor(iIDProjeto2)
        
    
    def mokarCriacaoDeUmUsuario(self):
        iEmailUsuario1= '*****@*****.**'
        iSenhaUsuario1= 'teste'
        iTipoUsuario1= Tipo_de_Usuario.objects.filter(id_tipo_usuario= constantes.cntTipoUsuarioFreelancer)[0]
        iClasseUsuario1= Classe_de_Usuario.objects.filter(id_classe_usuario= constantes.cntClasseUsuarioPadrao)[0]
        iRecebeEmail1= True
        iNome= 'Nome'
        iSobrenome= 'Sobrenome'
        iUsuario1= Usuario(email=iEmailUsuario1, password=iSenhaUsuario1, tipo_usuario= iTipoUsuario1, 
                           receber_email= iRecebeEmail1, first_name= iNome, last_name= iSobrenome,
                           classe_usuario= iClasseUsuario1)
        iUsuario1.save()
        
        iDDD= '48'
        iTelefone= '22223333'
        iCEP= '88000230'
        iRua= 'Rua das Margaridas Amarelas Semi-Floridas'
        iNumero= '2000'
        iComplemento= 'Cogumelo 1'
        iBairro= 'Floresta de Antena'
        iCidade= 'Cidade'
        iUF= 'SC'
        iPais= 'Pais'
        
        iUsuario= Usuario.objects.all()[0]
        
        iEndereco= Endereco()
        iEndereco.ddd= iDDD
        iEndereco.telefone= iTelefone
        iEndereco.cep= iCEP
        iEndereco.rua= iRua
        iEndereco.numero= iNumero
        iEndereco.complemento= iComplemento
        iEndereco.bairro= iBairro
        iEndereco.cidade= iCidade
        iEndereco.uf= iUF
        iEndereco.pais= iPais   
        
        self.oCadastroControle.salvaEnderecoDoUsuario(iEndereco, iUsuario) 
            
        return iUsuario1
        
    def mokarCriacaoDeProjeto(self):
        iNome= 'Projeto teste'
        iProprietario= Usuario.objects.all()[0]
        iCategoria= Tipo_de_Habilidade.objects.all()[0]
        iValor= Valor_do_Projeto.objects.all()[0]
        iEstado= Estado_do_Projeto.objects.all()[0]
        iDescricacao= 'Teste de descricacao'
        iDuracao= 20
        iTemAnexo= False
        
        
        iProjeto= Projetos(id_proprietario= iProprietario, id_categoria= iCategoria, id_valor= iValor,
                           id_estado= iEstado, nome= iNome, descricao= iDescricacao, duracao= iDuracao, 
                           tem_anexo= iTemAnexo)
        
        iProjeto.save()
        
        iNome2= 'Projeto teste'
        iProprietario2= Usuario.objects.all()[0]
        iCategoria2= Tipo_de_Habilidade.objects.all()[0]
        iValor2= Valor_do_Projeto.objects.all()[0]
        iEstado2= Estado_do_Projeto.objects.all()[0]
        iDescricacao2= 'Teste de descricacao'
        iDuracao2= 20
        iTemAnexo2= False
        
        
        iProjeto2= Projetos(id_proprietario= iProprietario2, id_categoria= iCategoria2, id_valor= iValor2,
                           id_estado= iEstado2, nome= iNome2, descricao= iDescricacao2, duracao= iDuracao2, 
                           tem_anexo= iTemAnexo2)
        
        iProjeto2.save()
        
    def mokarAssociandoHabilidadesAoUsuario(self):
        iListaDeHabilidades= [1001, 1002, 1003]
        
        iUsuario= Usuario.objects.all()[0]
        
        self.oCadastroControle.salvaHabilidadesDoUsuario(iListaDeHabilidades, iUsuario)
        
    def mokarAssociandoHabilidadesAoProjeto(self):
        iListaDeHabilidades= [1001, 1002, 1003]
        
        iProjeto= Projetos.objects.filter(id_projeto= 1)[0]
        
        self.oCadastroControle.salvaHabilidadesDoProjeto(iListaDeHabilidades, iProjeto)
        
    def mokarHabilidades(self):
        iDescricao1= 'Django'
        iID1= 1001
        
        iDescricao2= 'Rails'
        iID2= 1002
        
        iDescricao3= 'Zend'
        iID3= 1003
        
        iTipoHabilidade= Tipo_de_Habilidade.objects.all()[0]
        
        iHabilidade1= Habilidades(id_habilidade= iID1, descricao= iDescricao1, id_tipo= iTipoHabilidade)    
        iHabilidade2= Habilidades(id_habilidade= iID2, descricao= iDescricao2, id_tipo= iTipoHabilidade) 
        iHabilidade3= Habilidades(id_habilidade= iID3, descricao= iDescricao3, id_tipo= iTipoHabilidade) 
        
        iHabilidade1.save()
        iHabilidade2.save()
        iHabilidade3.save()
        
        return True
    
    def mokarTipoHabilidade(self):
        iDescricao= 'Habilidade Teste'
        
        iTipoHabilidade= Tipo_de_Habilidade(descricao= iDescricao)
        
        iTipoHabilidade.save()
        
    def mokarValorProjeto(self):
        iDescricao= 'Valor Teste'
        
        iValorProjeto= Valor_do_Projeto(descricao= iDescricao)
        
        iValorProjeto.save()
        
    def mokarEstadoProjeto(self):
        iDescricao1= 'Novo'
        
        iEstadoProjeto1= Estado_do_Projeto(descricao= iDescricao1)
        
        iEstadoProjeto1.save()
        
        iDescricao2= 'Publicacao'
        
        iEstadoProjeto2= Estado_do_Projeto(descricao= iDescricao2)
        
        iEstadoProjeto2.save()
        
        iDescricao7= 'Pre-Desenvolvimento'
        
        iEstadoProjeto7= Estado_do_Projeto(descricao= iDescricao7)
        
        iEstadoProjeto7.save()
        
        iDescricao3= 'Desenvolvimento'
        
        iEstadoProjeto3= Estado_do_Projeto(descricao= iDescricao3)
        
        iEstadoProjeto3.save()
        
        iDescricao4= 'Analise'
        
        iEstadoProjeto4= Estado_do_Projeto(descricao= iDescricao4)
        
        iEstadoProjeto4.save()
        
        iDescricao5= 'Inativo'
        
        iEstadoProjeto5= Estado_do_Projeto(descricao= iDescricao5)
        
        iEstadoProjeto5.save()
        
        iDescricao6= 'Concluido'
        
        iEstadoProjeto6= Estado_do_Projeto(descricao= iDescricao6)
        
        iEstadoProjeto6.save()
        
    
    def mokarCriacaoDeTipoDeEvento(self):
        iIDTipo= 1
        iDescricao= 'Criado'
        
        iTipoEvento1= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento1.save()
        
        iIDTipo= 2
        iDescricao= 'Publicado'
        
        iTipoEvento2= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento2.save()
        
        iIDTipo= 3
        iDescricao= 'FimPublicacao'
        
        iTipoEvento3= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento3.save()
        
        iIDTipo= 4
        iDescricao= 'Selecionar Ganhador'
        
        iTipoEvento4= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento4.save()
        
        iIDTipo= 5
        iDescricao= 'Inicio Dev'
        
        iTipoEvento5= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento5.save()
        
        iIDTipo= 6
        iDescricao= 'Fim Dev Previsto'
        
        iTipoEvento6= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento6.save()
        
        iIDTipo= 7
        iDescricao= 'Fim Dev Real'
        
        iTipoEvento7= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento7.save()
        
        iIDTipo= 8
        iDescricao= 'Inicio Revisao'
        
        iTipoEvento8= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento8.save()
        
        iIDTipo= 9
        iDescricao= 'Fim Revisao'
        
        iTipoEvento9= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento9.save()
        
        iIDTipo= 10
        iDescricao= 'Pagamento Ofertante'
        
        iTipoEvento10= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento10.save()
        
        iIDTipo= 10
        iDescricao= 'Pagamento Freelancer'
        
        iTipoEvento11= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento11.save()
    
    def mokarCriacaoDeEventoDeHistorico(self, vData=None):
        if vData == None:
            iData= str(datetime.datetime.today())[:19]
        else:
            iData= vData
        
        iDataFim= datetime.datetime.today() + datetime.timedelta(days= 10)
        
        
        iProjeto1 = Projetos.objects.filter(id_projeto= 1)[0]
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto1, constantes.cntEventoHistorico_Criacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto1, constantes.cntEventoHistorico_Publicacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto1, constantes.cntEventoHistorico_FimPublicacao, iDataFim)
        
        iProjeto2 = Projetos.objects.filter(id_projeto= 2)[0]
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto2, constantes.cntEventoHistorico_Criacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto2, constantes.cntEventoHistorico_Publicacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto2, constantes.cntEventoHistorico_FimPublicacao, iDataFim)
Exemplo n.º 2
0
class Test(TestCase):


    def setUp(self):
        self.oCadastroControle= CadastroControle()
        self.oProjetoControle= ProjetoControle()
        self.oControle= Controle()
        self.mokarTipoUsuario()
        self.mokarClasseUsuario()
        self.mokarCriacaoDeUmUsuario() 
        self.mokarTipoHabilidade()
        self.mokarHabilidades() 
        self.mokarCriacaoDeProjeto() 
        self.mokarCriacaoDeTipoDeEvento()
        self.mokarCriacaoDeEventoDeHistorico()
        self.mokarProposta()
        self.mokarAssociandoHabilidadesAoProjeto()
        self.mokarAssociandoHabilidadesAoUsuario()
        pass


    def tearDown(self):
        Tipo_de_Habilidade.objects.all().delete()
        Usuario.objects.all().delete()
        Estado_do_Projeto.objects.all().delete()
        Projetos.objects.all().delete()
        Valor_do_Projeto.objects.all().delete()
        pass

    def testBuscarProjetos_Ultimos(self):
        iListaProjetos= self.oControle.buscarProjetos(constantes.cntBuscaProjetos_Ultimos)
        self.assertEquals(iListaProjetos[0].id, (Projetos.objects.filter(id_projeto= 8)[0]).id_projeto)
    
    def testBuscarProjetos_CategoriaDesenvolvimento(self):
        iListaProjetos= self.oControle.buscarProjetos(constantes.cntBuscaProjetos_Categoria_Desenvolvimento)
        self.assertEquals(iListaProjetos[0].id, (Projetos.objects.filter(id_projeto= 1)[0]).id_projeto)
        
    def testBuscarProjetos_CategoriaSO(self):
        iListaProjetos= self.oControle.buscarProjetos(constantes.cntBuscaProjetos_Categoria_SO)
        self.assertEquals(iListaProjetos[0].id, (Projetos.objects.filter(id_projeto= 2)[0]).id_projeto)
        
    def testBuscarProjetos_CategoriaSoftware(self):
        iListaProjetos= self.oControle.buscarProjetos(constantes.cntBuscaProjetos_Categoria_Softwares)
        self.assertEquals(iListaProjetos[0].id, (Projetos.objects.filter(id_projeto= 3)[0]).id_projeto)
        
    def testBuscarProjetos_CategoriaInfra(self):
        iListaProjetos= self.oControle.buscarProjetos(constantes.cntBuscaProjetos_Categoria_Infra)
        self.assertEquals(iListaProjetos[0].id, (Projetos.objects.filter(id_projeto= 4)[0]).id_projeto)
        
    def testBuscarProjetos_CategoriaDados(self):
        iListaProjetos= self.oControle.buscarProjetos(constantes.cntBuscaProjetos_Categoria_Dados)
        self.assertEquals(iListaProjetos[0].id, (Projetos.objects.filter(id_projeto= 5)[0]).id_projeto)
        
    def testBuscarProjetos_CategoriaMobile(self):
        iListaProjetos= self.oControle.buscarProjetos(constantes.cntBuscaProjetos_Categoria_Mobile)
        self.assertEquals(iListaProjetos[0].id, (Projetos.objects.filter(id_projeto= 6)[0]).id_projeto)
        
    def testBuscarProjetos_CategoriaMidiasSociais(self):
        iListaProjetos= self.oControle.buscarProjetos(constantes.cntBuscaProjetos_Categoria_MidiasSociais)
        self.assertEquals(iListaProjetos[0].id, (Projetos.objects.filter(id_projeto= 7)[0]).id_projeto)
        
    def testBuscarProjetos_CategoriaOutras(self):
        iListaProjetos= self.oControle.buscarProjetos(constantes.cntBuscaProjetos_Categoria_Outras)
        self.assertEquals(iListaProjetos[0].id, (Projetos.objects.filter(id_projeto= 8)[0]).id_projeto)
    
    def testBuscarPropostasDoFreelancer(self):
        iFreelancer= Usuario.objects.all()[0]
        iListaProjetos= self.oControle.buscarPropostasDoFreelancer(iFreelancer)
        self.assertEquals(iListaProjetos[0].id, (Projetos.objects.filter(id_projeto= 1)[0]).id_projeto)
    
    def testBuscarProjetosDoOfertante(self):
        iOfertante= Usuario.objects.all()[0]
        iListaProjetos= self.oControle.buscarProjetosDoOfertante(iOfertante)
        self.assertEquals(iListaProjetos[0].id, (Projetos.objects.filter(id_projeto= 8)[0]).id_projeto)
    
    def testBuscarProjeto(self):
        iIDProjeto= 1
        
        iProjeto= self.oControle.buscaProjeto(iIDProjeto)
        
        self.assertEquals(iProjeto.id, iIDProjeto)
    
    def testBuscarProjetosPorPerfil(self):
        iUsuario= Usuario.objects.all()[0]
        iListaProjetos= self.oControle.buscarProjetos(constantes.cntBuscaProjetos_Perfil, iUsuario.id)
        self.assertEquals(iListaProjetos[0].id, (Projetos.objects.filter(id_projeto= 8)[0]).id_projeto)
    
    def testBuscarUsuariosPorPerfil(self):
        iIDProjeto= 2
        iListaUsuarios= self.oControle.buscarUsuariosPorPerfil(iIDProjeto)
        self.assertEquals(iListaUsuarios[0].id, (Usuario.objects.all()[0]).id)
        
    def testObtendoPropostasDoProjeto(self):
        iIDProjeto= 1
        
        iListaProposta= self.oControle.buscaPropostas(iIDProjeto)
        
        self.assertEquals(iListaProposta[0].id, (Propostas.objects.filter(id_projeto= iIDProjeto)[0]).id_proposta)
    
    def testBuscarProjetosNovos(self):
        iDiasAtras= 0
        iListaProjetos= self.oControle.buscaProjetosRecentes(iDiasAtras)
        
        self.assertEquals(len(iListaProjetos), (len(Projetos.objects.all())))
    
    def testBuscarProposta(self):
        iIDProjeto= 1
        iUsuario= Usuario.objects.all()[0]
        
        iProposta= self.oControle.buscaProposta(iIDProjeto, iUsuario)
        
        self.assertEquals(iProposta.id_projeto.id_projeto, iIDProjeto)
    
    def testBuscarUltimosFreelancers(self):
        self.mokarCriacaoDeDoisUsuarios()
        iFreelancers= Usuario.objects.all().order_by('id')
        iHabilidades= ['1001', '1002']
        iUltimosFreelancers= self.oControle.buscaFreelancers(constantes.cntBuscaFreelancers_Ultimos, iHabilidades)
        
        self.assertEquals(iFreelancers[0].id, iUltimosFreelancers[0].id)
        self.assertEquals(1, len(iUltimosFreelancers))
    
    def testBuscarFreelancersPorPontuacao(self):
        self.mokarCriacaoDeDoisUsuarios()
        iFreelancers= Usuario.objects.all().order_by('id')
        iHabilidades= ['1001', '1002']
        iFreelancersFiltrados= self.oControle.buscaFreelancers(constantes.cntBuscaFreelancers_Pontuacao, iHabilidades)
        
        self.assertEquals(iFreelancers[0].id, iFreelancersFiltrados[0].id)
        self.assertEquals(1, len(iFreelancersFiltrados))
    
    def testDiasRestantes(self):
        iDataInicio_dias= datetime.datetime(2012, 02, 15, 15, 10, 45)
        iDataInicio_horas= datetime.datetime(2012, 02, 24, 20, 10, 45)
        iDataInicio_minutos= datetime.datetime(2012, 02, 25, 14, 20, 45)
        iDataFim= datetime.datetime(2012, 02, 25, 15, 10, 45)
                
        self.assertEquals('10 dia(s)', self.oControle.calculaDiasRestantes(None, iDataInicio_dias, iDataFim))
        self.assertEquals('19 hora(s)', self.oControle.calculaDiasRestantes(None, iDataInicio_horas, iDataFim))
        self.assertEquals('50 minuto(s)', self.oControle.calculaDiasRestantes(None, iDataInicio_minutos, iDataFim))
    
    def testCalculandoNumeroDePropostas(self):
        iProjeto= Projetos.objects.filter(id_projeto= 1)[0]
        
        iNumeroPropostas= self.oControle.calculaNumeroDePropostas(iProjeto)
        
        self.assertEquals(1, iNumeroPropostas)
        
    def testCalculandoValorMedioDasPropostas(self):
        iProjeto= Projetos.objects.filter(id_projeto= 1)[0]
        
        iValorMedio= self.oControle.calculaValorMeidioDasPropostas(iProjeto)
        
        self.assertEquals(100.00, iValorMedio)
        
#-----------------------------------------------------MOKS---------------------------------------------------
    
    def mokarTipoUsuario(self):
        iDescricao= 'Freelancer'
        
        iTipoUsuario1= Tipo_de_Usuario(descricao= iDescricao)
        
        iTipoUsuario1.save()
        
        iDescricao= 'Ofertante'
        
        iTipoUsuario2= Tipo_de_Usuario(descricao= iDescricao)
        
        iTipoUsuario2.save()
        
        iDescricao= 'Ambos'
        
        iTipoUsuario3= Tipo_de_Usuario(descricao= iDescricao)
        
        iTipoUsuario3.save()
        
    
    def mokarClasseUsuario(self):
        iDescricao= 'Padrao'
        
        iClasseUsuario1= Classe_de_Usuario(descricao= iDescricao)
        
        iClasseUsuario1.save()
    
    def mokarCriacaoDeUmUsuario(self):
        iEmailUsuario1= '*****@*****.**'
        iSenhaUsuario1= 'teste'
        iTipoUsuario1= Tipo_de_Usuario.objects.filter(id_tipo_usuario= constantes.cntTipoUsuarioFreelancer)[0]
        iClasseUsuario1= Classe_de_Usuario.objects.filter(id_classe_usuario= constantes.cntClasseUsuarioPadrao)[0]
        iRecebeEmail1= True
        iPontuacao= 8.0
        iUsuario1= Usuario(email=iEmailUsuario1, password=iSenhaUsuario1, tipo_usuario= iTipoUsuario1, 
                           receber_email= iRecebeEmail1, classe_usuario= iClasseUsuario1, pontuacao= iPontuacao)
        iUsuario1.save()
        
        iCidade= 'Cidade'
        iUF= 'SC'
        iEndereco= Endereco()
        iEndereco.cidade= iCidade
        iEndereco.uf= iUF
        
        self.oCadastroControle.salvaEnderecoDoUsuario(iEndereco, iUsuario1) 
    
    def mokarCriacaoDeDoisUsuarios(self):
        iEmailUsuario2= '*****@*****.**'
        iSenhaUsuario2= 'teste2'
        iTipoUsuario2= Tipo_de_Usuario.objects.filter(id_tipo_usuario= constantes.cntTipoUsuarioOfertante)[0]
        iClasseUsuario2= Classe_de_Usuario.objects.filter(id_classe_usuario= constantes.cntClasseUsuarioPadrao)[0]
        iRecebeEmail2= True
        iUsuario2= Usuario(email=iEmailUsuario2, password=iSenhaUsuario2, tipo_usuario= iTipoUsuario2, 
                           receber_email= iRecebeEmail2, classe_usuario= iClasseUsuario2)
        iUsuario2.save()
        
        iEmailUsuario3= '*****@*****.**'
        iSenhaUsuario2= 'teste3'
        iTipoUsuario3= Tipo_de_Usuario.objects.filter(id_tipo_usuario= constantes.cntTipoUsuarioAmbos)[0]
        iClasseUsuario3= Classe_de_Usuario.objects.filter(id_classe_usuario= constantes.cntClasseUsuarioPadrao)[0]
        iRecebeEmail3= True
        iUsuario3= Usuario(email=iEmailUsuario3, password=iSenhaUsuario2, tipo_usuario= iTipoUsuario3, 
                           receber_email= iRecebeEmail3, classe_usuario= iClasseUsuario3)
        iUsuario3.save()
        
    def mokarCriacaoDeProjeto(self):
        iNome= 'Projeto teste'
        iProprietario= Usuario.objects.all()[0]
        iValor= self.mokarValorProjeto()
        iEstado= self.mokarEstadoProjeto()
        iDescricacao= 'Teste'
        iDuracao= 20
        iTemAnexo= False
        
        iCategoria1= Tipo_de_Habilidade.objects.filter(descricao= 'Desenvolvimento')[0]
        iProjeto1= Projetos(id_proprietario= iProprietario, id_categoria= iCategoria1, id_valor= iValor,
                           id_estado= iEstado, nome= iNome, descricao= iDescricacao, duracao= iDuracao, 
                           tem_anexo= iTemAnexo)
        iProjeto1.save()
        
        iCategoria2= Tipo_de_Habilidade.objects.filter(descricao= 'Sistemas Operacionais')[0]
        iProjeto2= Projetos(id_proprietario= iProprietario, id_categoria= iCategoria2, id_valor= iValor,
                           id_estado= iEstado, nome= iNome, descricao= iDescricacao, duracao= iDuracao, 
                           tem_anexo= iTemAnexo)
        iProjeto2.save()
        
        iCategoria3= Tipo_de_Habilidade.objects.filter(descricao= 'Software')[0]
        iProjeto3= Projetos(id_proprietario= iProprietario, id_categoria= iCategoria3, id_valor= iValor,
                           id_estado= iEstado, nome= iNome, descricao= iDescricacao, duracao= iDuracao, 
                           tem_anexo= iTemAnexo)
        iProjeto3.save()
        
        iCategoria4= Tipo_de_Habilidade.objects.filter(descricao= 'Infra')[0]
        iProjeto4= Projetos(id_proprietario= iProprietario, id_categoria= iCategoria4, id_valor= iValor,
                           id_estado= iEstado, nome= iNome, descricao= iDescricacao, duracao= iDuracao, 
                           tem_anexo= iTemAnexo)
        iProjeto4.save()
        
        iCategoria5= Tipo_de_Habilidade.objects.filter(descricao= 'Dados')[0]
        iProjeto5= Projetos(id_proprietario= iProprietario, id_categoria= iCategoria5, id_valor= iValor,
                           id_estado= iEstado, nome= iNome, descricao= iDescricacao, duracao= iDuracao, 
                           tem_anexo= iTemAnexo)
        iProjeto5.save()
        
        iCategoria6= Tipo_de_Habilidade.objects.filter(descricao= 'Mobile')[0]
        iProjeto6= Projetos(id_proprietario= iProprietario, id_categoria= iCategoria6, id_valor= iValor,
                           id_estado= iEstado, nome= iNome, descricao= iDescricacao, duracao= iDuracao, 
                           tem_anexo= iTemAnexo)
        iProjeto6.save()
        
        iCategoria7= Tipo_de_Habilidade.objects.filter(descricao= 'Midias Sociais')[0]
        iProjeto7= Projetos(id_proprietario= iProprietario, id_categoria= iCategoria7, id_valor= iValor,
                           id_estado= iEstado, nome= iNome, descricao= iDescricacao, duracao= iDuracao, 
                           tem_anexo= iTemAnexo)
        iProjeto7.save()
        
        iCategoria8= Tipo_de_Habilidade.objects.filter(descricao= 'Outras')[0]
        iProjeto8= Projetos(id_proprietario= iProprietario, id_categoria= iCategoria8, id_valor= iValor,
                           id_estado= iEstado, nome= iNome, descricao= iDescricacao, duracao= iDuracao, 
                           tem_anexo= iTemAnexo)
        iProjeto8.save()
        
        return Projetos.objects.all()
           
    
    def mokarAssociandoHabilidadesAoUsuario(self):
        iListaDeHabilidades= [1001, 1002, 1003]
        iUsuario= Usuario.objects.all()[0]
        self.oCadastroControle.salvaHabilidadesDoUsuario(iListaDeHabilidades, iUsuario)
        self.assertEqual(iUsuario.username, (Habilidades_Usuario.objects.filter(id_habilidade= 1001)[0]).id_usuario.username)
        self.assertEqual(iUsuario.username, (Habilidades_Usuario.objects.filter(id_habilidade= 1002)[0]).id_usuario.username)

    def mokarAssociandoHabilidadesAoProjeto(self):
        iListaDeHabilidades= [1001, 1002, 1003]
        iProjeto= Projetos.objects.all()[0]
        
        self.oCadastroControle.salvaHabilidadesDoProjeto(iListaDeHabilidades, iProjeto)
        self.assertEqual(iProjeto.id_projeto, (Projeto_Habilidades.objects.filter(id_habilidade= 1001)[0]).id_projeto.id_projeto)
       
    def mokarHabilidades(self):
        iDescricao1= 'Django'
        iID1= 1001
        
        iDescricao2= 'Rails'
        iID2= 1002
        
        iDescricao3= 'Zend'
        iID3= 1003
        
        iTipoHabilidade= Tipo_de_Habilidade.objects.all()[0]
        
        iHabilidade1= Habilidades(id_habilidade= iID1, descricao= iDescricao1, id_tipo= iTipoHabilidade)    
        iHabilidade2= Habilidades(id_habilidade= iID2, descricao= iDescricao2, id_tipo= iTipoHabilidade) 
        iHabilidade3= Habilidades(id_habilidade= iID3, descricao= iDescricao3, id_tipo= iTipoHabilidade) 
        
        iHabilidade1.save()
        iHabilidade2.save()
        iHabilidade3.save()
        
        return True
    
    def mokarTipoHabilidade(self):
        iDescricao1= 'Desenvolvimento'
        iTipoHabilidade1= Tipo_de_Habilidade(descricao= iDescricao1)
        iTipoHabilidade1.save()
        
        iDescricao2= 'Sistemas Operacionais'
        iTipoHabilidade2= Tipo_de_Habilidade(descricao= iDescricao2)
        iTipoHabilidade2.save()
        
        iDescricao3= 'Software'
        iTipoHabilidade3= Tipo_de_Habilidade(descricao= iDescricao3)
        iTipoHabilidade3.save()
        
        iDescricao4= 'Infra'
        iTipoHabilidade4= Tipo_de_Habilidade(descricao= iDescricao4)
        iTipoHabilidade4.save()
        
        iDescricao5= 'Dados'
        iTipoHabilidade5= Tipo_de_Habilidade(descricao= iDescricao5)
        iTipoHabilidade5.save()
        
        iDescricao6= 'Mobile'
        iTipoHabilidade6= Tipo_de_Habilidade(descricao= iDescricao6)
        iTipoHabilidade6.save()
        
        iDescricao7= 'Midias Sociais'
        iTipoHabilidade7= Tipo_de_Habilidade(descricao= iDescricao7)
        iTipoHabilidade7.save()
   
        iDescricao8= 'Outras'
        iTipoHabilidade8= Tipo_de_Habilidade(descricao= iDescricao8)
        iTipoHabilidade8.save()   
        
        return Tipo_de_Habilidade.objects.all()
    
    def mokarValorProjeto(self):
        iDescricao= 'Valor Teste'
        iValorProjeto= Valor_do_Projeto(descricao= iDescricao)
        iValorProjeto.save()
        
        return Valor_do_Projeto.objects.all()[0]
    
    def mokarEstadoProjeto(self):
        iDescricao= 'Novo'
        iEstadoProjeto1= Estado_do_Projeto(descricao= iDescricao)
        iEstadoProjeto1.save()
        
        iDescricao= 'Publicado'
        iEstadoProjeto2= Estado_do_Projeto(descricao= iDescricao)
        iEstadoProjeto2.save()
        
        return Estado_do_Projeto.objects.all()[1]
    
    def mokarCriacaoDeTipoDeEvento(self):
        iIDTipo= 1
        iDescricao= 'Criado'
        
        iTipoEvento1= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento1.save()
        
        iIDTipo= 2
        iDescricao= 'Publicado'
        
        iTipoEvento2= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento2.save()
        
        iIDTipo= 3
        iDescricao= 'FimPublicacao'
        
        iTipoEvento3= Tipo_de_Evento(id_tipo_evento= iIDTipo, descricao= iDescricao)
        iTipoEvento3.save()
        
        
    def mokarCriacaoDeEventoDeHistorico(self, vData=None):
        if vData == None:
            iData= str(datetime.datetime.today())[:19]
        else:
            iData= vData
        
        iDataFim= datetime.datetime.today() + datetime.timedelta(days= 10)
        iDataFimPassada= datetime.datetime.today() - datetime.timedelta(days= 10)
        
        
        iProjeto1 = Projetos.objects.filter(id_projeto= 1)[0]
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto1, constantes.cntEventoHistorico_Criacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto1, constantes.cntEventoHistorico_Publicacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto1, constantes.cntEventoHistorico_FimPublicacao, iDataFim)
        
        iProjeto2 = Projetos.objects.filter(id_projeto= 2)[0]
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto2, constantes.cntEventoHistorico_Criacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto2, constantes.cntEventoHistorico_Publicacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto2, constantes.cntEventoHistorico_FimPublicacao, iDataFim)
    
        iProjeto3 = Projetos.objects.filter(id_projeto= 3)[0]
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto3, constantes.cntEventoHistorico_Criacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto3, constantes.cntEventoHistorico_Publicacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto3, constantes.cntEventoHistorico_FimPublicacao, iDataFim)
        
        iProjeto4 = Projetos.objects.filter(id_projeto= 4)[0]
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto4, constantes.cntEventoHistorico_Criacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto4, constantes.cntEventoHistorico_Publicacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto4, constantes.cntEventoHistorico_FimPublicacao, iDataFim)
        
        iProjeto5 = Projetos.objects.filter(id_projeto= 5)[0]
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto5, constantes.cntEventoHistorico_Criacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto5, constantes.cntEventoHistorico_Publicacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto5, constantes.cntEventoHistorico_FimPublicacao, iDataFim)
        
        iProjeto6 = Projetos.objects.filter(id_projeto= 6)[0]
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto6, constantes.cntEventoHistorico_Criacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto6, constantes.cntEventoHistorico_Publicacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto6, constantes.cntEventoHistorico_FimPublicacao, iDataFim)
        
        iProjeto7 = Projetos.objects.filter(id_projeto= 7)[0]
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto7, constantes.cntEventoHistorico_Criacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto7, constantes.cntEventoHistorico_Publicacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto7, constantes.cntEventoHistorico_FimPublicacao, iDataFim)
        
        iProjeto8 = Projetos.objects.filter(id_projeto= 8)[0]
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto8, constantes.cntEventoHistorico_Criacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto8, constantes.cntEventoHistorico_Publicacao, iData)
        self.oProjetoControle.salvaHistoricoDoProjeto(iProjeto8, constantes.cntEventoHistorico_FimPublicacao, iDataFim)
    
    def mokarProposta(self):
        iValor= 100.00
        iDiasEntrega= 20
        iDescricao= 'Descricao da proposta'
        
        iIDProjeto= 1
        iUsuario= Usuario.objects.all()[0]
        
        iProposta= Propostas(valor= iValor,dias_entrega= iDiasEntrega, descricao= iDescricao)
        
        self.oProjetoControle.salvaProposta(iIDProjeto, iUsuario, iProposta)
        
        self.assertEquals(iIDProjeto, (Propostas.objects.filter(id_projeto= iIDProjeto)[0]).id_projeto.id_projeto)
        self.assertEquals(True, (Projetos.objects.filter(id_projeto= iIDProjeto)[0]).tem_proposta)