Beispiel #1
0
class CLI():
    def __init__(self):
        self.controller = Controller()

        while True:
            line = input()
            if line == "":
                exit()
            commands = line.split()
            ###########################################################################################
            # Resgistar Profissional
            if (commands[0] == "RP"):
                if self.controller.has_professional(commands[2]):
                    print("Profissional existente.")
                elif not self.controller.has_categoria(commands[1]):
                    print("Categoria inexistente.")

                else:
                    self.controller.registar_profissional(
                        commands[1], commands[2])
                    print("Profissional registado com sucesso.")
###########################################################################################
            elif (commands[0] == "RU"):
                if self.controller.has_utente(commands[1]):
                    print("Utente existente.")

                elif not self.controller.has_faixa_etaria(commands[2]):
                    print("Faixa etária inexistente.")

                else:
                    self.controller.registar_utente(commands[1], commands[2])
                    print("Utente registado com sucesso.")
###########################################################################################
            elif (commands[0] == "RF"):
                if self.controller.has_familia(commands[1]):
                    print("Família existente.")
                else:
                    self.controller.registar_familia(commands[1])
                    print("Família registada com sucesso.")

###########################################################################################
            elif (commands[0] == "AF"):
                if not self.controller.has_utente(commands[1]):
                    print("Utente inexistente.")
                elif not self.controller.has_familia(commands[2]):
                    print("Família inexistente.")
                elif self.controller.has_utente_a_familia(command[1]):
                    print("Utente pertence a família.")
                else:
                    self.controller.associar_utente_a_familia(
                        commands[1], commands[2])
                    print("Utente associado a família.")

###########################################################################################
            elif (commands[0] == "DF"):
                if not self.controller.has_utente(commands[1]):
                    print("Utente inexistente.")
                elif not self.controller.has_utente_a_familia(commands[1]):
                    print("Utente não pertence a família.")
                else:
                    self.controller.desassociar_utente_a_familia(commands[1])
                    print("Utente desassociado de família.")
###########################################################################################
            elif (commands[0] == "LP"):
                if not self.controller.has_profissionais():
                    print("Sem profissionais registados.")
                else:
                    self.controller.listar_profissionais()
