mirror of
https://github.com/Iconica-Development/flutter_date_time_picker.git
synced 2025-05-18 10:23:50 +02:00
220 lines
9.2 KiB
Dart
220 lines
9.2 KiB
Dart
// 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);
|
|
});
|
|
});
|
|
});
|
|
}
|