Skip to content
This repository has been archived by the owner on Nov 7, 2020. It is now read-only.

Commit

Permalink
create extension function for datetime format
Browse files Browse the repository at this point in the history
  • Loading branch information
remonh87 committed Jan 7, 2020
1 parent d122c37 commit 7fc5f52
Show file tree
Hide file tree
Showing 8 changed files with 33 additions and 27 deletions.
3 changes: 2 additions & 1 deletion lib/ui/home_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'package:functional_data/functional_data.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:happy_holidays/model/national_holiday.dart';
import 'package:provider/provider.dart';
import 'package:happy_holidays/utils/date_time_extensions.dart';

import 'flag_rounded_image.dart';

Expand Down Expand Up @@ -86,7 +87,7 @@ class AnimatedHolidayPage extends StatelessWidget {
child: Opacity(
opacity: animation.opacityDateAnimation.value,
child: Text(
'${holiday.date.day} - ${holiday.date.month} - ${holiday.date.year}',
holiday.date.simpleDateTimeEuropean(),
style: GoogleFonts.kavoon(fontSize: 34.0),
),
),
Expand Down
4 changes: 4 additions & 0 deletions lib/utils/date_time_extensions.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
extension DateTimeExtended on DateTime {
String simpleDateTimeEuropean() => '$day-$month-$year';
String simpleDateTimeUS() => '$year-$month-$day';
}
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Just a project to have fun
version: 1.0.0+1

environment:
sdk: ">=2.1.0 <3.0.0"
sdk: ">=2.6.0 <3.0.0"

dependencies:
flutter:
Expand Down
2 changes: 1 addition & 1 deletion test/db/db_middleware_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:happy_holidays/model/national_holiday.dart';
import 'package:happy_holidays/redux/actions.dart';
import 'package:mockito/mockito.dart';

import '../utils/stubs.dart';
import '../test_utils/stubs.dart';

class _MockDatabase extends Mock implements HolidayDatabase {}

Expand Down
33 changes: 10 additions & 23 deletions test/db/holiday_db_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,48 +19,35 @@ void main() {
test('It inserts holidays', () async {
when(db.insert(any, any)).thenAnswer((_) => Future.value(0));

final holiday1 =
NationalHoliday(name: 'test', date: DateTime(2020, 1, 1));
final holiday1 = NationalHoliday(name: 'test', date: DateTime(2020, 1, 1));
final holiday2 = NationalHoliday.testinstance();
await sut.addHolidays([holiday1, holiday2]);

verify(db.insert('holidays',
<String, dynamic>{'name': holiday1.name, 'date': 1577833200000},
verify(db.insert('holidays', <String, dynamic>{'name': holiday1.name, 'dateEpoch': 1577833200000},
conflictAlgorithm: ConflictAlgorithm.replace))
.called(1);

verify(db.insert('holidays',
<String, dynamic>{'name': holiday2.name, 'date': 1546297200000},
nullColumnHack: null,
conflictAlgorithm: ConflictAlgorithm.replace))
verify(db.insert('holidays', <String, dynamic>{'name': holiday2.name, 'dateEpoch': 1546297200000},
nullColumnHack: null, conflictAlgorithm: ConflictAlgorithm.replace))
.called(1);
});
});

group('Query database', () {
test('It converts contents to holidays in case db has value', () async {
when(db.query('holidays')).thenAnswer((_) => Future.value([
<String, Object>{
'name': 'holiday from db',
'date': 1577833200000
},
<String, Object>{
'name': 'holidaynot to be shown',
'date': 1546297200000
},
<String, Object>{'name': 'holiday from db', 'dateEpoch': 1577833200000},
<String, Object>{'name': 'holidaynot to be shown', 'dateEpoch': 1546297200000},
]));

expect(await sut.retrieveHolidays(DateTime(2019, 12, 31)), [
NationalHoliday(name: 'holiday from db', date: DateTime(2020, 1, 1))
]);
expect(await sut.retrieveHolidays(DateTime(2019, 12, 31)),
[NationalHoliday(name: 'holiday from db', date: DateTime(2020, 1, 1))]);
});

test('It returns empty iterable in case db is empty', () async {
when(db.query('holidays'))
.thenAnswer((_) => Future.value([<String, String>{}]));
when(db.query('holidays')).thenAnswer((_) => Future.value([<String, String>{}]));

expect(await sut.retrieveHolidays(DateTime(2019, 12, 31)),
<NationalHoliday>[]);
expect(await sut.retrieveHolidays(DateTime(2019, 12, 31)), <NationalHoliday>[]);
});
});
});
Expand Down
2 changes: 1 addition & 1 deletion test/redux/app_middleware_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import 'package:happy_holidays/redux/actions.dart';
import 'package:happy_holidays/redux/app_middleware.dart';
import 'package:mockito/mockito.dart';

import '../utils/stubs.dart';
import '../test_utils/stubs.dart';

class _MockDispatcher extends Mock implements Dispatcher {}

Expand Down
File renamed without changes.
14 changes: 14 additions & 0 deletions test/utils/date_time_extensions_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:happy_holidays/utils/date_time_extensions.dart';

void main() {
final dateTime = DateTime(2020, 1, 1);

test('European dateformat', () {
expect(dateTime.simpleDateTimeEuropean(), '1-1-2020');
});

test('US dateformat', () {
expect(dateTime.simpleDateTimeUS(), '2020-1-1');
});
}

0 comments on commit 7fc5f52

Please sign in to comment.