diff --git a/lib/time/test/time_test.dart b/lib/time/test/time_test.dart index ac8665b41..fbf060cc1 100644 --- a/lib/time/test/time_test.dart +++ b/lib/time/test/time_test.dart @@ -6,6 +6,7 @@ // // SPDX-License-Identifier: EUPL-1.2 +import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:time/time.dart'; @@ -45,6 +46,109 @@ void main() { }); }); + test('.hour', () { + expect(Time(hour: 0).hour, 0); + expect(Time(hour: 1).hour, 1); + expect(Time(hour: 1, minute: 1).hour, 1); + expect(Time(hour: 1, minute: 12).hour, 1); + }); + + test('.minute', () { + expect(Time(hour: 0, minute: 0).minute, 0); + expect(Time(hour: 0, minute: 1).minute, 1); + expect(Time(hour: 0, minute: 10).minute, 10); + expect(Time(hour: 1, minute: 10).minute, 10); + }); + + test('.totalMinutes', () { + expect(Time(hour: 0, minute: 0).totalMinutes, 0); + expect(Time(hour: 0, minute: 1).totalMinutes, 1); + expect(Time(hour: 0, minute: 10).totalMinutes, 10); + expect(Time(hour: 1, minute: 10).totalMinutes, 70); + expect(Time(hour: 1, minute: 0).totalMinutes, 60); + expect(Time(hour: 1).totalMinutes, 60); + }); + + test('==', () { + expect(Time(hour: 1, minute: 1), Time(hour: 1, minute: 1)); + expect(Time(hour: 0), Time(hour: 0)); + expect(Time(hour: 0) == Time(hour: 1), false); + }); + + test('.differenceInMinutes()', () { + expect(Time(hour: 1).differenceInMinutes(Time(hour: 2)), 60); + expect(Time(hour: 2).differenceInMinutes(Time(hour: 1)), 60); + expect( + Time(hour: 0, minute: 30).differenceInMinutes(Time(hour: 0, minute: 40)), + 10, + ); + }); + + test('.time', () { + expect(Time(hour: 2).time, '02:00'); + expect(Time(hour: 2, minute: 1).time, '02:01'); + expect(Time(hour: 2, minute: 10).time, '02:10'); + expect(Time(hour: 12, minute: 59).time, '12:59'); + }); + + test('.toString()', () { + expect('${Time(hour: 2)}', '02:00'); + expect('${Time(hour: 2, minute: 1)}', '02:01'); + expect('${Time(hour: 2, minute: 10)}', '02:10'); + expect('${Time(hour: 12, minute: 59)}', '12:59'); + }); + + test('.compareTo', () { + expect(Time(hour: 5).compareTo(Time(hour: 5)), 0); + expect(Time(hour: 5).compareTo(Time(hour: 0)), 1); + expect(Time(hour: 0).compareTo(Time(hour: 5)), -1); + }); + + test('.copyWithAddedMinutes()', () { + expect(Time(hour: 0).copyWithAddedMinutes((60)), Time(hour: 1)); + expect(Time(hour: 0).copyWithAddedMinutes(23), Time(hour: 0, minute: 23)); + expect(Time(hour: 0).copyWithAddedMinutes(70), Time(hour: 1, minute: 10)); + expect( + Time(hour: 23).copyWithAddedMinutes(120), + Time(hour: 1), + skip: + 'Not working because .fromTotalMinutes() needs to do modulo 24. Ticket: https://github.com/SharezoneApp/sharezone-app/issues/303', + ); + }); + + test('.fromTimeOfDay()', () { + expect( + Time.fromTimeOfDay(TimeOfDay(hour: 1, minute: 1)), + Time(hour: 1, minute: 1), + ); + expect( + Time.fromTimeOfDay(TimeOfDay(hour: 0, minute: 0)), + Time(hour: 0, minute: 0), + ); + expect( + Time.fromTimeOfDay(TimeOfDay(hour: 10, minute: 10)), + Time(hour: 10, minute: 10), + ); + }); + + test('.parse()', () { + expect(Time.parse('00:01'), Time(hour: 0, minute: 1)); + expect(Time.parse('00:00'), Time(hour: 0, minute: 0)); + expect(Time.parse('00:10'), Time(hour: 0, minute: 10)); + expect(Time.parse('23:59'), Time(hour: 23, minute: 59)); + }); + + test('.hashCode', () { + expect(Time(hour: 0).hashCode, '00:00'.hashCode); + }); + + test('.toTimeOfDay()', () { + expect( + Time(hour: 0, minute: 1).toTimeOfDay(), + TimeOfDay(hour: 0, minute: 1), + ); + }); + test('plus operator', () { expect(am8.add(const Duration(minutes: 45)), Time(hour: 8, minute: 45)); expect(am8.add(const Duration(minutes: 60)), Time(hour: 9, minute: 0));