Beispiel #2
0
class CLI:
    def __init__(self):
        self.controller = Controller()

        while True:
            line = input()
            if line == "":
                exit()
            commands = line.split()

            # Resgistar Profissional-----------------------"RP Categoria Nome"
            if (commands[0] == "RP"):
                if self.controller.has_professional(commands[2]):
                    print("Profissional existente.")

                elif not self.controller.has_categoria(commands[1]):
                    print("Categoria inexistente.")

                else:
                    self.controller.registar_profissional(
                        commands[1], commands[2])
                    print("Profissional registado com sucesso.")

            # Resgistar Utente------------------------------"RU Nome FaixaEtária"
            elif (commands[0] == "RU"):

                if self.controller.has_utente(commands[1]):
                    print("Utente existente.")

                elif not self.controller.has_faixa_etaria(commands[2]):
                    print("Faixa etária inexistente.")

                else:
                    self.controller.registar_utente(commands[1], commands[2])
                    print("Utente registado com sucesso.")

            # Resgistar Familia-----------------------------"RF NomeFamilia"
            elif (commands[0] == "RF"):

                if self.controller.has_familia(commands[1]):
                    print("Família existente.")
                else:
                    self.controller.registar_familia(commands[1])
                    print("Família registada com sucesso.")

            # Associar utente a familia---------------------"AF Nome NomeFamiia"
            elif (commands[0] == "AF"):
                if not self.controller.has_utente(commands[1]):
                    print("Utente inexistente.")

                elif not self.controller.has_familia(commands[2]):
                    print("Família inexistente.")

                elif self.controller.get_utente(
                        commands[1]).get_familia() != None:
                    print("Utente pertence a família.")
                else:
                    self.controller.associar_utente_a_familia(
                        commands[1], commands[2])
                    print("Utente associado a família.")

            # Desassociar utende de familia------------------"DF Nome"
            elif (commands[0] == "DF"):
                if not self.controller.has_utente(commands[1]):
                    print("Utente inexistente.")

                elif not self.controller.get_utente(commands[1]).has_familia():
                    print("Utente não pertence a família.")

                else:
                    self.controller.desassociar_utente_a_familia(commands[1])
                    print("Utente desassociado de família.")

            # Listar Profissionais---------------------------"LP"
            elif (commands[0] == "LP"):
                if not self.controller.has_profissionais():
                    print("Sem profissionais registados.")
                else:
                    profissionais = self.controller.listar_profissionais()
                    categoria = Cheats().categoria()
                    #categoria = self.controller.categorias_to_array()
                    for i in range(3):
                        for name in profissionais.get(i):
                            print(f"{categoria[i]} {name}.")

            # Listar Utentes---------------------------------"LU"
            elif (commands[0] == "LU"):
                if not self.controller.has_utentes():
                    print("Sem utentes registados.")
                else:
                    utentes = self.controller.listar_utentes()
                    etaria = Cheats().faixas()
                    for i in range(3):
                        for name in utentes.get(i):
                            print(f"{etaria[i]} {name}.")

            # Listar Familias--------------------------------"LF"
            elif (commands[0] == "LF"):
                if not self.controller.has_familias():
                    print("Sem famílias registadas.")
                else:
                    familias = self.controller.listar_familias()
                    for name in familias:
                        print(f'{name}.')

            # Mostrar Familia--------------------------------"MF NomeFamila"
            elif (commands[0] == "MF"):
                if not self.controller.has_familia(commands[1]):
                    print("Família inexistente.")
                else:
                    familia = self.controller.mostrar_familia(commands[1])
                    etaria = Cheats().faixas()
                    for i in range(3):
                        for name in familia.get(0):
                            print(f"{etaria[i]} {name}.")

            # Marcar ciudados a utente-----------------------"MC Nome // Serviço // Categoria Nome Profissional"
            elif (commands[0] == "MC"):
                if not self.controller.has_utente(commands[1]):
                    print("Utente inexistente.")
                else:
                    nome = commands[1]
                    dump = self.controller.create_dump()
                    sequence = self.controller.create_dump()
                    while True:
                        checker = self.controller.create_checker()
                        subline = input()
                        if subline == "":
                            break
                        inp = subline.split()
                        if len(inp) == 1:
                            servico = inp[0]
                            if not self.controller.has_servico(inp[0]):
                                checker.change_servico()
                            else:
                                sequence.insert_last(servico)
                        elif len(inp) == 2:
                            if not self.controller.has_categoria(inp[0]):
                                checker.change_categoria()
                            elif not self.controller.has_professional(inp[1]):
                                checker.change_profissional()
                            else:
                                categoria = inp[0]
                                profissional = inp[1]
                                if not self.controller.servico_has_categoria(
                                        servico, categoria):
                                    checker.change_cinvalida()
                                else:
                                    cuidado = self.controller.create_cuidado(
                                        nome, servico, categoria, profissional)
                                    dump.insert_last(cuidado)

                    if not self.controller.is_valid_sequence(sequence):
                        checker.change_sinvalida()
                    if checker.checks_out():
                        self.controller.marcar_cuidados_a_utente(nome, dump)
                        print("Cuidados marcados com sucesso.")
                    else:
                        print(self.controller.give_checker_error(checker))

            # Cancelar cuidados a utente---------------------"CC Nome"
            elif (commands[0] == "CC"):
                if not self.controller.has_utente(commands[1]):
                    print("Utente inexistente.")
                elif not self.controller.has_utente_any_cuidados(commands[1]):
                    print("Utente sem cuidados de saúde marcados.")
                else:
                    self.controller.cancelar_cuidados_marcados_a_utente(
                        commands[1])
                    print("Cuidados de saúde desmarcados com sucesso.")

            # Listar cuidados marcados a utente -------------"LCU Nome"
            elif (commands[0] == "LCU"):
                if not self.controller.has_utente(commands[1]):
                    print("Utente inexistente.")
                elif not self.controller.has_utente_any_cuidados(commands[1]):
                    print("Utente sem cuidados de saúde marcados.")
                else:

                    pass

            # Listar cuidados marcados a Familia -------------"LCF NomeFamilia"
            elif (commands[0] == "LCF"):
                pass

            # Listar serviços marcados a profissional----------"LSP Categoria NomeProfissional"
            elif (commands[0] == "LSP"):
                pass

            # Listar marcações por tipo de serviço--------------"LMS Serviço"
            elif (commands[0] == "LMS"):
                pass

            else:
                print("Instrução inválida.")
