uto_manager/test/domain/entities/authorized_rank_test.dart

107 lines
4.1 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:uto_manager/domain/entities/authorized_rank.dart';
void main() {
group('AuthorizedRank', () {
group('payGrade', () {
test('returns correct pay grade string for enlisted', () {
expect(AuthorizedRank.e1.payGrade, equals('E-1'));
expect(AuthorizedRank.e4.payGrade, equals('E-4'));
expect(AuthorizedRank.e9.payGrade, equals('E-9'));
});
test('returns correct pay grade string for warrant officers', () {
expect(AuthorizedRank.w1.payGrade, equals('W-1'));
expect(AuthorizedRank.w5.payGrade, equals('W-5'));
});
test('returns correct pay grade string for commissioned officers', () {
expect(AuthorizedRank.o1.payGrade, equals('O-1'));
expect(AuthorizedRank.o6.payGrade, equals('O-6'));
expect(AuthorizedRank.o10.payGrade, equals('O-10'));
});
});
group('category flags', () {
test('enlisted ranks are correctly identified', () {
expect(AuthorizedRank.e1.isEnlisted, isTrue);
expect(AuthorizedRank.e9.isEnlisted, isTrue);
expect(AuthorizedRank.w1.isEnlisted, isFalse);
expect(AuthorizedRank.o1.isEnlisted, isFalse);
});
test('warrant officer ranks are correctly identified', () {
expect(AuthorizedRank.w1.isWarrantOfficer, isTrue);
expect(AuthorizedRank.w5.isWarrantOfficer, isTrue);
expect(AuthorizedRank.e1.isWarrantOfficer, isFalse);
expect(AuthorizedRank.o1.isWarrantOfficer, isFalse);
});
test('commissioned officer ranks are correctly identified', () {
expect(AuthorizedRank.o1.isCommissionedOfficer, isTrue);
expect(AuthorizedRank.o10.isCommissionedOfficer, isTrue);
expect(AuthorizedRank.e1.isCommissionedOfficer, isFalse);
expect(AuthorizedRank.w1.isCommissionedOfficer, isFalse);
});
});
group('gradeLevel', () {
test('returns correct numeric grade level', () {
expect(AuthorizedRank.e1.gradeLevel, equals(1));
expect(AuthorizedRank.e4.gradeLevel, equals(4));
expect(AuthorizedRank.e9.gradeLevel, equals(9));
expect(AuthorizedRank.w1.gradeLevel, equals(1));
expect(AuthorizedRank.w5.gradeLevel, equals(5));
expect(AuthorizedRank.o1.gradeLevel, equals(1));
expect(AuthorizedRank.o10.gradeLevel, equals(10));
});
});
group('meetsMinimum', () {
test('E-6 meets minimum of E-5', () {
expect(AuthorizedRank.e6.meetsMinimum(AuthorizedRank.e5), isTrue);
});
test('E-6 meets minimum of E-6 (exact match)', () {
expect(AuthorizedRank.e6.meetsMinimum(AuthorizedRank.e6), isTrue);
});
test('E-4 does NOT meet minimum of E-5', () {
expect(AuthorizedRank.e4.meetsMinimum(AuthorizedRank.e5), isFalse);
});
test('W-3 meets minimum of W-2', () {
expect(AuthorizedRank.w3.meetsMinimum(AuthorizedRank.w2), isTrue);
});
test('O-3 meets minimum of O-2', () {
expect(AuthorizedRank.o3.meetsMinimum(AuthorizedRank.o2), isTrue);
});
test('enlisted does NOT meet minimum of officer (cross-category)', () {
expect(AuthorizedRank.e9.meetsMinimum(AuthorizedRank.o1), isFalse);
});
test('officer does NOT meet minimum of enlisted (cross-category)', () {
expect(AuthorizedRank.o1.meetsMinimum(AuthorizedRank.e1), isFalse);
});
test('warrant does NOT meet minimum of enlisted (cross-category)', () {
expect(AuthorizedRank.w1.meetsMinimum(AuthorizedRank.e1), isFalse);
});
});
group('rankTitle', () {
test('returns correct title for common ranks', () {
expect(AuthorizedRank.e1.rankTitle, equals('Private'));
expect(AuthorizedRank.e5.rankTitle, equals('Sergeant'));
expect(AuthorizedRank.e6.rankTitle, equals('Staff Sergeant'));
expect(AuthorizedRank.e7.rankTitle, equals('Sergeant First Class'));
expect(AuthorizedRank.o2.rankTitle, equals('First Lieutenant'));
expect(AuthorizedRank.o3.rankTitle, equals('Captain'));
expect(AuthorizedRank.w1.rankTitle, equals('Warrant Officer 1'));
});
});
});
}