flutter_date_time_picker/test/date_constraint_test.dart

220 lines
9.2 KiB
Dart
Raw Permalink Normal View History

// SPDX-FileCopyrightText: 2022 Iconica
//
// SPDX-License-Identifier: BSD-3-Clause
import 'package:flutter_date_time_picker/src/models/date_constraint.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
group('Date Range', () {
group('inRange()', () {
test(
'inRange() should return true when date is between min and max otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 06, 01)),
max: DateConstraint(date: DateTime(2022, 07, 01)),
);
expect(range.inRange(DateTime(2022, 06, 20)), true);
expect(range.inRange(DateTime(2022, 07, 20)), false);
expect(range.inRange(DateTime(2022, 05, 20)), false);
});
test(
'inRange() should return true when date is between infinity and max otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint.infinity,
max: DateConstraint(date: DateTime(2022, 07, 01)),
);
expect(range.inRange(DateTime(2022, 06, 20)), true);
expect(range.inRange(DateTime(2022, 07, 20)), false);
expect(range.inRange(DateTime(2022, 05, 20)), true);
});
test(
'inRange() should return true when date is between min and infinity otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 06, 01)),
max: DateConstraint.infinity,
);
expect(range.inRange(DateTime(2022, 06, 20)), true);
expect(range.inRange(DateTime(2022, 07, 20)), true);
expect(range.inRange(DateTime(2022, 05, 20)), false);
});
test('inRange() should return true when date is lower then max', () {
DateTimeConstraint range = DateTimeConstraint(
max: DateConstraint(date: DateTime(2022, 07, 01)),
);
expect(range.inRange(DateTime(2022, 06, 20)), true);
expect(range.inRange(DateTime(2022, 07, 20)), false);
expect(range.inRange(DateTime(2022, 05, 20)), true);
});
test('inRange() should return true when date is higher then min', () {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 06, 01)),
);
expect(range.inRange(DateTime(2022, 06, 20)), true);
expect(range.inRange(DateTime(2022, 07, 20)), true);
expect(range.inRange(DateTime(2022, 05, 20)), false);
});
test('inRange() should return true when date is equal to max', () {
DateTimeConstraint range = DateTimeConstraint(
max: DateConstraint(date: DateTime(2022, 06, 01)),
);
expect(range.inRange(DateTime(2022, 06, 01)), true);
expect(range.inRange(DateTime(2022, 05, 30)), true);
expect(range.inRange(DateTime(2022, 06, 02)), false);
});
test('inRange() should return true when date is equal to min', () {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 06, 01)),
);
expect(range.inRange(DateTime(2022, 06, 01)), true);
expect(range.inRange(DateTime(2022, 06, 02)), true);
expect(range.inRange(DateTime(2022, 05, 30)), false);
});
});
group('inYearRange()', () {
test(
'inYearRange() should return true when year is between min and max otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 1, 1)),
max: DateConstraint(date: DateTime(2024, 1, 1)),
);
expect(range.inYearRange(DateTime(2023, 1, 1)), true);
expect(range.inYearRange(DateTime(2021, 1, 1)), false);
expect(range.inYearRange(DateTime(2025, 1, 1)), false);
});
test(
'inYearRange() should return true when year equals min or max otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 1, 1)),
max: DateConstraint(date: DateTime(2023, 1, 1)),
);
expect(range.inYearRange(DateTime(2022, 1, 1)), true);
expect(range.inYearRange(DateTime(2023, 1, 1)), true);
expect(range.inYearRange(DateTime(2021, 1, 1)), false);
expect(range.inYearRange(DateTime(2024, 1, 1)), false);
});
test(
'inYearRange() should return true when year is between min and infinity otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 1, 1)),
);
expect(range.inYearRange(DateTime(2023, 1, 1)), true);
expect(range.inYearRange(DateTime(2025, 1, 1)), true);
expect(range.inYearRange(DateTime(2021, 1, 1)), false);
});
test(
'inYearRange() should return true when year is between infinity and max otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
max: DateConstraint(date: DateTime(2024, 1, 1)),
);
expect(range.inYearRange(DateTime(2023, 1, 1)), true);
expect(range.inYearRange(DateTime(2021, 1, 1)), true);
expect(range.inYearRange(DateTime(2025, 1, 1)), false);
});
});
group('inMonthRange()', () {
test(
'inMonthRange() should return true when year is between min and max otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 5, 1)),
max: DateConstraint(date: DateTime(2022, 7, 1)),
);
expect(range.inMonthRange(DateTime(2022, 6, 1)), true);
expect(range.inMonthRange(DateTime(2022, 3, 1)), false);
expect(range.inMonthRange(DateTime(2022, 8, 1)), false);
});
test(
'inMonthRange() should return true when year equals min or max otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 5, 1)),
max: DateConstraint(date: DateTime(2022, 6, 1)),
);
expect(range.inMonthRange(DateTime(2022, 5, 1)), true);
expect(range.inMonthRange(DateTime(2022, 6, 1)), true);
expect(range.inMonthRange(DateTime(2022, 4, 1)), false);
expect(range.inMonthRange(DateTime(2022, 7, 1)), false);
});
test(
'inMonthRange() should return true when year is between min and infinity otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 5, 1)),
);
expect(range.inMonthRange(DateTime(2022, 6, 1)), true);
expect(range.inMonthRange(DateTime(2022, 8, 1)), true);
expect(range.inMonthRange(DateTime(2022, 3, 1)), false);
});
test(
'inMonthRange() should return true when year is between infinity and max otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
max: DateConstraint(date: DateTime(2022, 7, 1)),
);
expect(range.inMonthRange(DateTime(2022, 6, 1)), true);
expect(range.inMonthRange(DateTime(2022, 3, 1)), true);
expect(range.inMonthRange(DateTime(2022, 8, 1)), false);
});
});
group('inDateRange()', () {
test(
'inDateRange() should return true when year is between min and max otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 1, 4)),
max: DateConstraint(date: DateTime(2022, 1, 6)),
);
expect(range.inDateRange(DateTime(2022, 1, 5)), true);
expect(range.inDateRange(DateTime(2022, 1, 3)), false);
expect(range.inDateRange(DateTime(2022, 1, 7)), false);
});
test(
'inDateRange() should return true when year equals min or max otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 1, 4)),
max: DateConstraint(date: DateTime(2022, 1, 5)),
);
expect(range.inDateRange(DateTime(2022, 1, 4)), true);
expect(range.inDateRange(DateTime(2022, 1, 5)), true);
expect(range.inDateRange(DateTime(2022, 1, 3)), false);
expect(range.inDateRange(DateTime(2022, 1, 6)), false);
});
test(
'inDateRange() should return true when year is between min and infinity otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
min: DateConstraint(date: DateTime(2022, 1, 4)),
);
expect(range.inDateRange(DateTime(2022, 1, 5)), true);
expect(range.inDateRange(DateTime(2022, 1, 7)), true);
expect(range.inDateRange(DateTime(2022, 1, 3)), false);
});
test(
'inDateRange() should return true when year is between infinity and max otherwise false',
() {
DateTimeConstraint range = DateTimeConstraint(
max: DateConstraint(date: DateTime(2022, 1, 6)),
);
expect(range.inDateRange(DateTime(2022, 1, 5)), true);
expect(range.inDateRange(DateTime(2022, 1, 3)), true);
expect(range.inDateRange(DateTime(2022, 1, 7)), false);
});
});
});
}