공개페이지
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
import 'package:lanebow/models/public_event.dart';
|
||||
import 'package:lanebow/models/public_participant.dart';
|
||||
|
||||
void main() {
|
||||
group('PublicEvent.fromJson', () {
|
||||
test('parses minimal and coerces types', () {
|
||||
final e = PublicEvent.fromJson({
|
||||
'id': 10,
|
||||
'title': 'Open',
|
||||
'gameCount': '5',
|
||||
});
|
||||
expect(e.id, '10');
|
||||
expect(e.title, 'Open');
|
||||
expect(e.gameCount, 5);
|
||||
expect(e.description, isNull);
|
||||
});
|
||||
|
||||
test('parses dates and optionals', () {
|
||||
final e = PublicEvent.fromJson({
|
||||
'id': 'A1',
|
||||
'title': 'E',
|
||||
'startDate': '2024-01-01T10:00:00Z',
|
||||
'registrationDeadline': '2024-01-02T10:00:00Z',
|
||||
'participantFee': '10000',
|
||||
'maxParticipants': '30',
|
||||
});
|
||||
expect(e.id, 'A1');
|
||||
expect(e.startDate, isNotNull);
|
||||
expect(e.registrationDeadline, isNotNull);
|
||||
expect(e.participantFee, 10000);
|
||||
expect(e.maxParticipants, 30);
|
||||
});
|
||||
});
|
||||
|
||||
group('PublicParticipant.fromJson', () {
|
||||
test('handles numeric scores and fills length to gameCount', () {
|
||||
final p = PublicParticipant.fromJson({
|
||||
'participantId': 7,
|
||||
'name': 'Kim',
|
||||
'scores': [120, 130],
|
||||
'handicap': 10,
|
||||
}, gameCount: 3);
|
||||
expect(p.participantId, '7');
|
||||
expect(p.name, 'Kim');
|
||||
expect(p.rawScores, [120, 130, null]);
|
||||
expect(p.handicaps, [0, 0, 0]);
|
||||
});
|
||||
|
||||
test('handles object scores with handicap', () {
|
||||
final p = PublicParticipant.fromJson({
|
||||
'participantId': '9',
|
||||
'name': 'Lee',
|
||||
'scores': [
|
||||
{'score': 200, 'handicap': 0},
|
||||
{'score': '150', 'handicap': '5'},
|
||||
null
|
||||
],
|
||||
}, gameCount: 3);
|
||||
expect(p.rawScores, [200, 150, null]);
|
||||
expect(p.handicaps, [0, 5, 0]);
|
||||
});
|
||||
|
||||
test('coerces fields and defaults', () {
|
||||
final p = PublicParticipant.fromJson({
|
||||
'id': '11',
|
||||
'name': null,
|
||||
'average': '192.5',
|
||||
'memberType': 'guest',
|
||||
'status': 'pending',
|
||||
'paymentStatus': 'unpaid',
|
||||
'scores': [],
|
||||
}, gameCount: 2);
|
||||
expect(p.participantId, '11');
|
||||
expect(p.name, '이름없음');
|
||||
expect(p.average, 192.5);
|
||||
expect(p.isGuest, false); // isGuest는 명시 true일 때만 처리
|
||||
expect(p.rawScores, [null, null]);
|
||||
expect(p.handicaps, [0, 0]);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user