v1.27 membership improvement
This commit is contained in:
parent
652104b403
commit
16603f00bd
4
.gitignore
vendored
4
.gitignore
vendored
@ -28,5 +28,5 @@ migrate_working_dir/
|
||||
.packages
|
||||
build/
|
||||
.dart_tool/
|
||||
/.flutter-plugins
|
||||
/.flutter-plugins-dependencies
|
||||
.flutter-plugins
|
||||
.flutter-plugins-dependencies
|
@ -1,35 +1,50 @@
|
||||
enum DurationType { free, subscription, lifetime, limited }
|
||||
|
||||
extension DurationTypeExt on DurationType {
|
||||
String enumToString() => toString().split(".").last;
|
||||
DurationType getType(String type) => DurationType.values.firstWhere((e) => e.enumToString() == type);
|
||||
}
|
||||
|
||||
enum DurationUnit { day, week, month, year }
|
||||
|
||||
extension DurationUnitExt on DurationUnit {
|
||||
String enumToString() => toString().split(".").last;
|
||||
DurationUnit getType(String type) => DurationUnit.values.firstWhere((e) => e.enumToString() == type);
|
||||
}
|
||||
|
||||
class Membership {
|
||||
late int membershipId;
|
||||
late String name;
|
||||
String? description;
|
||||
late int duration;
|
||||
late String durationType;
|
||||
late String durationUnit;
|
||||
late DurationType durationType;
|
||||
late DurationUnit durationUnit;
|
||||
int? trainingPlanId;
|
||||
String? trainingPlanDayIds;
|
||||
|
||||
Membership();
|
||||
|
||||
Membership.fromJson(Map json) {
|
||||
membershipId = json['membershipId'];
|
||||
name = json['name'];
|
||||
description = json['description'] ?? "";
|
||||
duration = json['duration'];
|
||||
durationUnit = json['durationUnit'];
|
||||
durationType = json['durationType'];
|
||||
durationType = DurationType.free.getType(json['durationType']);
|
||||
durationUnit = DurationUnit.day.getType(json['durationUnit']);
|
||||
trainingPlanId = json['trainingPlanId'] ?? 0;
|
||||
trainingPlanDayIds = json['trainingPlanDayIds'] ?? "";
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
"membershipId": membershipId,
|
||||
"name": name,
|
||||
"description": description,
|
||||
"duration": duration,
|
||||
"durationUnit": durationUnit,
|
||||
"durationType": durationType,
|
||||
"trainingPlanId": trainingPlanId,
|
||||
"trainingPlanDayIds": trainingPlanDayIds,
|
||||
};
|
||||
Map<String, dynamic> toJson() => {
|
||||
"membershipId": membershipId,
|
||||
"name": name,
|
||||
"description": description,
|
||||
"duration": duration,
|
||||
'durationType': durationType.enumToString(),
|
||||
'durationUnit': durationUnit.enumToString(),
|
||||
"trainingPlanId": trainingPlanId,
|
||||
"trainingPlanDayIds": trainingPlanDayIds,
|
||||
};
|
||||
|
||||
@override
|
||||
String toString() => toJson().toString();
|
||||
|
@ -1,6 +1,6 @@
|
||||
name: workouttest_util
|
||||
description: Workout Test app and web functions.
|
||||
version: 1.0.26
|
||||
version: 1.0.27
|
||||
|
||||
environment:
|
||||
sdk: ">=2.18.6 <3.0.0"
|
||||
|
50
test/model/membership_test.dart
Normal file
50
test/model/membership_test.dart
Normal file
@ -0,0 +1,50 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:workouttest_util/model/membership.dart';
|
||||
|
||||
void main() {
|
||||
group('Membership', () {
|
||||
test('fromJson() correctly sets properties', () {
|
||||
final json = {
|
||||
'membershipId': 1,
|
||||
'name': 'Basic Membership',
|
||||
'description': 'This is a basic membership',
|
||||
'duration': 30,
|
||||
'durationType': 'subscription',
|
||||
'durationUnit': 'day',
|
||||
'trainingPlanId': null,
|
||||
'trainingPlanDayIds': null,
|
||||
};
|
||||
final membership = Membership.fromJson(json);
|
||||
expect(membership.membershipId, 1);
|
||||
expect(membership.name, 'Basic Membership');
|
||||
expect(membership.description, 'This is a basic membership');
|
||||
expect(membership.duration, 30);
|
||||
expect(membership.durationType, DurationType.subscription);
|
||||
expect(membership.durationUnit, DurationUnit.day);
|
||||
expect(membership.trainingPlanId, 0);
|
||||
expect(membership.trainingPlanDayIds, '');
|
||||
});
|
||||
|
||||
test('toJson() correctly returns a Map', () {
|
||||
final membership = Membership()
|
||||
..membershipId = 1
|
||||
..name = 'Basic Membership'
|
||||
..description = 'This is a basic membership'
|
||||
..duration = 30
|
||||
..durationType = DurationType.subscription
|
||||
..durationUnit = DurationUnit.day
|
||||
..trainingPlanId = null
|
||||
..trainingPlanDayIds = null;
|
||||
|
||||
final json = membership.toJson();
|
||||
expect(json['membershipId'], 1);
|
||||
expect(json['name'], 'Basic Membership');
|
||||
expect(json['description'], 'This is a basic membership');
|
||||
expect(json['duration'], 30);
|
||||
expect(json['durationType'], 'subscription');
|
||||
expect(json['durationUnit'], 'day');
|
||||
expect(json['trainingPlanId'], null);
|
||||
expect(json['trainingPlanDayIds'], null);
|
||||
});
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user