def test_lerentrada_modalidade_inexistente_texto_a_mais(self):
     """
     Testa cenário de erro de entrada (usuário digita texto a mais).
     :return: None
     """
     menu = Menu(MockInput("123deOliveira4"))
     menu.lerentrada()
     self.assertEqual(menu.validarmodalidade(), False,
                      "Esperado resultado 'False'")
 def test_lerentrada_modalidade_inexistente_espacos(self):
     """
     Testa cenário de erro de entrada (usuário digita espaços).
     :return: None
     """
     menu = Menu(MockInput("1 "))
     menu.lerentrada()
     self.assertEqual(menu.validarmodalidade(), False,
                      "Esperado resultado 'False'")
 def test_lerentrada_modalidade_ginastica_artistica(self):
     """
     Testa cenário do caminho feliz (usuário digita modalidade existente).
     :return: None
     """
     menu = Menu(MockInput(ID_MODALIDADE_GINASTICAARTISTICA))
     menu.lerentrada()
     self.assertEqual(menu.validarmodalidade(), True,
                      "Esperado resultado 'True'")
 def test_lerentrada_modalidade_arremesso_peso(self):
     """
     Testa cenário do caminho feliz (usuário digita modalidade existente).
     :return: None
     """
     menu = Menu(MockInput(ID_MODALIDADE_ARREMESSOPESO))
     menu.lerentrada()
     self.assertEqual(menu.validarmodalidade(), True,
                      "Esperado resultado 'True'")
def main():
    """
    Entrada da aplicação. Pergunta pelo tipo de competição, executa e mostra
    o resultado final.
    @return: 0 (sucesso) ou 1 (erro)
    """
    inp = Input()
    menu = Menu(inp)
    # Valida e recebe a identificação de qual modalidade será executada.
    while not menu.validarmodalidade():
        menu.lerentrada()

    modalidade = menu.modalidade(inp)

    # Valida e recebe os resultados de todos os adversários da modalidade.
    for numadversario in range(modalidade.numeroadversarios()):
        while not modalidade.validarentrada(
                modalidade.lerentrada(numadversario+1)
        ):
            continue

    # Processa o resultado (vencedor).
    modalidade.iniciar()

    print("Vencedor: {}".format(modalidade.vencedor()))
 def test_menu_instancia_dinamica_arremesso_peso(self):
     """
     Testa cenário do caminho feliz (valida o retorno de uma instância
     da classe ArremessoPeso).
     :return: None
     """
     _input = MockInput(ID_MODALIDADE_ARREMESSOPESO)
     menu = Menu(_input)
     menu.lerentrada()
     menu.validarmodalidade()
     self.assertEqual(
         str(menu.modalidade(_input).__class__),
         "<class 'ooppython3.modalidadearremessopeso.Arremess"
         "oPeso'>", "Esperada classe <class 'ooppython3.modalidadearreme"
         "ssopeso.ArremessoPeso'>")
 def test_menu_instancia_dinamica_ginastica_artistica(self):
     """
     Testa cenário do caminho feliz (valida o retorno de uma instância
     da classe GinasticaArtistica).
     :return: None
     """
     _input = MockInput(ID_MODALIDADE_GINASTICAARTISTICA)
     menu = Menu(_input)
     menu.lerentrada()
     menu.validarmodalidade()
     self.assertEqual(
         str(menu.modalidade(_input).__class__),
         "<class 'ooppython3.modalidadeginasticaartistica.Gin"
         "asticaArtistica'>",
         "Esperada classe <class 'ooppython3.modalidadeginast"
         "icaartistica.GinasticaArtistica'>")