public void Criacao_Hora_Formato_Invalido()
 {
     try
     {
         Hora hora = new Hora("00-00");
         Assert.Fail("O formato '00-00' é inválido. Uma ArgumentException deveria ser lançada.");
     }
     catch (ArgumentException e)
     {
         Assert.AreEqual<string>("Formato de Hora inválido: 00-00", e.Message);
     }
 }
        public void Criacao_Hora_Com_Um_Digito()
        {
            Hora hora = new Hora("9:30");

            Assert.AreEqual<string>("9:30", hora.ToString());
        }
        public void Criacao_Hora_Nao_Informando_Hora_E_Minuto()
        {
            Hora hora = new Hora();

            Assert.AreEqual<string>("00:00", hora.ToString());
        }
 public void Criacao_Hora_Formato_Invalido_Excecao_Esperada()
 {
     Hora hora = new Hora("00-00");
 }
        public void Soma_Horas_Com_Soma_Dos_Minutos_Acima_De_59_Minutos()
        {
            Hora hora = new Hora("1:59");
            hora.SomaHoras("2:59");

            Assert.AreEqual<string>("4:58", hora.ToString());
        }
        public void Soma_Horas_Com_Segundo_Valor_Negativo_E_Maior_Que_O_Primeiro()
        {
            Hora hora = new Hora("23:09");
            hora.SomaHoras("-453:00");

            Assert.AreEqual<string>("-429:51", hora.ToString());
        }
        public void Soma_Horas_Com_Minutos()
        {
            Hora hora = new Hora("1:10");
            hora.SomaHoras("2:15");

            Assert.AreEqual<string>("3:25", hora.ToString());
        }
        public void Soma_Horas_Formato_Invalido()
        {
            try
            {
                Hora hora = new Hora("1:10");
                hora.SomaHoras("2-15");

                Assert.Fail("O formato '2-15' é inválido. Uma ArgumentException deveria ser lançada.");
            }
            catch (ArgumentException e)
            {
                Assert.AreEqual<string>("Formato de Hora inválido: 2-15", e.Message);
            }
        }
        public void Soma_Horas_Com_Mais_De_Um_Digito()
        {
            Hora hora = new Hora("1234:00");
            hora.SomaHoras("6:00");

            Assert.AreEqual<string>("1240:00", hora.ToString());        
        }
        public void Soma_Horas_Com_Valor_Negativo()
        {
            Hora hora = new Hora("333:00");
            hora.SomaHoras("-3:00");

            Assert.AreEqual<string>("330:00", hora.ToString());
        }
        public void Soma_Horas_Com_Um_Digito()
        {
            Hora hora = new Hora("3:00");
            hora.SomaHoras("5:00");

            Assert.AreEqual<string>("8:00", hora.ToString());
        }
 public void Criacao_Hora_Com_Minutos_Invalidos()
 { 
     try
     {
         Hora hora = new Hora("5:60");
         Assert.Fail("Os minutos de '5:60' são inválidos. Uma ArgumentException deveria ser lançada.");
     }
     catch (ArgumentException e)
     {
         Assert.AreEqual<string>("Formato de Hora inválido: 5:60", e.Message);
     }
 }
        public void Criacao_Hora_Negativa()
        {
            Hora hora = new Hora("-1:00");

            Assert.AreEqual<string>("-1:00", hora.ToString());
        }
 public void Criacao_Hora_Sem_Digito_De_Horas()
 {
     try
     {
         Hora hora = new Hora(":15");
         Assert.Fail("Uma hora não pode ser criada só com minutos. Uma ArgumentException deveria ser lançada.");
     }
     catch (ArgumentException e)
     {
         Assert.AreEqual<string>("Formato de Hora inválido: :15", e.Message);
     }
 }
        public void Criacao_Hora_Com_Mais_De_Dois_Digitos()
        {
            Hora hora = new Hora("130:00");

            Assert.AreEqual<string>("130:00", hora.ToString());
        }