mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-18 00:17:48 +01:00
Add tests for the getExercise method
This commit is contained in:
@@ -127,8 +127,11 @@ class ExerciseBase extends Equatable {
|
||||
/// but we can't make sure that no local installation hasn't deleted
|
||||
/// the entry in English.
|
||||
Exercise getExercise(String language) {
|
||||
// If the language is in the form en-US, take the language code only
|
||||
final languageCode = language.split('-')[0];
|
||||
|
||||
return exercises.firstWhere(
|
||||
(e) => e.languageObj.shortName == language,
|
||||
(e) => e.languageObj.shortName == languageCode,
|
||||
orElse: () => exercises.firstWhere(
|
||||
(e) => e.languageObj.shortName == LANGUAGE_SHORT_ENGLISH,
|
||||
orElse: () => exercises.first,
|
||||
|
||||
@@ -98,6 +98,9 @@ class ExercisesProvider with ChangeNotifier {
|
||||
List<Muscle> get muscles => [..._muscles];
|
||||
List<Equipment> get equipment => [..._equipment];
|
||||
List<Language> get languages => [..._languages];
|
||||
set languages(List<Language> languages) {
|
||||
_languages = languages;
|
||||
}
|
||||
|
||||
// Initialize filters for exercises search in exercises list
|
||||
void _initFilters() {
|
||||
@@ -323,20 +326,22 @@ class ExercisesProvider with ChangeNotifier {
|
||||
exercise.notes =
|
||||
exerciseData['notes'].map((e) => Comment.fromJson(e)).toList().cast<Comment>();
|
||||
exercise.baseId = baseData['id'];
|
||||
exercise.language = findLanguageById(exerciseData['language']);
|
||||
exercises.add(exercise);
|
||||
}
|
||||
|
||||
final exerciseBase = ExerciseBase(
|
||||
id: baseData['id'],
|
||||
uuid: baseData['uuid'],
|
||||
creationDate: null,
|
||||
//creationDate: toDate(baseData['creation_date']),
|
||||
musclesSecondary: musclesSecondary.cast<Muscle>(),
|
||||
muscles: musclesPrimary.cast<Muscle>(),
|
||||
equipment: equipment.cast<Equipment>(),
|
||||
category: category,
|
||||
images: images.cast<ExerciseImage>(),
|
||||
exercises: exercises);
|
||||
id: baseData['id'],
|
||||
uuid: baseData['uuid'],
|
||||
creationDate: null,
|
||||
//creationDate: toDate(baseData['creation_date']),
|
||||
musclesSecondary: musclesSecondary.cast<Muscle>(),
|
||||
muscles: musclesPrimary.cast<Muscle>(),
|
||||
equipment: equipment.cast<Equipment>(),
|
||||
category: category,
|
||||
images: images.cast<ExerciseImage>(),
|
||||
exercises: exercises,
|
||||
);
|
||||
|
||||
return exerciseBase;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import '../../test_data/exercises.dart';
|
||||
import '../fixtures/fixture_reader.dart';
|
||||
import '../measurements/measurement_provider_test.mocks.dart';
|
||||
|
||||
main() {
|
||||
void main() {
|
||||
late MockWgerBaseProvider mockBaseProvider;
|
||||
late ExercisesProvider provider;
|
||||
|
||||
@@ -28,6 +28,7 @@ main() {
|
||||
mockBaseProvider = MockWgerBaseProvider();
|
||||
provider = ExercisesProvider(mockBaseProvider);
|
||||
provider.exerciseBases = getTestExerciseBases();
|
||||
provider.languages = [tLanguage1, tLanguage2, tLanguage3];
|
||||
|
||||
// Mock base info response
|
||||
when(
|
||||
@@ -83,7 +84,14 @@ main() {
|
||||
'49a159e1-1e00-409a-81c9-b4d4489fbd67'
|
||||
]);
|
||||
|
||||
expect(base.exercises[0].name, '2 Handed Kettlebell Swing');
|
||||
final exercise1 = base.exercises[0];
|
||||
expect(exercise1.name, '2 Handed Kettlebell Swing');
|
||||
expect(exercise1.languageObj.shortName, 'en');
|
||||
expect(exercise1.notes[0].comment, "it's important to do the exercise correctly");
|
||||
expect(exercise1.notes[1].comment, 'put a lot of effort into this exercise');
|
||||
expect(exercise1.notes[2].comment, 'have fun');
|
||||
expect(exercise1.alias[0].alias, 'double handed kettlebell');
|
||||
expect(exercise1.alias[1].alias, 'Kettlebell russian style');
|
||||
expect(base.exercises[1].name, 'Kettlebell Con Dos Manos');
|
||||
expect(base.exercises[2].name, 'Zweihändiges Kettlebell');
|
||||
});
|
||||
|
||||
@@ -14,7 +14,7 @@ import '../../test_data/exercises.dart' as data;
|
||||
import '../fixtures/fixture_reader.dart';
|
||||
import '../measurements/measurement_provider_test.mocks.dart';
|
||||
|
||||
main() {
|
||||
void main() {
|
||||
late MockWgerBaseProvider mockBaseProvider;
|
||||
late ExercisesProvider provider;
|
||||
|
||||
|
||||
21
test/exercises/model_exercisebase_test.dart
Normal file
21
test/exercises/model_exercisebase_test.dart
Normal file
@@ -0,0 +1,21 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
import '../../test_data/exercises.dart';
|
||||
|
||||
void main() {
|
||||
group('Model tests', () {
|
||||
test('test getExercise', () async {
|
||||
// arrange and act
|
||||
final base = getTestExerciseBases()[0];
|
||||
|
||||
// assert
|
||||
expect(base.getExercise('en').id, 2);
|
||||
expect(base.getExercise('en-UK').id, 2);
|
||||
expect(base.getExercise('de').id, 1);
|
||||
expect(base.getExercise('de-AT').id, 1);
|
||||
expect(base.getExercise('fr').id, 3);
|
||||
expect(base.getExercise('fr-FR').id, 3);
|
||||
expect(base.getExercise('pt').id, 2); // English again
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -159,7 +159,7 @@
|
||||
}
|
||||
],
|
||||
"creation_date": "2022-03-14",
|
||||
"language": 4,
|
||||
"language": 3,
|
||||
"license": 2,
|
||||
"license_author": "tester McTestface"
|
||||
},
|
||||
|
||||
@@ -119,7 +119,7 @@ final tExercise4 = Exercise(
|
||||
uuid: 'a3e96c1d-b35f-4b0e-9cf4-ca37666cf521',
|
||||
creationDate: DateTime(2021, 4, 1),
|
||||
name: 'test exercise 4',
|
||||
description: 'The man in black fled across the desert, and the gunslinger followed',
|
||||
description: 'The story so far: in the beginning, the universe was created',
|
||||
baseId: tBase3.id,
|
||||
language: tLanguage1,
|
||||
);
|
||||
@@ -129,7 +129,7 @@ final tExercise5 = Exercise(
|
||||
uuid: '8c49a816-2247-4116-94bb-b5c0ce09c609',
|
||||
creationDate: DateTime(2021, 4, 1),
|
||||
name: 'test exercise 5',
|
||||
description: 'The man in black fled across the desert, and the gunslinger followed',
|
||||
description: 'I am an invisible man',
|
||||
baseId: tBase3.id,
|
||||
language: tLanguage2,
|
||||
);
|
||||
@@ -138,8 +138,8 @@ final tExercise6 = Exercise(
|
||||
id: 6,
|
||||
uuid: '259a637e-957f-4fe1-b61b-f56e3793ebcd',
|
||||
creationDate: DateTime(2021, 4, 1),
|
||||
name: 'test exercise 5',
|
||||
description: 'The man in black fled across the desert, and the gunslinger followed',
|
||||
name: 'test exercise 6',
|
||||
description: 'It was a bright cold day in April, and the clocks were striking thirteen',
|
||||
baseId: tBase3.id,
|
||||
language: tLanguage2,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user