// testTime1.cc  TDD for Time class, except for print functions
// P. Conrad for CISC220, 06J

#include "time.h"
#include "runTests.h"
#include <iostream>
using std::cout;
using std::cerr;
using std::endl;

void printHeader(const char * const file, int line)
{
  cout << "\n=== Tests from " << file << " at line " << line << "===" << endl;
}

int main(void)
{

  RunTests_C test;

  printHeader(__FILE__,__LINE__);
  Time_C t;
  test.assertEquals(t.getHour(),0);
  test.assertEquals(t.getMinute(),0);
  test.assertEquals(t.badTime(),false);

  printHeader(__FILE__,__LINE__);
  Time_C t1(6,30);
  test.assertEquals(t1.getHour(),6);
  test.assertEquals(t1.getMinute(),30);
  test.assertEquals(t1.badTime(), false);


  printHeader(__FILE__,__LINE__);
  Time_C t2(24,30);
  test.assertEquals(t2.getHour(),-1);
  test.assertEquals(t2.getMinute(),-1);
  test.assertEquals(t2.badTime(), true);

  printHeader(__FILE__,__LINE__);
  Time_C t3(12,60);
  test.assertEquals(t3.getHour(),-1);
  test.assertEquals(t3.getMinute(),-1);
  test.assertEquals(t3.badTime(), true);

  
  test.print();
  test.finish();

  // but we didn't test printing a time object !??!
  // i.e. does  cout << t1 << endl; produce "06:30\n" ?
  // and does cout << t2 << endl; produce "xx:xx\n" ?
}
