From d78fa35de833b25ceec05216a4a5b32022b2bb24 Mon Sep 17 00:00:00 2001 From: Roland Geider Date: Wed, 2 Feb 2022 19:12:01 +0100 Subject: [PATCH] Filter by exercise bases in overview --- lib/models/exercises/base.dart | 23 ++- lib/providers/exercises.dart | 35 ++-- lib/screens/exercises_screen.dart | 22 +-- lib/widgets/exercises/list_tile.dart | 5 +- test/exercises/exercise_provider_test.dart | 122 ++++++------- .../exercises_detail_widget_test.dart | 2 +- test/gallery/gallery_screen_test.mocks.dart | 5 +- test/gym_mode_screen_test.mocks.dart | 88 ++++----- ...surement_categories_screen_test.mocks.dart | 5 +- .../measurement_provider_test.mocks.dart | 5 +- .../nutritional_plan_form_test.mocks.dart | 5 +- test/other/base_provider_test.mocks.dart | 5 +- test/workout/gym_mode_screen_test.dart | 10 +- test/workout/workout_form_test.mocks.dart | 5 +- test/workout/workout_plan_model_test.dart | 6 +- test/workout/workout_set_form_test.mocks.dart | 170 ++++++++++-------- test_data/exercises.dart | 147 ++++++++------- test_data/workouts.dart | 10 +- 18 files changed, 351 insertions(+), 319 deletions(-) diff --git a/lib/models/exercises/base.dart b/lib/models/exercises/base.dart index aaf1d08e..92f04374 100644 --- a/lib/models/exercises/base.dart +++ b/lib/models/exercises/base.dart @@ -19,7 +19,6 @@ import 'package:equatable/equatable.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:wger/models/exercises/category.dart'; -import 'package:wger/models/exercises/comment.dart'; import 'package:wger/models/exercises/equipment.dart'; import 'package:wger/models/exercises/exercise.dart'; import 'package:wger/models/exercises/image.dart'; @@ -84,7 +83,6 @@ class ExerciseBase extends Equatable { List? musclesSecondary, List? equipment, List? images, - List? tips, ExerciseCategory? category}) { this.images = images ?? []; this.equipment = equipment ?? []; @@ -92,10 +90,27 @@ class ExerciseBase extends Equatable { this.muscles = muscles ?? []; if (category != null) { this.category = category; - this.categoryId = category.id; + categoryId = category.id; } } + /// Returns exercises for the given language + /// + /// If no translation is found, English will be returned + /// + /// TODO: don't hard code language code + /// TODO: don't just return the first exercise (this won't be necessary anymore + /// when we cleanup the database) + Exercise getExercises(String language) { + return exercises.firstWhere( + (e) => e.language.shortName == language, + orElse: () => exercises.firstWhere( + (e) => e.language.shortName == 'en', + orElse: () => exercises.first, + ), + ); + } + ExerciseImage? get getMainImage { try { return images.firstWhere((image) => image.isMain); @@ -105,7 +120,7 @@ class ExerciseBase extends Equatable { } set setCategory(ExerciseCategory category) { - this.categoryId = category.id; + categoryId = category.id; this.category = category; } diff --git a/lib/providers/exercises.dart b/lib/providers/exercises.dart index d19d83d6..b03597cb 100644 --- a/lib/providers/exercises.dart +++ b/lib/providers/exercises.dart @@ -58,12 +58,15 @@ class ExercisesProvider with ChangeNotifier { static const _languageUrlPath = 'language'; List _exerciseBases = []; + set exerciseBases(List exercisesBases) { + _exerciseBases = exercisesBases; + } + List _categories = []; List _muscles = []; List _equipment = []; List _languages = []; List _variations = []; - List _exercises = []; set exercises(List exercises) { _exercises = exercises; @@ -76,20 +79,17 @@ class ExercisesProvider with ChangeNotifier { await findByFilters(); } - List? _filteredExercises = []; - List? get filteredExercises => _filteredExercises; - set filteredExercises(List? newFilteredExercises) { - _filteredExercises = newFilteredExercises; + List _filteredExerciseBases = []; + List get filteredExerciseBases => _filteredExerciseBases; + set filteredExerciseBases(List newFilteredExercises) { + _filteredExerciseBases = newFilteredExercises; notifyListeners(); } - List? getFilteredExercisesByLanguage(int languageId) { - return _filteredExercises!.where((e) => e.languageId == languageId).toList(); - } - ExercisesProvider(this.baseProvider); List get items => [..._exercises]; + List get bases => [..._exerciseBases]; List get categories => [..._categories]; List get muscles => [..._muscles]; List get equipment => [..._equipment]; @@ -126,23 +126,26 @@ class ExercisesProvider with ChangeNotifier { Future findByFilters() async { // Filters not initialized if (filters == null) { - filteredExercises = []; + filteredExerciseBases = []; return; } // Filters are initialized and nothing is marked if (filters!.isNothingMarked && filters!.searchTerm.length <= 1) { - filteredExercises = items; + filteredExerciseBases = _exerciseBases; return; } - filteredExercises = null; + filteredExerciseBases = []; - final filteredItems = - filters!.searchTerm.length <= 1 ? items : await searchExercise(filters!.searchTerm); + List filteredItems = _exerciseBases; + if (filters!.searchTerm.length > 1) { + final exercises = await searchExercise(filters!.searchTerm); + filteredItems = exercises.map((e) => e.base).toList(); + } // Filter by exercise category and equipment (REPLACE WITH HTTP REQUEST) - filteredExercises = filteredItems.where((exercise) { + filteredExerciseBases = filteredItems.where((exercise) { final bool isInAnyCategory = filters!.exerciseCategories.selected.contains(exercise.category); final bool doesContainAnyEquipment = filters!.equipment.selected.any( @@ -415,7 +418,7 @@ class ExercisesProvider with ChangeNotifier { /// to invalidate it as a result Future checkExerciseCacheVersion() async { final prefs = await SharedPreferences.getInstance(); - if (prefs.containsKey(PREFS_EXERCISE_CACHE_VERSION)) { + if (false && prefs.containsKey(PREFS_EXERCISE_CACHE_VERSION)) { final cacheVersion = prefs.getInt(PREFS_EXERCISE_CACHE_VERSION); if (cacheVersion! != CACHE_VERSION) { prefs.remove(PREFS_EXERCISES); diff --git a/lib/screens/exercises_screen.dart b/lib/screens/exercises_screen.dart index 2a17f67b..199e5e32 100644 --- a/lib/screens/exercises_screen.dart +++ b/lib/screens/exercises_screen.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:provider/provider.dart'; -import 'package:wger/models/exercises/exercise.dart'; +import 'package:wger/models/exercises/base.dart'; import 'package:wger/providers/exercises.dart'; import 'package:wger/widgets/core/app_bar.dart'; import 'package:wger/widgets/exercises/filter_row.dart'; @@ -21,7 +21,7 @@ class _ExercisesScreenState extends State { @override Widget build(BuildContext context) { //final size = MediaQuery.of(context).size; - final exercisesList = Provider.of(context).filteredExercises; + final exercisesList = Provider.of(context).filteredExerciseBases; return Scaffold( appBar: WgerAppBar(AppLocalizations.of(context).exercises), @@ -37,7 +37,7 @@ class _ExercisesScreenState extends State { child: CircularProgressIndicator(), ), ) - : _ExercisesList(exercisesList: exercisesList), + : _ExercisesList(exerciseBaseList: exercisesList), ), ], ), @@ -54,10 +54,10 @@ class _ExercisesScreenState extends State { class _ExercisesList extends StatelessWidget { const _ExercisesList({ Key? key, - required this.exercisesList, + required this.exerciseBaseList, }) : super(key: key); - final List exercisesList; + final List exerciseBaseList; @override Widget build(BuildContext context) { @@ -68,17 +68,19 @@ class _ExercisesList extends StatelessWidget { thickness: 1, ); }, - itemCount: exercisesList.length, + itemCount: exerciseBaseList.length, itemBuilder: (context, index) { - final exercise = exercisesList[index]; - return ExerciseListTile(exercise: exercise); + final exercise = exerciseBaseList[index]; + return ExerciseListTile( + exercise: exercise.getExercises(Localizations.localeOf(context).languageCode), + ); + /* return Container( height: size.height * 0.175, child: ExerciseListTile(exercise: exercise), ); - - */ + */ }, ); } diff --git a/lib/widgets/exercises/list_tile.dart b/lib/widgets/exercises/list_tile.dart index 274a6883..2d0812f3 100644 --- a/lib/widgets/exercises/list_tile.dart +++ b/lib/widgets/exercises/list_tile.dart @@ -49,7 +49,8 @@ class ExerciseListTile extends StatelessWidget { ), ), ), - trailing: Text(exercise.language.shortName), + trailing: + Text('${exercise.language.shortName} base: ${exercise.baseId}, exId: ${exercise.id}'), title: Text( exercise.name, //style: theme.textTheme.headline6, @@ -57,7 +58,7 @@ class ExerciseListTile extends StatelessWidget { maxLines: 2, ), subtitle: Text( - exercise.category.name, + '${exercise.category.name} / ${exercise.equipment.map((e) => e.name).toList().join(', ')}', ), onTap: () { Navigator.pushNamed(context, ExerciseDetailScreen.routeName, arguments: exercise); diff --git a/test/exercises/exercise_provider_test.dart b/test/exercises/exercise_provider_test.dart index 92c5dd72..ce62b015 100644 --- a/test/exercises/exercise_provider_test.dart +++ b/test/exercises/exercise_provider_test.dart @@ -1,71 +1,68 @@ import 'dart:convert'; import 'package:flutter_test/flutter_test.dart'; -import 'package:http/http.dart'; import 'package:mockito/mockito.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:wger/exceptions/no_such_entry_exception.dart'; import 'package:wger/models/exercises/category.dart'; import 'package:wger/models/exercises/equipment.dart'; -import 'package:wger/models/exercises/exercise.dart'; import 'package:wger/models/exercises/language.dart'; import 'package:wger/models/exercises/muscle.dart'; import 'package:wger/providers/exercises.dart'; +import '../../test_data/exercises.dart' as data; import '../fixtures/fixture_reader.dart'; import '../measurements/measurement_provider_test.mocks.dart'; -import '../../test_data/exercises.dart' as data; main() { late MockWgerBaseProvider mockBaseProvider; late ExercisesProvider provider; - String categoryUrl = 'exercisecategory'; - String muscleUrl = 'muscle'; - String equipmentUrl = 'equipment'; - String languageUrl = 'language'; - String exerciseBaseUrl = 'exercise-base'; - String searchExerciseUrl = 'exercise/search'; + const String categoryUrl = 'exercisecategory'; + const String muscleUrl = 'muscle'; + const String equipmentUrl = 'equipment'; + const String languageUrl = 'language'; + const String searchExerciseUrl = 'exercise/search'; - Uri tCategoryEntriesUri = Uri( + final Uri tCategoryEntriesUri = Uri( scheme: 'http', host: 'localhost', - path: 'api/v2/' + categoryUrl + '/', + path: 'api/v2/$categoryUrl/', ); - Uri tMuscleEntriesUri = Uri( + final Uri tMuscleEntriesUri = Uri( scheme: 'http', host: 'localhost', - path: 'api/v2/' + muscleUrl + '/', + path: 'api/v2/$muscleUrl/', ); - Uri tEquipmentEntriesUri = Uri( + final Uri tEquipmentEntriesUri = Uri( scheme: 'http', host: 'localhost', - path: 'api/v2/' + equipmentUrl + '/', + path: 'api/v2/$equipmentUrl/', ); - Uri tLanguageEntriesUri = Uri( + final Uri tLanguageEntriesUri = Uri( scheme: 'http', host: 'localhost', - path: 'api/v2/' + languageUrl + '/', + path: 'api/v2/$languageUrl/', ); - Uri tSearchByNameUri = Uri( + final Uri tSearchByNameUri = Uri( scheme: 'http', host: 'localhost', path: 'api/v2/$searchExerciseUrl/', ); - final category1 = ExerciseCategory(id: 1, name: 'Arms'); - final muscle1 = Muscle(id: 1, name: 'Biceps brachii', isFront: true); - final equipment1 = Equipment(id: 1, name: 'Barbell'); - final language1 = Language(id: 1, shortName: 'de', fullName: 'Deutsch'); + const category1 = ExerciseCategory(id: 1, name: 'Arms'); + const muscle1 = Muscle(id: 1, name: 'Biceps brachii', isFront: true); + const equipment1 = Equipment(id: 1, name: 'Barbell'); + const language1 = Language(id: 1, shortName: 'de', fullName: 'Deutsch'); - Map tCategoryMap = jsonDecode(fixture('exercise_category_entries.json')); - Map tMuscleMap = jsonDecode(fixture('exercise_muscles_entries.json')); - Map tEquipmentMap = jsonDecode(fixture('exercise_equipment_entries.json')); - Map tLanguageMap = jsonDecode(fixture('exercise_language_entries.json')); + final Map tCategoryMap = jsonDecode(fixture('exercise_category_entries.json')); + final Map tMuscleMap = jsonDecode(fixture('exercise_muscles_entries.json')); + final Map tEquipmentMap = jsonDecode(fixture('exercise_equipment_entries.json')); + final Map tLanguageMap = jsonDecode(fixture('exercise_language_entries.json')); setUp(() { mockBaseProvider = MockWgerBaseProvider(); @@ -171,7 +168,7 @@ main() { // assert verifyNever(provider.baseProvider.fetch(tSearchByNameUri)); - expect(provider.filteredExercises, isEmpty); + expect(provider.filteredExerciseBases, isEmpty); }); group('Filters are not null', () { @@ -184,28 +181,30 @@ main() { equipment: FilterCategory(title: 'Equipment', items: {}), ); - provider.exercises = data.getExercise(); + provider.exercises = data.getTestExercises(); + provider.exerciseBases = data.getTestExerciseBases(); }); test('Nothing is selected with no search term', () async { // arrange - Filters currentFilters = filters; + final Filters currentFilters = filters; // act await provider.setFilters(currentFilters); // assert verifyNever(provider.baseProvider.fetch(tSearchByNameUri)); + expect( - provider.filteredExercises, - data.getExercise(), + provider.filteredExerciseBases, + data.getTestExerciseBases(), ); }); test('A muscle is selected with no search term. Should find results', () async { // arrange - Filters tFilters = filters.copyWith( - exerciseCategories: filters.exerciseCategories.copyWith(items: {category1: true}), + final Filters tFilters = filters.copyWith( + exerciseCategories: filters.exerciseCategories.copyWith(items: {data.tCategory1: true}), ); // act @@ -213,13 +212,13 @@ main() { // assert verifyNever(provider.baseProvider.fetch(tSearchByNameUri)); - expect(provider.filteredExercises, [data.getExercise()[0]]); + expect(provider.filteredExerciseBases, [data.getTestExercises()[0].base]); }); test('A muscle is selected with no search term. Should not find results', () async { - // arragne + // arrange Filters tFilters = filters.copyWith( - exerciseCategories: filters.exerciseCategories.copyWith(items: {data.category4: true}), + exerciseCategories: filters.exerciseCategories.copyWith(items: {data.tCategory4: true}), ); // act @@ -227,13 +226,13 @@ main() { // assert verifyNever(provider.baseProvider.fetch(tSearchByNameUri)); - expect(provider.filteredExercises, isEmpty); + expect(provider.filteredExerciseBases, isEmpty); }); test('An equipment is selected with no search term. Should find results', () async { - // arragne - Filters tFilters = filters.copyWith( - equipment: filters.equipment.copyWith(items: {data.equipment1: true}), + // arrange + final Filters tFilters = filters.copyWith( + equipment: filters.equipment.copyWith(items: {data.tEquipment1: true}), ); // act @@ -241,13 +240,13 @@ main() { // assert verifyNever(provider.baseProvider.fetch(tSearchByNameUri)); - expect(provider.filteredExercises, [data.getExercise()[0]]); + expect(provider.filteredExerciseBases, [data.getTestExerciseBases()[0]]); }); test('An equipment is selected with no search term. Should not find results', () async { - // arragne - Filters tFilters = filters.copyWith( - equipment: filters.equipment.copyWith(items: {data.equipment3: true}), + // arrange + final Filters tFilters = filters.copyWith( + equipment: filters.equipment.copyWith(items: {data.tEquipment3: true}), ); // act @@ -255,14 +254,14 @@ main() { // assert verifyNever(provider.baseProvider.fetch(tSearchByNameUri)); - expect(provider.filteredExercises, isEmpty); + expect(provider.filteredExerciseBases, isEmpty); }); test('A muscle and equipment is selected and there is a match', () async { // arrange - Filters tFilters = filters.copyWith( - exerciseCategories: filters.exerciseCategories.copyWith(items: {data.category2: true}), - equipment: filters.equipment.copyWith(items: {data.equipment2: true}), + final Filters tFilters = filters.copyWith( + exerciseCategories: filters.exerciseCategories.copyWith(items: {data.tCategory2: true}), + equipment: filters.equipment.copyWith(items: {data.tEquipment2: true}), ); // act @@ -270,13 +269,13 @@ main() { // assert verifyNever(provider.baseProvider.fetch(tSearchByNameUri)); - expect(provider.filteredExercises, [data.getExercise()[1]]); + expect(provider.filteredExerciseBases, [data.getTestExerciseBases()[1]]); }); test('A muscle and equipment is selected but no match', () async { // arrange - Filters tFilters = filters.copyWith( - exerciseCategories: filters.exerciseCategories.copyWith(items: {data.category2: true}), + final Filters tFilters = filters.copyWith( + exerciseCategories: filters.exerciseCategories.copyWith(items: {data.tCategory2: true}), equipment: filters.equipment.copyWith(items: {equipment1: true}), ); @@ -285,14 +284,14 @@ main() { // assert verifyNever(provider.baseProvider.fetch(tSearchByNameUri)); - expect(provider.filteredExercises, isEmpty); + expect(provider.filteredExerciseBases, isEmpty); }); group('Search term', () { late Uri tSearchByNameUri; setUp(() { - String tSearchTerm = 'press'; - String tSearchLanguage = 'en'; + final String tSearchTerm = 'press'; + final String tSearchLanguage = 'en'; Map query = {'term': tSearchTerm, 'language': tSearchLanguage}; tSearchByNameUri = Uri( scheme: 'http', @@ -300,7 +299,7 @@ main() { path: 'api/v2/$searchExerciseUrl/', queryParameters: query, ); - Map tSearchResponse = + final Map tSearchResponse = jsonDecode(fixture('exercise_search_entries.json')); // Mock exercise search @@ -315,20 +314,23 @@ main() { test('Should find results from search term', () async { // arrange - Filters tFilters = filters.copyWith(searchTerm: 'press'); + final Filters tFilters = filters.copyWith(searchTerm: 'press'); // act await provider.setFilters(tFilters); // assert verify(provider.baseProvider.fetch(tSearchByNameUri)).called(1); - expect(provider.filteredExercises, [data.getExercise()[0], data.getExercise()[1]]); + expect( + provider.filteredExerciseBases, + [data.getTestExerciseBases()[0], data.getTestExerciseBases()[1]], + ); }); test('Should find items from selection but should filter them by search term', () async { // arrange - Filters tFilters = filters.copyWith( + final Filters tFilters = filters.copyWith( searchTerm: 'press', - exerciseCategories: filters.exerciseCategories.copyWith(items: {data.category3: true}), + exerciseCategories: filters.exerciseCategories.copyWith(items: {data.tCategory3: true}), ); // act @@ -336,7 +338,7 @@ main() { // assert verify(provider.baseProvider.fetch(tSearchByNameUri)).called(1); - expect(provider.filteredExercises, isEmpty); + expect(provider.filteredExerciseBases, isEmpty); }); }); }); diff --git a/test/exercises/exercises_detail_widget_test.dart b/test/exercises/exercises_detail_widget_test.dart index be567362..773618b6 100644 --- a/test/exercises/exercises_detail_widget_test.dart +++ b/test/exercises/exercises_detail_widget_test.dart @@ -38,7 +38,7 @@ void main() { supportedLocales: AppLocalizations.supportedLocales, navigatorKey: GlobalKey(), home: Scaffold( - body: ExerciseDetail(getExercise()[0]), + body: ExerciseDetail(getTestExercises()[0]), ), ), ); diff --git a/test/gallery/gallery_screen_test.mocks.dart b/test/gallery/gallery_screen_test.mocks.dart index 775851ff..33c31809 100644 --- a/test/gallery/gallery_screen_test.mocks.dart +++ b/test/gallery/gallery_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.0.15 from annotations +// Mocks generated by Mockito 5.0.17 from annotations // in wger/test/gallery/gallery_screen_test.dart. // Do not manually edit this file. @@ -19,6 +19,7 @@ import 'package:wger/providers/gallery.dart' as _i4; // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors // ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types class _FakeAuthProvider_0 extends _i1.Fake implements _i2.AuthProvider {} @@ -115,8 +116,6 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { returnValue: Future<_i3.Response>.value(_FakeResponse_3())) as _i6.Future<_i3.Response>); @override - String toString() => super.toString(); - @override void addListener(_i8.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#addListener, [listener]), returnValueForMissingStub: null); diff --git a/test/gym_mode_screen_test.mocks.dart b/test/gym_mode_screen_test.mocks.dart index 4ec8b504..bfc7bc35 100644 --- a/test/gym_mode_screen_test.mocks.dart +++ b/test/gym_mode_screen_test.mocks.dart @@ -23,13 +23,11 @@ import 'package:wger/providers/exercises.dart' as _i8; // ignore_for_file: prefer_const_constructors // ignore_for_file: unnecessary_parenthesis -class _FakeWgerBaseProvider_0 extends _i1.Fake implements _i2.WgerBaseProvider { -} +class _FakeWgerBaseProvider_0 extends _i1.Fake implements _i2.WgerBaseProvider {} class _FakeExercise_1 extends _i1.Fake implements _i3.Exercise {} -class _FakeExerciseCategory_2 extends _i1.Fake implements _i4.ExerciseCategory { -} +class _FakeExerciseCategory_2 extends _i1.Fake implements _i4.ExerciseCategory {} class _FakeEquipment_3 extends _i1.Fake implements _i5.Equipment {} @@ -47,45 +45,43 @@ class MockExercisesProvider extends _i1.Mock implements _i8.ExercisesProvider { @override _i2.WgerBaseProvider get baseProvider => - (super.noSuchMethod(Invocation.getter(#baseProvider), - returnValue: _FakeWgerBaseProvider_0()) as _i2.WgerBaseProvider); + (super.noSuchMethod(Invocation.getter(#baseProvider), returnValue: _FakeWgerBaseProvider_0()) + as _i2.WgerBaseProvider); @override set exercises(List<_i3.Exercise>? exercises) => - super.noSuchMethod(Invocation.setter(#exercises, exercises), + super.noSuchMethod(Invocation.setter(#exercises, exercises), returnValueForMissingStub: null); + @override + set filteredExerciseBases(List<_i3.Exercise>? newfilteredExercises) => + super.noSuchMethod(Invocation.setter(#filteredExercises, newfilteredExercises), returnValueForMissingStub: null); @override - set filteredExercises(List<_i3.Exercise>? newfilteredExercises) => super - .noSuchMethod(Invocation.setter(#filteredExercises, newfilteredExercises), - returnValueForMissingStub: null); - @override - List<_i3.Exercise> get items => (super.noSuchMethod(Invocation.getter(#items), - returnValue: <_i3.Exercise>[]) as List<_i3.Exercise>); + List<_i3.Exercise> get items => + (super.noSuchMethod(Invocation.getter(#items), returnValue: <_i3.Exercise>[]) + as List<_i3.Exercise>); @override List<_i4.ExerciseCategory> get categories => - (super.noSuchMethod(Invocation.getter(#categories), - returnValue: <_i4.ExerciseCategory>[]) as List<_i4.ExerciseCategory>); + (super.noSuchMethod(Invocation.getter(#categories), returnValue: <_i4.ExerciseCategory>[]) + as List<_i4.ExerciseCategory>); @override bool get hasListeners => - (super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) - as bool); + (super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) as bool); @override _i9.Future setFilters(_i8.Filters? newFilters) => (super.noSuchMethod(Invocation.method(#setFilters, [newFilters]), returnValue: Future.value(), returnValueForMissingStub: Future.value()) as _i9.Future); @override - _i9.Future findByFilters() => - (super.noSuchMethod(Invocation.method(#findByFilters, []), - returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i9.Future); + _i9.Future findByFilters() => (super.noSuchMethod(Invocation.method(#findByFilters, []), + returnValue: Future.value(), + returnValueForMissingStub: Future.value()) as _i9.Future); @override List<_i3.Exercise> findByCategory(_i4.ExerciseCategory? category) => (super.noSuchMethod(Invocation.method(#findByCategory, [category]), returnValue: <_i3.Exercise>[]) as List<_i3.Exercise>); @override - _i3.Exercise findExerciseById(int? id) => - (super.noSuchMethod(Invocation.method(#findExerciseById, [id]), - returnValue: _FakeExercise_1()) as _i3.Exercise); + _i3.Exercise findExerciseById(int? id) => (super + .noSuchMethod(Invocation.method(#findExerciseById, [id]), returnValue: _FakeExercise_1()) + as _i3.Exercise); @override _i4.ExerciseCategory findCategoryById(int? id) => (super.noSuchMethod(Invocation.method(#findCategoryById, [id]), @@ -96,12 +92,12 @@ class MockExercisesProvider extends _i1.Mock implements _i8.ExercisesProvider { returnValue: _FakeEquipment_3()) as _i5.Equipment); @override _i6.Muscle findMuscleById(int? id) => - (super.noSuchMethod(Invocation.method(#findMuscleById, [id]), - returnValue: _FakeMuscle_4()) as _i6.Muscle); + (super.noSuchMethod(Invocation.method(#findMuscleById, [id]), returnValue: _FakeMuscle_4()) + as _i6.Muscle); @override - _i7.Language findLanguageById(int? id) => - (super.noSuchMethod(Invocation.method(#findLanguageById, [id]), - returnValue: _FakeLanguage_5()) as _i7.Language); + _i7.Language findLanguageById(int? id) => (super + .noSuchMethod(Invocation.method(#findLanguageById, [id]), returnValue: _FakeLanguage_5()) + as _i7.Language); @override _i9.Future fetchAndSetCategories() => (super.noSuchMethod(Invocation.method(#fetchAndSetCategories, []), @@ -130,23 +126,19 @@ class MockExercisesProvider extends _i1.Mock implements _i8.ExercisesProvider { @override _i9.Future<_i3.Exercise> fetchAndSetExercise(int? exerciseId) => (super.noSuchMethod(Invocation.method(#fetchAndSetExercise, [exerciseId]), - returnValue: Future<_i3.Exercise>.value(_FakeExercise_1())) - as _i9.Future<_i3.Exercise>); + returnValue: Future<_i3.Exercise>.value(_FakeExercise_1())) as _i9.Future<_i3.Exercise>); @override - List<_i10.ExerciseBase> mapImages( - dynamic data, List<_i10.ExerciseBase>? bases) => + List<_i10.ExerciseBase> mapImages(dynamic data, List<_i10.ExerciseBase>? bases) => (super.noSuchMethod(Invocation.method(#mapImages, [data, bases]), returnValue: <_i10.ExerciseBase>[]) as List<_i10.ExerciseBase>); @override - List<_i10.ExerciseBase> setBaseData( - dynamic data, List<_i3.Exercise>? exercises) => + List<_i10.ExerciseBase> setBaseData(dynamic data, List<_i3.Exercise>? exercises) => (super.noSuchMethod(Invocation.method(#setBaseData, [data, exercises]), returnValue: <_i10.ExerciseBase>[]) as List<_i10.ExerciseBase>); @override - List mapBases( - List<_i10.ExerciseBase>? bases, List<_i3.Exercise>? exercises) => - (super.noSuchMethod(Invocation.method(#mapBases, [bases, exercises]), - returnValue: []) as List); + List mapBases(List<_i10.ExerciseBase>? bases, List<_i3.Exercise>? exercises) => (super + .noSuchMethod(Invocation.method(#mapBases, [bases, exercises]), returnValue: []) + as List); @override List<_i3.Exercise> mapLanguages(List<_i3.Exercise>? exercises) => (super.noSuchMethod(Invocation.method(#mapLanguages, [exercises]), @@ -170,27 +162,23 @@ class MockExercisesProvider extends _i1.Mock implements _i8.ExercisesProvider { returnValue: Future.value(), returnValueForMissingStub: Future.value()) as _i9.Future); @override - _i9.Future> searchExercise(String? name, - [String? languageCode = r'en']) => - (super.noSuchMethod( - Invocation.method(#searchExercise, [name, languageCode]), + _i9.Future> searchExercise(String? name, [String? languageCode = r'en']) => + (super.noSuchMethod(Invocation.method(#searchExercise, [name, languageCode]), returnValue: Future>.value(<_i3.Exercise>[])) as _i9.Future>); @override String toString() => super.toString(); @override - void addListener(_i11.VoidCallback? listener) => - super.noSuchMethod(Invocation.method(#addListener, [listener]), - returnValueForMissingStub: null); + void addListener(_i11.VoidCallback? listener) => super + .noSuchMethod(Invocation.method(#addListener, [listener]), returnValueForMissingStub: null); @override void removeListener(_i11.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#removeListener, [listener]), returnValueForMissingStub: null); @override - void dispose() => super.noSuchMethod(Invocation.method(#dispose, []), - returnValueForMissingStub: null); + void dispose() => + super.noSuchMethod(Invocation.method(#dispose, []), returnValueForMissingStub: null); @override void notifyListeners() => - super.noSuchMethod(Invocation.method(#notifyListeners, []), - returnValueForMissingStub: null); + super.noSuchMethod(Invocation.method(#notifyListeners, []), returnValueForMissingStub: null); } diff --git a/test/measurements/measurement_categories_screen_test.mocks.dart b/test/measurements/measurement_categories_screen_test.mocks.dart index f3b33bb4..8d19bc6f 100644 --- a/test/measurements/measurement_categories_screen_test.mocks.dart +++ b/test/measurements/measurement_categories_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.0.15 from annotations +// Mocks generated by Mockito 5.0.17 from annotations // in wger/test/measurements/measurement_categories_screen_test.dart. // Do not manually edit this file. @@ -18,6 +18,7 @@ import 'package:wger/providers/measurement.dart' as _i4; // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors // ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types class _FakeWgerBaseProvider_0 extends _i1.Fake implements _i2.WgerBaseProvider { } @@ -104,8 +105,6 @@ class MockMeasurementProvider extends _i1.Mock returnValue: Future.value(), returnValueForMissingStub: Future.value()) as _i5.Future); @override - String toString() => super.toString(); - @override void addListener(_i7.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#addListener, [listener]), returnValueForMissingStub: null); diff --git a/test/measurements/measurement_provider_test.mocks.dart b/test/measurements/measurement_provider_test.mocks.dart index 279715bb..eed83541 100644 --- a/test/measurements/measurement_provider_test.mocks.dart +++ b/test/measurements/measurement_provider_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.0.15 from annotations +// Mocks generated by Mockito 5.0.17 from annotations // in wger/test/measurements/measurement_provider_test.dart. // Do not manually edit this file. @@ -16,6 +16,7 @@ import 'package:wger/providers/base_provider.dart' as _i4; // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors // ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types class _FakeAuthProvider_0 extends _i1.Fake implements _i2.AuthProvider {} @@ -77,6 +78,4 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { (super.noSuchMethod(Invocation.method(#deleteRequest, [url, id]), returnValue: Future<_i3.Response>.value(_FakeResponse_3())) as _i5.Future<_i3.Response>); - @override - String toString() => super.toString(); } diff --git a/test/nutrition/nutritional_plan_form_test.mocks.dart b/test/nutrition/nutritional_plan_form_test.mocks.dart index 0a6341a5..e8934f96 100644 --- a/test/nutrition/nutritional_plan_form_test.mocks.dart +++ b/test/nutrition/nutritional_plan_form_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.0.15 from annotations +// Mocks generated by Mockito 5.0.17 from annotations // in wger/test/nutrition/nutritional_plan_form_test.dart. // Do not manually edit this file. @@ -21,6 +21,7 @@ import 'package:wger/providers/nutrition.dart' as _i8; // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors // ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types class _FakeAuthProvider_0 extends _i1.Fake implements _i2.AuthProvider {} @@ -213,8 +214,6 @@ class MockNutritionPlansProvider extends _i1.Mock returnValue: Future<_i3.Response>.value(_FakeResponse_7())) as _i9.Future<_i3.Response>); @override - String toString() => super.toString(); - @override void addListener(_i10.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#addListener, [listener]), returnValueForMissingStub: null); diff --git a/test/other/base_provider_test.mocks.dart b/test/other/base_provider_test.mocks.dart index 0486c3d5..b9dbf7c8 100644 --- a/test/other/base_provider_test.mocks.dart +++ b/test/other/base_provider_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.0.15 from annotations +// Mocks generated by Mockito 5.0.17 from annotations // in wger/test/other/base_provider_test.dart. // Do not manually edit this file. @@ -19,6 +19,7 @@ import 'package:mockito/mockito.dart' as _i1; // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors // ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types class _FakeResponse_0 extends _i1.Fake implements _i2.Response {} @@ -103,6 +104,4 @@ class MockClient extends _i1.Mock implements _i4.Client { @override void close() => super.noSuchMethod(Invocation.method(#close, []), returnValueForMissingStub: null); - @override - String toString() => super.toString(); } diff --git a/test/workout/gym_mode_screen_test.dart b/test/workout/gym_mode_screen_test.dart index c37281e8..7334623e 100644 --- a/test/workout/gym_mode_screen_test.dart +++ b/test/workout/gym_mode_screen_test.dart @@ -45,9 +45,9 @@ void main() { final mockExerciseProvider = MockExercisesProvider(); final WorkoutPlan workoutPlan = getWorkout(); - when(mockExerciseProvider.findExerciseById(1)).thenReturn(getExercise()[0]); - when(mockExerciseProvider.findExerciseById(2)).thenReturn(getExercise()[1]); - when(mockExerciseProvider.findExerciseById(3)).thenReturn(getExercise()[2]); + when(mockExerciseProvider.findExerciseById(1)).thenReturn(getTestExercises()[0]); + when(mockExerciseProvider.findExerciseById(2)).thenReturn(getTestExercises()[1]); + when(mockExerciseProvider.findExerciseById(3)).thenReturn(getTestExercises()[2]); return ChangeNotifierProvider( create: (context) => WorkoutPlansProvider( @@ -144,7 +144,7 @@ void main() { // // Pause // - expect(find.text('0:00'), findsOneWidget); + expect(find.text('0:01'), findsOneWidget); expect(find.byType(TimerWidget), findsOneWidget); expect(find.byIcon(Icons.close), findsOneWidget); expect(find.byIcon(Icons.menu), findsOneWidget); @@ -165,7 +165,7 @@ void main() { // // Pause // - expect(find.text('0:00'), findsOneWidget); + expect(find.text('0:01'), findsOneWidget); expect(find.byType(TimerWidget), findsOneWidget); expect(find.byIcon(Icons.chevron_left), findsOneWidget); expect(find.byIcon(Icons.close), findsOneWidget); diff --git a/test/workout/workout_form_test.mocks.dart b/test/workout/workout_form_test.mocks.dart index a4234391..496409c2 100644 --- a/test/workout/workout_form_test.mocks.dart +++ b/test/workout/workout_form_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.0.15 from annotations +// Mocks generated by Mockito 5.0.17 from annotations // in wger/test/workout/workout_form_test.dart. // Do not manually edit this file. @@ -26,6 +26,7 @@ import 'package:wger/providers/workout_plans.dart' as _i12; // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors // ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types class _FakeWeightUnit_0 extends _i1.Fake implements _i2.WeightUnit {} @@ -281,8 +282,6 @@ class MockWorkoutPlansProvider extends _i1.Mock returnValue: Future<_i5.Response>.value(_FakeResponse_11())) as _i13.Future<_i5.Response>); @override - String toString() => super.toString(); - @override void addListener(_i15.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#addListener, [listener]), returnValueForMissingStub: null); diff --git a/test/workout/workout_plan_model_test.dart b/test/workout/workout_plan_model_test.dart index a7a2c2a1..e0b727a7 100644 --- a/test/workout/workout_plan_model_test.dart +++ b/test/workout/workout_plan_model_test.dart @@ -27,16 +27,16 @@ void main() { final workout = getWorkout(); expect(workout.logs.length, 3); - final logExercise1 = workout.filterLogsByExercise(getExercise()[0]); + final logExercise1 = workout.filterLogsByExercise(getTestExercises()[0]); expect(logExercise1.length, 2); expect(logExercise1[0].id, 1); expect(logExercise1[1].id, 2); - final logExercise2 = workout.filterLogsByExercise(getExercise()[1]); + final logExercise2 = workout.filterLogsByExercise(getTestExercises()[1]); expect(logExercise2.length, 1); expect(logExercise2[0].id, 3); - expect(workout.filterLogsByExercise(getExercise()[2]).length, 0); + expect(workout.filterLogsByExercise(getTestExercises()[2]).length, 0); }); }); } diff --git a/test/workout/workout_set_form_test.mocks.dart b/test/workout/workout_set_form_test.mocks.dart index 6e946b12..7ba5447d 100644 --- a/test/workout/workout_set_form_test.mocks.dart +++ b/test/workout/workout_set_form_test.mocks.dart @@ -1,12 +1,12 @@ -// Mocks generated by Mockito 5.0.15 from annotations +// Mocks generated by Mockito 5.0.17 from annotations // in wger/test/workout/workout_set_form_test.dart. // Do not manually edit this file. -import 'dart:async' as _i9; +import 'dart:async' as _i10; import 'dart:ui' as _i11; import 'package:mockito/mockito.dart' as _i1; -import 'package:wger/models/exercises/base.dart' as _i10; +import 'package:wger/models/exercises/base.dart' as _i9; import 'package:wger/models/exercises/category.dart' as _i4; import 'package:wger/models/exercises/equipment.dart' as _i5; import 'package:wger/models/exercises/exercise.dart' as _i3; @@ -22,14 +22,13 @@ import 'package:wger/providers/exercises.dart' as _i8; // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors // ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types -class _FakeWgerBaseProvider_0 extends _i1.Fake implements _i2.WgerBaseProvider { -} +class _FakeWgerBaseProvider_0 extends _i1.Fake implements _i2.WgerBaseProvider {} class _FakeExercise_1 extends _i1.Fake implements _i3.Exercise {} -class _FakeExerciseCategory_2 extends _i1.Fake implements _i4.ExerciseCategory { -} +class _FakeExerciseCategory_2 extends _i1.Fake implements _i4.ExerciseCategory {} class _FakeEquipment_3 extends _i1.Fake implements _i5.Equipment {} @@ -47,48 +46,77 @@ class MockExercisesProvider extends _i1.Mock implements _i8.ExercisesProvider { @override _i2.WgerBaseProvider get baseProvider => - (super.noSuchMethod(Invocation.getter(#baseProvider), - returnValue: _FakeWgerBaseProvider_0()) as _i2.WgerBaseProvider); + (super.noSuchMethod(Invocation.getter(#baseProvider), returnValue: _FakeWgerBaseProvider_0()) + as _i2.WgerBaseProvider); + @override + set exerciseBases(List<_i9.ExerciseBase>? exercisesBases) => + super.noSuchMethod(Invocation.setter(#exerciseBases, exercisesBases), + returnValueForMissingStub: null); @override set exercises(List<_i3.Exercise>? exercises) => - super.noSuchMethod(Invocation.setter(#exercises, exercises), + super.noSuchMethod(Invocation.setter(#exercises, exercises), returnValueForMissingStub: null); + @override + List<_i9.ExerciseBase> get filteredExerciseBases => + (super.noSuchMethod(Invocation.getter(#filteredExercises), returnValue: <_i9.ExerciseBase>[]) + as List<_i9.ExerciseBase>); + @override + set filteredExerciseBases(List<_i9.ExerciseBase>? newFilteredExercises) => + super.noSuchMethod(Invocation.setter(#filteredExercises, newFilteredExercises), returnValueForMissingStub: null); @override - set filteredExercises(List<_i3.Exercise>? newfilteredExercises) => super - .noSuchMethod(Invocation.setter(#filteredExercises, newfilteredExercises), - returnValueForMissingStub: null); + List<_i3.Exercise> get items => + (super.noSuchMethod(Invocation.getter(#items), returnValue: <_i3.Exercise>[]) + as List<_i3.Exercise>); @override - List<_i3.Exercise> get items => (super.noSuchMethod(Invocation.getter(#items), - returnValue: <_i3.Exercise>[]) as List<_i3.Exercise>); + List<_i9.ExerciseBase> get bases => + (super.noSuchMethod(Invocation.getter(#bases), returnValue: <_i9.ExerciseBase>[]) + as List<_i9.ExerciseBase>); @override List<_i4.ExerciseCategory> get categories => - (super.noSuchMethod(Invocation.getter(#categories), - returnValue: <_i4.ExerciseCategory>[]) as List<_i4.ExerciseCategory>); + (super.noSuchMethod(Invocation.getter(#categories), returnValue: <_i4.ExerciseCategory>[]) + as List<_i4.ExerciseCategory>); + @override + List<_i6.Muscle> get muscles => + (super.noSuchMethod(Invocation.getter(#muscles), returnValue: <_i6.Muscle>[]) + as List<_i6.Muscle>); + @override + List<_i5.Equipment> get equipment => + (super.noSuchMethod(Invocation.getter(#equipment), returnValue: <_i5.Equipment>[]) + as List<_i5.Equipment>); + @override + List<_i7.Language> get languages => + (super.noSuchMethod(Invocation.getter(#languages), returnValue: <_i7.Language>[]) + as List<_i7.Language>); @override bool get hasListeners => - (super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) - as bool); + (super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) as bool); @override - _i9.Future setFilters(_i8.Filters? newFilters) => + _i10.Future setFilters(_i8.Filters? newFilters) => (super.noSuchMethod(Invocation.method(#setFilters, [newFilters]), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i9.Future); + returnValueForMissingStub: Future.value()) as _i10.Future); @override - _i9.Future findByFilters() => - (super.noSuchMethod(Invocation.method(#findByFilters, []), - returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i9.Future); + _i10.Future findByFilters() => (super.noSuchMethod(Invocation.method(#findByFilters, []), + returnValue: Future.value(), + returnValueForMissingStub: Future.value()) as _i10.Future); @override - void clear() => super.noSuchMethod(Invocation.method(#clear, []), - returnValueForMissingStub: null); + void clear() => + super.noSuchMethod(Invocation.method(#clear, []), returnValueForMissingStub: null); @override List<_i3.Exercise> findByCategory(_i4.ExerciseCategory? category) => (super.noSuchMethod(Invocation.method(#findByCategory, [category]), returnValue: <_i3.Exercise>[]) as List<_i3.Exercise>); @override - _i3.Exercise findExerciseById(int? id) => - (super.noSuchMethod(Invocation.method(#findExerciseById, [id]), - returnValue: _FakeExercise_1()) as _i3.Exercise); + _i3.Exercise findExerciseById(int? id) => (super + .noSuchMethod(Invocation.method(#findExerciseById, [id]), returnValue: _FakeExercise_1()) + as _i3.Exercise); + @override + List<_i3.Exercise> findExercisesByVariationId(int? id, + {int? exerciseIdToExclude, int? languageId}) => + (super.noSuchMethod( + Invocation.method(#findExercisesByVariationId, [id], + {#exerciseIdToExclude: exerciseIdToExclude, #languageId: languageId}), + returnValue: <_i3.Exercise>[]) as List<_i3.Exercise>); @override _i4.ExerciseCategory findCategoryById(int? id) => (super.noSuchMethod(Invocation.method(#findCategoryById, [id]), @@ -99,57 +127,53 @@ class MockExercisesProvider extends _i1.Mock implements _i8.ExercisesProvider { returnValue: _FakeEquipment_3()) as _i5.Equipment); @override _i6.Muscle findMuscleById(int? id) => - (super.noSuchMethod(Invocation.method(#findMuscleById, [id]), - returnValue: _FakeMuscle_4()) as _i6.Muscle); + (super.noSuchMethod(Invocation.method(#findMuscleById, [id]), returnValue: _FakeMuscle_4()) + as _i6.Muscle); @override - _i7.Language findLanguageById(int? id) => - (super.noSuchMethod(Invocation.method(#findLanguageById, [id]), - returnValue: _FakeLanguage_5()) as _i7.Language); + _i7.Language findLanguageById(int? id) => (super + .noSuchMethod(Invocation.method(#findLanguageById, [id]), returnValue: _FakeLanguage_5()) + as _i7.Language); @override - _i9.Future fetchAndSetCategories() => + _i10.Future fetchAndSetCategories() => (super.noSuchMethod(Invocation.method(#fetchAndSetCategories, []), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i9.Future); + returnValueForMissingStub: Future.value()) as _i10.Future); @override - _i9.Future fetchAndSetVariations() => + _i10.Future fetchAndSetVariations() => (super.noSuchMethod(Invocation.method(#fetchAndSetVariations, []), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i9.Future); + returnValueForMissingStub: Future.value()) as _i10.Future); @override - _i9.Future fetchAndSetMuscles() => + _i10.Future fetchAndSetMuscles() => (super.noSuchMethod(Invocation.method(#fetchAndSetMuscles, []), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i9.Future); + returnValueForMissingStub: Future.value()) as _i10.Future); @override - _i9.Future fetchAndSetEquipment() => + _i10.Future fetchAndSetEquipment() => (super.noSuchMethod(Invocation.method(#fetchAndSetEquipment, []), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i9.Future); + returnValueForMissingStub: Future.value()) as _i10.Future); @override - _i9.Future fetchAndSetLanguages() => + _i10.Future fetchAndSetLanguages() => (super.noSuchMethod(Invocation.method(#fetchAndSetLanguages, []), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i9.Future); + returnValueForMissingStub: Future.value()) as _i10.Future); @override - _i9.Future<_i3.Exercise> fetchAndSetExercise(int? exerciseId) => + _i10.Future<_i3.Exercise> fetchAndSetExercise(int? exerciseId) => (super.noSuchMethod(Invocation.method(#fetchAndSetExercise, [exerciseId]), - returnValue: Future<_i3.Exercise>.value(_FakeExercise_1())) - as _i9.Future<_i3.Exercise>); + returnValue: Future<_i3.Exercise>.value(_FakeExercise_1())) as _i10.Future<_i3.Exercise>); @override - List<_i10.ExerciseBase> mapImages( - dynamic data, List<_i10.ExerciseBase>? bases) => + List<_i9.ExerciseBase> mapImages(dynamic data, List<_i9.ExerciseBase>? bases) => (super.noSuchMethod(Invocation.method(#mapImages, [data, bases]), - returnValue: <_i10.ExerciseBase>[]) as List<_i10.ExerciseBase>); + returnValue: <_i9.ExerciseBase>[]) as List<_i9.ExerciseBase>); @override - List<_i10.ExerciseBase> setBaseData( - dynamic data, List<_i3.Exercise>? exercises) => + List<_i9.ExerciseBase> setBaseData(dynamic data, List<_i3.Exercise>? exercises) => (super.noSuchMethod(Invocation.method(#setBaseData, [data, exercises]), - returnValue: <_i10.ExerciseBase>[]) as List<_i10.ExerciseBase>); + returnValue: <_i9.ExerciseBase>[]) as List<_i9.ExerciseBase>); @override - List mapBases( - List<_i10.ExerciseBase>? bases, List<_i3.Exercise>? exercises) => - (super.noSuchMethod(Invocation.method(#mapBases, [bases, exercises]), - returnValue: []) as List); + List mapBases(List<_i9.ExerciseBase>? bases, List<_i3.Exercise>? exercises) => (super + .noSuchMethod(Invocation.method(#mapBases, [bases, exercises]), returnValue: []) + as List); @override List<_i3.Exercise> mapLanguages(List<_i3.Exercise>? exercises) => (super.noSuchMethod(Invocation.method(#mapLanguages, [exercises]), @@ -163,37 +187,31 @@ class MockExercisesProvider extends _i1.Mock implements _i8.ExercisesProvider { (super.noSuchMethod(Invocation.method(#mapComments, [data, exercises]), returnValue: <_i3.Exercise>[]) as List<_i3.Exercise>); @override - _i9.Future checkExerciseCacheVersion() => + _i10.Future checkExerciseCacheVersion() => (super.noSuchMethod(Invocation.method(#checkExerciseCacheVersion, []), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i9.Future); + returnValueForMissingStub: Future.value()) as _i10.Future); @override - _i9.Future fetchAndSetExercises() => + _i10.Future fetchAndSetExercises() => (super.noSuchMethod(Invocation.method(#fetchAndSetExercises, []), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i9.Future); + returnValueForMissingStub: Future.value()) as _i10.Future); @override - _i9.Future> searchExercise(String? name, - [String? languageCode = r'en']) => - (super.noSuchMethod( - Invocation.method(#searchExercise, [name, languageCode]), + _i10.Future> searchExercise(String? name, [String? languageCode = r'en']) => + (super.noSuchMethod(Invocation.method(#searchExercise, [name, languageCode]), returnValue: Future>.value(<_i3.Exercise>[])) - as _i9.Future>); + as _i10.Future>); @override - String toString() => super.toString(); - @override - void addListener(_i11.VoidCallback? listener) => - super.noSuchMethod(Invocation.method(#addListener, [listener]), - returnValueForMissingStub: null); + void addListener(_i11.VoidCallback? listener) => super + .noSuchMethod(Invocation.method(#addListener, [listener]), returnValueForMissingStub: null); @override void removeListener(_i11.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#removeListener, [listener]), returnValueForMissingStub: null); @override - void dispose() => super.noSuchMethod(Invocation.method(#dispose, []), - returnValueForMissingStub: null); + void dispose() => + super.noSuchMethod(Invocation.method(#dispose, []), returnValueForMissingStub: null); @override void notifyListeners() => - super.noSuchMethod(Invocation.method(#notifyListeners, []), - returnValueForMissingStub: null); + super.noSuchMethod(Invocation.method(#notifyListeners, []), returnValueForMissingStub: null); } diff --git a/test_data/exercises.dart b/test_data/exercises.dart index efb9b38e..f53e3acd 100644 --- a/test_data/exercises.dart +++ b/test_data/exercises.dart @@ -22,80 +22,89 @@ import 'package:wger/models/exercises/equipment.dart'; import 'package:wger/models/exercises/exercise.dart'; import 'package:wger/models/exercises/muscle.dart'; -const muscle1 = Muscle(id: 1, name: 'Flutterus maximus', isFront: true); -const muscle2 = Muscle(id: 2, name: 'Biceps', isFront: true); -const muscle3 = Muscle(id: 3, name: 'Booty', isFront: false); +const tMuscle1 = Muscle(id: 1, name: 'Flutterus maximus', isFront: true); +const tMuscle2 = Muscle(id: 2, name: 'Biceps', isFront: true); +const tMuscle3 = Muscle(id: 3, name: 'Booty', isFront: false); -const category1 = ExerciseCategory(id: 1, name: 'Arms'); -const category2 = ExerciseCategory(id: 2, name: 'Legs'); -const category3 = ExerciseCategory(id: 3, name: 'Abs'); -const category4 = ExerciseCategory(id: 4, name: 'Shoulders'); +const tCategory1 = ExerciseCategory(id: 1, name: 'Arms'); +const tCategory2 = ExerciseCategory(id: 2, name: 'Legs'); +const tCategory3 = ExerciseCategory(id: 3, name: 'Abs'); +const tCategory4 = ExerciseCategory(id: 4, name: 'Shoulders'); -const equipment1 = Equipment(id: 1, name: 'Bench'); -const equipment2 = Equipment(id: 1, name: 'Dumbbell'); -const equipment3 = Equipment(id: 2, name: 'Matress'); +const tEquipment1 = Equipment(id: 1, name: 'Bench'); +const tEquipment2 = Equipment(id: 1, name: 'Dumbbell'); +const tEquipment3 = Equipment(id: 2, name: 'Matress'); -List getExercise() { - final base1 = ExerciseBase( - id: 1, - uuid: 'uuid1', - creationDate: DateTime(2021, 09, 01), - updateDate: DateTime(2021, 09, 10), - category: category1, - equipment: [equipment1, equipment2], - muscles: [muscle1, muscle2], - musclesSecondary: [muscle3], - ); +final tBase1 = ExerciseBase( + id: 1, + uuid: 'uuid1', + creationDate: DateTime(2021, 09, 01), + updateDate: DateTime(2021, 09, 10), + category: tCategory1, + equipment: const [tEquipment1, tEquipment2], + muscles: const [tMuscle1, tMuscle2], + musclesSecondary: const [tMuscle3], +); - final exercise1 = Exercise( - id: 1, - baseId: 1, - uuid: 'uuid', - languageId: 1, - creationDate: DateTime(2021, 1, 15), - name: 'test exercise 1', - description: 'add clever text', - base: base1); +final tBase2 = ExerciseBase( + id: 2, + uuid: 'uuid2', + creationDate: DateTime(2021, 08, 01), + updateDate: DateTime(2021, 08, 10), + category: tCategory2, + equipment: const [tEquipment2], + muscles: const [tMuscle1], + musclesSecondary: const [tMuscle2], +); - final base2 = ExerciseBase( - id: 2, - uuid: 'uuid2', - creationDate: DateTime(2021, 08, 01), - updateDate: DateTime(2021, 08, 10), - category: category2, - equipment: [equipment2], - muscles: [muscle1], - musclesSecondary: [muscle2], - ); - final exercise2 = Exercise( - id: 2, - baseId: 2, - uuid: '111-2222-44444', - languageId: 2, - creationDate: DateTime(2021, 1, 15), - name: 'test exercise 2', - description: 'Lorem ipsum etc', - base: base2); +final tBase3 = ExerciseBase( + id: 3, + uuid: 'uuid3', + creationDate: DateTime(2021, 08, 01), + updateDate: DateTime(2021, 08, 01), + category: tCategory3, + equipment: const [tEquipment2], + muscles: const [tMuscle1], + musclesSecondary: const [tMuscle2], +); - final base3 = ExerciseBase( - id: 3, - uuid: 'uuid3', - creationDate: DateTime(2021, 08, 01), - updateDate: DateTime(2021, 08, 01), - category: category3, - equipment: [equipment2], - muscles: [muscle1], - musclesSecondary: [muscle2], - ); - final exercise3 = Exercise( - id: 3, - baseId: 2, - uuid: 'a3b6c7bb-9d22-4119-a5fc-818584d5e9bc', - languageId: 2, - creationDate: DateTime(2021, 4, 1), - name: 'test exercise 3', - description: 'The man in black fled across the desert, and the gunslinger followed', - base: base3); +final tExercise1 = Exercise( + id: 1, + baseId: 1, + uuid: 'uuid', + languageId: 1, + creationDate: DateTime(2021, 1, 15), + name: 'test exercise 1', + description: 'add clever text', + base: tBase1, +); - return [exercise1, exercise2, exercise3]; +final tExercise2 = Exercise( + id: 2, + baseId: 2, + uuid: '111-2222-44444', + languageId: 2, + creationDate: DateTime(2021, 1, 15), + name: 'test exercise 2', + description: 'Lorem ipsum etc', + base: tBase2, +); + +final tExercise3 = Exercise( + id: 3, + baseId: 2, + uuid: 'a3b6c7bb-9d22-4119-a5fc-818584d5e9bc', + languageId: 2, + creationDate: DateTime(2021, 4, 1), + name: 'test exercise 3', + description: 'The man in black fled across the desert, and the gunslinger followed', + base: tBase3, +); + +List getTestExercises() { + return [tExercise1, tExercise2, tExercise3]; +} + +List getTestExerciseBases() { + return getTestExercises().map((e) => e.base).toList(); } diff --git a/test_data/workouts.dart b/test_data/workouts.dart index 925fd9d1..dede8248 100644 --- a/test_data/workouts.dart +++ b/test_data/workouts.dart @@ -45,7 +45,7 @@ WorkoutPlan getWorkout() { ); setting1.repetitionUnit = repetitionUnit1; setting1.weightUnit = weightUnit1; - setting1.exercise = getExercise()[0]; + setting1.exercise = getTestExercises()[0]; setting1.weight = 10; final log1 = Log.empty() @@ -55,7 +55,7 @@ WorkoutPlan getWorkout() { ..date = DateTime(2021, 5, 1) ..reps = 10 ..workoutPlan = 1; - log1.exercise = getExercise()[0]; + log1.exercise = getTestExercises()[0]; log1.weightUnit = weightUnit1; log1.repetitionUnit = repetitionUnit1; @@ -66,7 +66,7 @@ WorkoutPlan getWorkout() { ..date = DateTime(2021, 5, 1) ..reps = 12 ..workoutPlan = 1; - log2.exercise = getExercise()[0]; + log2.exercise = getTestExercises()[0]; log2.weightUnit = weightUnit1; log2.repetitionUnit = repetitionUnit1; @@ -77,7 +77,7 @@ WorkoutPlan getWorkout() { ..date = DateTime(2021, 5, 2) ..reps = 8 ..workoutPlan = 1; - log3.exercise = getExercise()[1]; + log3.exercise = getTestExercises()[1]; log3.weightUnit = weightUnit1; log3.repetitionUnit = repetitionUnit1; @@ -88,7 +88,7 @@ WorkoutPlan getWorkout() { order: 1, comment: 'Important to do exercises correctly', ); - set1.addExercise(getExercise()[0]); + set1.addExercise(getTestExercises()[0]); set1.settings.add(setting1); set1.settingsComputed = [setting1, setting1];