173 lines
5.6 KiB
Dart
173 lines
5.6 KiB
Dart
import 'package:aitrainer_app/bloc/exercise_plan/exercise_plan_bloc.dart';
|
|
import 'package:aitrainer_app/model/cache.dart';
|
|
import 'package:aitrainer_app/model/exercise_plan.dart';
|
|
import 'package:aitrainer_app/model/exercise_plan_detail.dart';
|
|
import 'package:aitrainer_app/model/model_change.dart';
|
|
import 'package:aitrainer_app/repository/workout_tree_repository.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import 'mocks.dart';
|
|
|
|
main() {
|
|
late SimExercisePlanRepository _exercisePlanRepository;
|
|
late ExercisePlanBloc bloc;
|
|
|
|
Future<void> setUpPlan() async {
|
|
final String planName2 = "Test Plan2";
|
|
ExercisePlan plan2 = ExercisePlan(planName2, 101);
|
|
_exercisePlanRepository.setCustomerId(101);
|
|
_exercisePlanRepository.setExercisePlan(plan2);
|
|
|
|
ExercisePlanDetail detail3 = ExercisePlanDetail(3);
|
|
detail3.repeats = 23;
|
|
detail3.weightEquation = "60";
|
|
detail3.serie = 4;
|
|
|
|
_exercisePlanRepository.setActualPlanDetail(detail3);
|
|
_exercisePlanRepository.addDetailToPlan();
|
|
|
|
ExercisePlanDetail detail4 = ExercisePlanDetail(4);
|
|
detail4.repeats = 12;
|
|
detail4.weightEquation = "95";
|
|
detail4.serie = 3;
|
|
|
|
_exercisePlanRepository.setActualPlanDetail(detail4);
|
|
_exercisePlanRepository.addDetailToPlan();
|
|
await _exercisePlanRepository.saveExercisePlan();
|
|
}
|
|
|
|
setUp(() async {
|
|
_exercisePlanRepository = SimExercisePlanRepository();
|
|
WorkoutTreeRepository menuTreeRepository = WorkoutTreeRepository();
|
|
bloc = ExercisePlanBloc(menuTreeRepository: menuTreeRepository);
|
|
bloc.setExercisePlanRepository(_exercisePlanRepository);
|
|
await setUpPlan();
|
|
});
|
|
|
|
/*
|
|
group('New Plan', () {
|
|
test('Get Data', () async {
|
|
});
|
|
|
|
test('Add bloc', () async {
|
|
|
|
});
|
|
test('Update bloc', () async {
|
|
|
|
});
|
|
test('Delete bloc', () async {
|
|
|
|
});
|
|
|
|
});*/
|
|
|
|
group('Existing Plan', () {
|
|
test('Get Data', () async {
|
|
bloc.customerId = 101;
|
|
bloc.add(ExercisePlanLoad());
|
|
|
|
final expectedResponse = [ExercisePlanLoading(), ExercisePlanReady()];
|
|
|
|
expectLater(
|
|
bloc,
|
|
emitsInOrder(expectedResponse),
|
|
).then((_) {
|
|
expect(bloc.exercisePlanRepository.newPlan, false);
|
|
expect(bloc.exercisePlanRepository.exercisePlan!.name, "Test Plan2");
|
|
expect(bloc.exercisePlanRepository.exercisePlanDetails[4]!.weightEquation, "95");
|
|
expect(Cache().getMyExercisePlan()!.name, "Test Plan2");
|
|
expect(Cache().getMyExercisePlanDetails()[4]!.weightEquation, "95");
|
|
});
|
|
});
|
|
|
|
test('Add bloc', () async {
|
|
bloc.customerId = 101;
|
|
|
|
bloc.exercisePlanRepository.getLastExercisePlan();
|
|
bloc.exercisePlanRepository.getExercisePlanDetails();
|
|
|
|
ExercisePlanDetail detail4 = ExercisePlanDetail(5);
|
|
detail4.repeats = 20;
|
|
detail4.weightEquation = "55";
|
|
detail4.serie = 3;
|
|
|
|
bloc.add(ExercisePlanAddExercise(exercisePlanDetail: detail4));
|
|
|
|
final expectedResponse2 = [ExercisePlanLoading(), ExercisePlanReady()];
|
|
|
|
expectLater(
|
|
bloc,
|
|
emitsInOrder(expectedResponse2),
|
|
).then((_) {
|
|
expect(bloc.exercisePlanRepository.newPlan, false);
|
|
expect(bloc.exercisePlanRepository.exercisePlan!.customerId, 101);
|
|
expect(bloc.exercisePlanRepository.exercisePlanDetails.length, 3);
|
|
expect(bloc.exercisePlanRepository.exercisePlanDetails[5]!.repeats, 20);
|
|
expect(bloc.exercisePlanRepository.exercisePlanDetails[5]!.change, ModelChange.add);
|
|
expect(Cache().getMyExercisePlan()!.name, "Test Plan2");
|
|
expect(Cache().getMyExercisePlanDetails()[5]!.weightEquation, "55");
|
|
expect(Cache().getMyExercisePlanDetails()[5]!.repeats, 20);
|
|
});
|
|
});
|
|
test('Update bloc', () async {
|
|
bloc.customerId = 101;
|
|
|
|
bloc.exercisePlanRepository.getLastExercisePlan();
|
|
bloc.exercisePlanRepository.getExercisePlanDetails();
|
|
bloc.exercisePlanRepository.exercisePlanDetails[3]!.repeats = 25;
|
|
|
|
bloc.add(ExercisePlanAddExercise(exercisePlanDetail: bloc.exercisePlanRepository.exercisePlanDetails[3]!));
|
|
|
|
final expectedResponse2 = [ExercisePlanLoading(), ExercisePlanReady()];
|
|
|
|
expectLater(
|
|
bloc,
|
|
emitsInOrder(expectedResponse2),
|
|
).then((_) {
|
|
expect(bloc.exercisePlanRepository.newPlan, false);
|
|
expect(bloc.exercisePlanRepository.exercisePlanDetails[3]!.repeats, 25);
|
|
expect(Cache().getMyExercisePlanDetails()[3]!.repeats, 25);
|
|
});
|
|
});
|
|
test('Delete bloc', () async {
|
|
bloc.customerId = 101;
|
|
bloc.exercisePlanRepository.getLastExercisePlan();
|
|
bloc.exercisePlanRepository.getExercisePlanDetails();
|
|
bloc.add(ExercisePlanRemoveExercise(exercisePlanDetail: bloc.exercisePlanRepository.exercisePlanDetails[3]!));
|
|
|
|
final expectedResponse2 = [ExercisePlanLoading(), ExercisePlanReady()];
|
|
|
|
expectLater(
|
|
bloc,
|
|
emitsInOrder(expectedResponse2),
|
|
).then((_) {
|
|
expect(bloc.exercisePlanRepository.newPlan, false);
|
|
expect(bloc.exercisePlanRepository.exercisePlanDetails.length, 2);
|
|
expect(bloc.exercisePlanRepository.exercisePlanDetails[3], isNull);
|
|
expect(Cache().getMyExercisePlanDetails()[3], isNull);
|
|
});
|
|
});
|
|
|
|
test('Test Trainee', () async {
|
|
/*bloc.customerId = 102;
|
|
bloc.exercisePlanRepository.customerId = 102;
|
|
|
|
bloc.add(ExercisePlanLoad());
|
|
|
|
final expectedResponse = [
|
|
ExercisePlanLoading(),
|
|
ExercisePlanReady()
|
|
];
|
|
|
|
|
|
expectLater(
|
|
bloc,
|
|
emitsInOrder(expectedResponse),
|
|
).then((_) {
|
|
expect(bloc.exercisePlanRepository.newPlan, true);
|
|
expect(bloc.exercisePlanRepository.exercisePlanDetails.length, 0);
|
|
});*/
|
|
});
|
|
});
|
|
}
|