class Test_Controllers(unittest.TestCase):
    def setUp(self):
        self.controller = Controller()

    def test_registar_profissionais(self):
        self.controller.registar_profissional("Medicina", "Gilinho")
        self.assertTrue(self.controller.profissionais.has_key("Gilinho"))

    def test_registar_utente(self):
        self.controller.registar_utente("Gilinho", "Idoso")
        self.assertTrue(self.controller.utentes.has_key("Gilinho"))

    def test_registar_familia(self):
        self.controller.registar_familia("Gil")
        self.assertTrue(self.controller.familias.has_key("Gil"))

    def test_associar_utente_a_familia(self):
        self.controller.registar_utente("Gilinho", "Idoso")
        self.controller.registar_familia("Gil")
        self.controller.associar_utente_a_familia("Gilinho", "Gil")
        self.assertTrue(
            self.controller.familias.get("Gil").get_members().has_key(
                "Gilinho"))

    def test_desassociar_utente_a_familia(self):
        self.controller.registar_utente("Gilinho", "Idoso")
        self.controller.registar_familia("Gil")
        self.controller.associar_utente_a_familia("Gilinho", "Gil")
        self.controller.desassociar_utente_a_familia("Gilinho")
        self.assertFalse(
            self.controller.familias.get("Gil").get_members().has_key(
                "Gilinho"))

    def test_listar_profissionais(self):
        self.controller.registar_profissional("Medicina", "Gilinho")
        self.controller.registar_profissional("Auxiliar", "Galinha")
        self.controller.registar_profissional("Medicina", "Miguelinho")
        #------------------------------------------------------------------------------------
        listar = self.controller.listar_profissionais()
        #-------------------------------------------Gilinho----------------------------------------------
        self.assertEqual(listar.get(0).get_first(), "Medicina")
        self.assertEqual(listar.get(0).get_last(), "Gilinho")
        #-------------------------------------------Miguelinho----------------------------------------------
        self.assertEqual(listar.get(1).get_first(), "Medicina")
        self.assertEqual(listar.get(1).get_last(), "Miguelinho")
        #-------------------------------------------Galinha----------------------------------------------
        self.assertEqual(listar.get(2).get_first(), "Auxiliar")
        self.assertEqual(listar.get(2).get_last(), "Galinha")

    def test_listar_utentes(self):
        #[ ["Elvas","Idoso","Dudas"],["Gil","Jovem","Galinha"],["Gil","Idoso","Gilinho"],["","Adulto","Miguelinho"] ]
        #---------------------Registar-e-associar-utentes-as-familias------------------------
        self.controller.registar_utente("Gilinho", "Idoso")
        self.controller.registar_utente("Galinha", "Jovem")
        self.controller.registar_familia("Gil")
        self.controller.associar_utente_a_familia("Gilinho", "Gil")
        self.controller.associar_utente_a_familia("Galinha", "Gil")
        self.controller.registar_utente("Dudas", "Idoso")
        self.controller.registar_familia("Elvas")
        self.controller.associar_utente_a_familia("Dudas", "Elvas")
        self.controller.registar_utente("Miguelinho", "Adulto")
        #------------------------------------------------------------------------------------
        listar = self.controller.listar_utentes()
        #--------------------------------------Dudas------------------------------------------
        self.assertEqual(listar.get(0).get(0), "Elvas")
        self.assertEqual(listar.get(0).get(1), "Idoso")
        self.assertEqual(listar.get(0).get(2), "Dudas")
        #--------------------------------------Galinha------------------------------------------
        self.assertEqual(listar.get(1).get(0), "Gil")
        self.assertEqual(listar.get(1).get(1), "Jovem")
        self.assertEqual(listar.get(1).get(2), "Galinha")
        #--------------------------------------Dudas------------------------------------------
        self.assertEqual(listar.get(2).get(0), "Gil")
        self.assertEqual(listar.get(2).get(1), "Idoso")
        self.assertEqual(listar.get(2).get(2), "Gilinho")
        #--------------------------------------Dudas------------------------------------------
        self.assertEqual(listar.get(3).get(0), "")
        self.assertEqual(listar.get(3).get(1), "Adulto")
        self.assertEqual(listar.get(3).get(2), "Miguelinho")
        #-------------------------------------------------------------------------------------

    def test_listar_familias(self):
        #["Gil","Rosario"]
        self.controller.registar_familia("Gil")
        self.controller.registar_familia("Rosario")
        #--------------------------------------------------------------------------------------
        listar = self.controller.listar_familias()
        #--------------------------------------------------------------------------------------
        self.assertEqual(listar.get(0), "Gil")
        #--------------------------------------------------------------------------------------
        self.assertEqual(listar.get(1), "Rosario")

    def test_mostrar_familia(self):
        #[["Jovem","Galinha"],["Adulto","Miguelinho"]["Idoso","Gilinho"]]
        self.controller.registar_familia("Gil")
        self.controller.registar_utente("Gilinho", "Idoso")
        self.controller.associar_utente_a_familia("Gilinho", "Gil")
        self.controller.registar_utente("Galinha", "Jovem")
        self.controller.associar_utente_a_familia("Galinha", "Gil")
        self.controller.registar_utente("Miguelinho", "Adulto")
        self.controller.associar_utente_a_familia("Galinha", "Gil")
        #-------------------------------------------------------------------------
        listar = self.controller.mostrar_familia("Gil")
        #----------------------------Galinha---------------------------------------
        self.assertEqual(listar.get(0).get_first(), "Jovem")
        self.assertEqual(listar.get(0).get_last(), "Galinha")
        #----------------------------Miguelinho---------------------------------------
        self.assertEqual(listar.get(1).get_first(), "Adulto")
        self.assertEqual(listar.get(1).get_last(), "Miguelinho")
        #----------------------------Gilinho---------------------------------------
        self.assertEqual(listar.get(2).get_first(), "Idoso")
        self.assertEqual(listar.get(2).get_last(), "Gilinho")
        #---------------------------------------------------------------------------

    def marcar_cuidados(self, nome, serviço, categoria, NomeProfissional):
        pass

    def test_marcar_cuidados_a_utente(self):
        self.controller.registar_utente("Dudas", "Idoso")
        self.controller.registar_profissional("Medicina", "Gilinho")
        self.controller.marcar_cuidados_a_utente("Dudas", "Consulta",
                                                 "Medicina", "Gilinho")
        self.assertEqual(
            self.controller.utentes.get(
                "Dudas").get_cuidados().get_first().get_servico(), "Consulta")

    def test_cancelar_cuidados_marcados_a_utente(self):
        self.controller.registar_utente("Dudas", "Idoso")
        self.controller.registar_profissional("Medicina", "Gilinho")
        self.controller.registar_profissional("Medicina", "Valéria")
        self.controller.marcar_cuidados_a_utente("Dudas", "Consulta",
                                                 "Medicina", "Gilinho")
        self.controller.cancelar_cuidados_marcados_a_utente("Dudas")
        self.assertTrue(
            self.controller.utentes.get("Dudas").get_cuidados().is_empty())

    def test_listar_cuidados_marcados_a_utente(self):
        self.controller.registar_utente("Dudas", "Idoso")
        self.controller.registar_profissional("Medicina", "Gilinho")
        self.controller.marcar_cuidados_a_utente("Dudas", "Consulta",
                                                 "Medicina", "Gilinho")
        self.controller.cancelar_cuidados_marcados_a_utente("Dudas")
        self.assertEqual(
            self.controller.listar_cuidados_marcados_a_utente(
                "Dudas").get_first().get_servico(), "Consulta")

    def test_listar_cuidados_marcados_a_familia(self):
        #[["Galinha","Consulta","Medicina","Gilinho"],["Dudas,"Consulta,"Medicina","Gilinho"]]
        self.controller.registar_familia("Gil")
        self.controller.registar_utente("Dudas", "Idoso")
        self.controller.registar_utente("Galinha", "Jovem")
        self.controller.associar_utente_a_familia("Galinha", "Gil")
        self.controller.associar_utente_a_familia("Dudas", "Gil")
        self.controller.registar_profissional("Medicina", "Gilinho")
        self.controller.marcar_cuidados_a_utente("Dudas", "Consulta",
                                                 "Medicina", "Gilinho")
        self.controller.marcar_cuidados_a_utente("Galinha", "Consulta",
                                                 "Medicina", "Gilinho")
        listar = self.controller.listar_cuidados_marcados_a_familia("Gil")
        #------------------------------------Galinha-----------------------------------------
        self.assertEqual(listar.get(0).get_first(), "Galinha")
        #------------------------------------Dudas-------------------------------------------
        self.assertEqual(listar.get(1).get_first(), "Dudas")
        #-------------------------------------------------------------------------------------

    def test_listar_servicos_marcados_a_profissional(self):
        #[["Consulta","Dudas"],["Consulta","Galinha"]]
        self.controller.registar_utente("Dudas", "Idoso")
        self.controller.registar_utente("Galinha", "Jovem")
        self.controller.registar_profissional("Medicina", "Gilinho")
        #-------------------------------------------------------------------------------------
        self.controller.marcar_cuidados_a_utente("Dudas", "Consulta",
                                                 "Medicina", "Gilinho")
        self.controller.marcar_cuidados_a_utente("Galinha", "Consulta",
                                                 "Medicina", "Gilinho")
        #-------------------------------------------------------------------------------------
        listar = self.controller.listar_servicos_marcados_a_profissional(
            "Medicina", "Gilinho")
        #-----------------------------------------Dudas-----------------------------------------
        self.assertEqual(listar.get(0).get_last(), "Dudas")
        #-----------------------------------------Galinha---------------------------------------
        self.assertEqual(listar.get(1).get_last(), "Galinha")
        #---------------------------------------------------------------------------------------

    def test_listar_marcações_por_tipo_de_servico(self):
        #[["Medicina","Gilinho","Dudas"],["Medicina","Gilinho","Galinha"]]
        self.controller.registar_utente("Dudas", "Idoso")
        self.controller.registar_utente("Galinha", "Jovem")
        self.controller.registar_profissional("Medicina", "Gilinho")
        #-------------------------------------------------------------------------------------
        self.controller.marcar_cuidados_a_utente("Dudas", "Consulta",
                                                 "Medicina", "Gilinho")
        self.controller.marcar_cuidados_a_utente("Galinha", "Consulta",
                                                 "Medicina", "Gilinho")
        #-------------------------------------------------------------------------------------
        listar = self.controller.listar_marcações_por_tipo_de_servico(
            "Consulta")
        #-----------------------------------------Dudas-----------------------------------------
        self.assertEqual(listar.get(0).get_last(), "Dudas")
        #-----------------------------------------Galinha---------------------------------------
        self.assertEqual(listar.get(1).get_last(), "Galinha")