def test_report_moreThanADayWorking(self):
     logs = LogBuilder().start("09:00",
                               "2020/04/10").end("18:00",
                                                 "2020/04/11").build()
     with self.assertRaises(ValueError) as context:
         logAnalyzer.Report(logs).report()
     self.assertTrue('Time account exceeds a day' in str(context.exception))
 def test_report_longDayWorking(self):
     logs = LogBuilder().start("09:00",
                               "2020/04/10").end("08:00",
                                                 "2020/04/11").build()
     report = ReportBuilder().start("09:00").end("08:00").total(
         "23:00").working("23:00").resting("00:00").build()
     self.assertEqual(logAnalyzer.Report(logs).report(), report)
 def test_report_severalSessionsWithPausesSameDay(self):
     logs = LogBuilder().start().pause(
         "10:00",
         "10:30").end("10:35").start("11:05").pause("11:10",
                                                    "11:40").end().build()
     report = ReportBuilder().working("08:00").resting("01:30").build()
     self.assertEqual(logAnalyzer.Report(logs).report(), report)
 def test_report_severalPauses(self):
     logs = LogBuilder().start().pause("10:00", "10:30").pause(
         "13:15", "13:45").end().build()
     report = ReportBuilder().working("08:30").resting("01:00").build()
     self.assertEqual(logAnalyzer.Report(logs).report(), report)
 def test_report_noPauses(self):
     logs = LogBuilder().start().end().build()
     report = ReportBuilder().working("09:30").resting("00:00").build()
     self.assertEqual(logAnalyzer.Report(logs).report(), report)
 def test_report_isEmptyInput(self):
     self.assertEqual(
         logAnalyzer.Report([]).report(), "{}",
         "Should be empty json string")
 def test_report_workingLessThanAMinute(self):
     logs = LogBuilder().start().pause("13:00", "13:30").pause(
         "13:30", "14:00").end().build()
     report = ReportBuilder().build()
     self.assertEqual(logAnalyzer.Report(logs).report(), report)
 def test_checkCurrentDayWithPause(self, now_function):
     logs = LogBuilder().start().pause("13:00", "14:00").build()
     report = ReportBuilder().build()
     self.assertEqual(logAnalyzer.Report(logs).report(), report)
 def test_checkCurrentDay(self, now_function):
     logs = LogBuilder().start().build()
     report = ReportBuilder().working("09:30").resting("00:00").build()
     self.assertEqual(logAnalyzer.Report(logs).report(), report)
 def test_report_allDayWorkingWithPauseWithACrashWhileResting(self):
     logs = LogBuilder().start().newLine(
         "11:00", "Lock").start("12:00").end().build()
     report = ReportBuilder().working("08:30").resting("01:00").build()
     self.assertEqual(logAnalyzer.Report(logs).report(), report)
 def test_report_allDayWorkingWithACrashWhileWorking(self):
     logs = LogBuilder().start().start("11:00").end().build()
     report = ReportBuilder().working("09:30").resting("00:00").build()
     self.assertEqual(logAnalyzer.Report(logs).report(), report)