From 2c36d037113e686d02ab7e030f12f5066606a11e Mon Sep 17 00:00:00 2001 From: Efrain Date: Sat, 16 Jul 2022 19:00:57 -0500 Subject: [PATCH] Build fix --- lib/application/artifact/artifact_bloc.dart | 12 +- lib/application/artifacts/artifacts_bloc.dart | 2 +- .../banner_history/banner_history_bloc.dart | 6 +- .../banner_history_item_bloc.dart | 2 +- .../calculator_asc_materials_item_bloc.dart | 16 +- .../calculator_asc_materials_bloc.dart | 12 +- lib/application/character/character_bloc.dart | 14 +- .../characters/characters_bloc.dart | 2 +- .../characters_birthdays_per_month_bloc.dart | 2 +- .../characters_per_region_bloc.dart | 2 +- .../characters_per_region_gender_bloc.dart | 2 +- .../birthdays/chart_birthdays_bloc.dart | 2 +- .../charts/elements/chart_elements_bloc.dart | 6 +- .../charts/genders/chart_genders_bloc.dart | 2 +- .../charts/regions/chart_regions_bloc.dart | 2 +- .../custom_build/custom_build_bloc.dart | 30 +-- lib/application/elements/elements_bloc.dart | 6 +- lib/application/home/home_bloc.dart | 11 +- .../item_release_history_bloc.dart | 2 +- lib/application/material/material_bloc.dart | 14 +- lib/application/materials/materials_bloc.dart | 2 +- lib/application/monsters/monsters_bloc.dart | 2 +- .../notification/notification_bloc.dart | 33 ++-- lib/application/tier_list/tier_list_bloc.dart | 5 +- .../today_materials/today_materials_bloc.dart | 4 +- lib/application/weapon/weapon_bloc.dart | 10 +- lib/application/weapons/weapons_bloc.dart | 2 +- lib/infrastructure/calculator_service.dart | 14 +- lib/infrastructure/game_codes_service.dart | 4 +- .../persistence/calculator_data_service.dart | 10 +- .../custom_builds_data_service.dart | 22 +-- .../persistence/game_codes_data_service.dart | 4 +- .../persistence/inventory_data_service.dart | 12 +- .../notifications_data_service.dart | 12 +- .../persistence/tier_list_data_service.dart | 2 +- .../artifacts/artifacts_bloc_test.dart | 20 +- .../banner_history_bloc_test.dart | 6 +- .../characters/characters_bloc_test.dart | 13 +- ...racters_birthdays_per_month_bloc_test.dart | 2 +- .../characters_per_region_bloc_test.dart | 2 +- ...haracters_per_region_gender_bloc_test.dart | 4 +- .../birthdays/chart_birthdays_bloc_test.dart | 2 +- .../elements/chart_elements_bloc_test.dart | 22 +-- .../genders/chart_genders_bloc_test.dart | 2 +- .../regions/chart_regions_bloc_test.dart | 2 +- .../custom_build/custom_build_bloc_test.dart | 14 +- .../custom_builds_bloc_test.dart | 4 +- test/application/home/home_bloc_test.dart | 6 +- .../inventory/inventory_bloc_test.dart | 8 +- .../materials/materials_bloc_test.dart | 13 +- .../monsters/monsters_bloc_test.dart | 20 +- .../notification/notification_bloc_test.dart | 50 ++--- .../tier_list/tier_list_bloc_test.dart | 20 +- .../weapons/weapons_bloc_test.dart | 21 +- test/common.dart | 2 +- test/infrastructure/data_service_test.dart | 2 +- test/infrastructure/genshin_service_test.dart | 187 +++++++++--------- 57 files changed, 369 insertions(+), 338 deletions(-) diff --git a/lib/application/artifact/artifact_bloc.dart b/lib/application/artifact/artifact_bloc.dart index b02110a9e..1318c7822 100644 --- a/lib/application/artifact/artifact_bloc.dart +++ b/lib/application/artifact/artifact_bloc.dart @@ -22,12 +22,12 @@ class ArtifactBloc extends Bloc { final s = await event.map( loadFromKey: (e) async { - final artifact = _genshinService.getArtifact(e.key); - final translation = _genshinService.getArtifactTranslation(e.key); - final charImgs = _genshinService.getCharacterForItemsUsingArtifact(e.key); - final droppedBy = _genshinService.getRelatedMonsterToArtifactForItems(e.key); - final images = _genshinService.getArtifactRelatedParts(artifact.fullImagePath, artifact.image, translation.bonus.length); - final bonus = _genshinService.getArtifactBonus(translation); + final artifact = _genshinService.artifacts.getArtifact(e.key); + final translation = _genshinService.translations.getArtifactTranslation(e.key); + final charImgs = _genshinService.characters.getCharacterForItemsUsingArtifact(e.key); + final droppedBy = _genshinService.monsters.getRelatedMonsterToArtifactForItems(e.key); + final images = _genshinService.artifacts.getArtifactRelatedParts(artifact.fullImagePath, artifact.image, translation.bonus.length); + final bonus = _genshinService.artifacts.getArtifactBonus(translation); await _telemetryService.trackArtifactLoaded(e.key); diff --git a/lib/application/artifacts/artifacts_bloc.dart b/lib/application/artifacts/artifacts_bloc.dart index affbb4bd4..5a3a1ad08 100644 --- a/lib/application/artifacts/artifacts_bloc.dart +++ b/lib/application/artifacts/artifacts_bloc.dart @@ -66,7 +66,7 @@ class ArtifactsBloc extends Bloc { ArtifactType? type, }) { final isLoaded = state is _LoadedState; - var data = _genshinService.getArtifactsForCard(type: type); + var data = _genshinService.artifacts.getArtifactsForCard(type: type); if (excludeKeys.isNotEmpty) { data = data.where((el) => !excludeKeys.contains(el.key)).toList(); } diff --git a/lib/application/banner_history/banner_history_bloc.dart b/lib/application/banner_history/banner_history_bloc.dart index a83c6cb3a..5b66f3416 100644 --- a/lib/application/banner_history/banner_history_bloc.dart +++ b/lib/application/banner_history/banner_history_bloc.dart @@ -48,10 +48,10 @@ class BannerHistoryBloc extends Bloc { Future _init() async { await _telemetryService.trackBannerHistoryOpened(); - _characterBanners.addAll(_genshinService.getBannerHistory(BannerHistoryItemType.character)); - _weaponBanners.addAll(_genshinService.getBannerHistory(BannerHistoryItemType.weapon)); + _characterBanners.addAll(_genshinService.bannerHistory.getBannerHistory(BannerHistoryItemType.character)); + _weaponBanners.addAll(_genshinService.bannerHistory.getBannerHistory(BannerHistoryItemType.weapon)); - final versions = _genshinService.getBannerHistoryVersions(SortDirectionType.asc); + final versions = _genshinService.bannerHistory.getBannerHistoryVersions(SortDirectionType.asc); final banners = _sortBanners(_characterBanners, versions, state.sortType); return BannerHistoryState.initial( type: BannerHistoryItemType.character, diff --git a/lib/application/banner_history_item/banner_history_item_bloc.dart b/lib/application/banner_history_item/banner_history_item_bloc.dart index 264eca961..752509fd6 100644 --- a/lib/application/banner_history_item/banner_history_item_bloc.dart +++ b/lib/application/banner_history_item/banner_history_item_bloc.dart @@ -28,7 +28,7 @@ class BannerHistoryItemBloc extends Bloc _init(double version) async { await _telemetryService.trackBannerHistoryItemOpened(version); - final banners = _genshinService.getBanners(version); + final banners = _genshinService.bannerHistory.getBanners(version); final grouped = banners .groupListsBy( (el) => '${DateFormat(periodDateFormat).format(el.from)}_${DateFormat(periodDateFormat).format(el.until)}', diff --git a/lib/application/calculator_asc_materials/material_item/calculator_asc_materials_item_bloc.dart b/lib/application/calculator_asc_materials/material_item/calculator_asc_materials_item_bloc.dart index 66096dd0f..7e3e25628 100644 --- a/lib/application/calculator_asc_materials/material_item/calculator_asc_materials_item_bloc.dart +++ b/lib/application/calculator_asc_materials/material_item/calculator_asc_materials_item_bloc.dart @@ -33,8 +33,8 @@ class CalculatorAscMaterialsItemBloc extends Bloc { Stream mapEventToState(CharacterEvent event) async* { final s = await event.when( loadFromKey: (key) async { - final char = _genshinService.getCharacter(key); - final translation = _genshinService.getCharacterTranslation(key); + final char = _genshinService.characters.getCharacter(key); + final translation = _genshinService.translations.getCharacterTranslation(key); await _telemetryService.trackCharacterLoaded(key); return _buildInitialState(char, translation); @@ -60,7 +60,7 @@ class CharacterBloc extends Bloc { } ItemAscensionMaterialModel _mapToItemAscensionModel(ItemAscensionMaterialFileModel m) { - final img = _genshinService.getMaterial(m.key).fullImagePath; + final img = _genshinService.materials.getMaterial(m.key).fullImagePath; return ItemAscensionMaterialModel(key: m.key, type: m.type, quantity: m.quantity, image: img); } @@ -93,15 +93,15 @@ class CharacterBloc extends Bloc { subType: build.subType, skillPriorities: build.skillPriorities, subStatsToFocus: build.subStatsToFocus, - weapons: build.weaponKeys.map((e) => _genshinService.getWeaponForCard(e)).toList(), + weapons: build.weaponKeys.map((e) => _genshinService.weapons.getWeaponForCard(e)).toList(), artifacts: build.artifacts.map( (e) { - final one = e.oneKey != null ? _genshinService.getArtifactForCard(e.oneKey!) : null; + final one = e.oneKey != null ? _genshinService.artifacts.getArtifactForCard(e.oneKey!) : null; final multiples = e.multiples .map( (m) => CharacterBuildMultipleArtifactModel( quantity: m.quantity, - artifact: _genshinService.getArtifactForCard(m.key), + artifact: _genshinService.artifacts.getArtifactForCard(m.key), ), ) .toList(); @@ -148,7 +148,7 @@ class CharacterBloc extends Bloc { secondDescription: a.secondDescription, ); }).toList(); - final stats = _genshinService.getCharacterSkillStats(skill.stats, e.stats); + final stats = _genshinService.characters.getCharacterSkillStats(skill.stats, e.stats); return CharacterSkillCardModel( image: skill.fullImagePath, stats: stats, diff --git a/lib/application/characters/characters_bloc.dart b/lib/application/characters/characters_bloc.dart index 1d1b72cb2..9f945d0a6 100644 --- a/lib/application/characters/characters_bloc.dart +++ b/lib/application/characters/characters_bloc.dart @@ -103,7 +103,7 @@ class CharactersBloc extends Bloc { RegionType? regionType, }) { final isLoaded = state is _LoadedState; - var characters = _genshinService.getCharactersForCard(); + var characters = _genshinService.characters.getCharactersForCard(); if (excludeKeys.isNotEmpty) { characters = characters.where((el) => !excludeKeys.contains(el.key)).toList(); } diff --git a/lib/application/characters_birthdays_per_month/characters_birthdays_per_month_bloc.dart b/lib/application/characters_birthdays_per_month/characters_birthdays_per_month_bloc.dart index fa11aaa26..b60e73003 100644 --- a/lib/application/characters_birthdays_per_month/characters_birthdays_per_month_bloc.dart +++ b/lib/application/characters_birthdays_per_month/characters_birthdays_per_month_bloc.dart @@ -24,7 +24,7 @@ class CharactersBirthdaysPerMonthBloc extends Bloc _init(int month) async { await _telemetryService.trackBirthdaysPerMonthOpened(month); - final characters = _genshinService.getCharacterBirthdays(month: month); + final characters = _genshinService.characters.getCharacterBirthdays(month: month); return CharactersBirthdaysPerMonthState.loaded(month: month, characters: characters); } } diff --git a/lib/application/characters_per_region/characters_per_region_bloc.dart b/lib/application/characters_per_region/characters_per_region_bloc.dart index 1df3d7085..3d22177b8 100644 --- a/lib/application/characters_per_region/characters_per_region_bloc.dart +++ b/lib/application/characters_per_region/characters_per_region_bloc.dart @@ -22,7 +22,7 @@ class CharactersPerRegionBloc extends Bloc } Future _init() async { - final birthdays = _genshinService.getCharacterBirthdaysForCharts(); + final birthdays = _genshinService.characters.getCharacterBirthdaysForCharts(); return ChartBirthdaysState.loaded(birthdays: birthdays); } } diff --git a/lib/application/charts/elements/chart_elements_bloc.dart b/lib/application/charts/elements/chart_elements_bloc.dart index 953765e1f..e1acdac49 100644 --- a/lib/application/charts/elements/chart_elements_bloc.dart +++ b/lib/application/charts/elements/chart_elements_bloc.dart @@ -15,7 +15,7 @@ class ChartElementsBloc extends Bloc { final List versions; ChartElementsBloc(this._genshinService) - : versions = _genshinService.getBannerHistoryVersions(SortDirectionType.asc), + : versions = _genshinService.bannerHistory.getBannerHistoryVersions(SortDirectionType.asc), super(const ChartElementsState.loading()); @override @@ -63,7 +63,7 @@ class ChartElementsBloc extends Bloc { lastVersion = versions.last; } - final elements = _genshinService.getElementsForCharts(firstVersion, lastVersion); + final elements = _genshinService.bannerHistory.getElementsForCharts(firstVersion, lastVersion); return ChartElementsState.loaded( maxNumberOfColumns: maxNumberOfColumns, firstVersion: firstVersion, @@ -140,7 +140,7 @@ class ChartElementsBloc extends Bloc { assert(newFirstVersion != newLastVersion, 'New and last version cannot be equal'); - final elements = _genshinService.getElementsForCharts(newFirstVersion, newLastVersion); + final elements = _genshinService.bannerHistory.getElementsForCharts(newFirstVersion, newLastVersion); return state.copyWith( elements: elements, filteredElements: _getFilteredElements(elements, state.selectedElementTypes), diff --git a/lib/application/charts/genders/chart_genders_bloc.dart b/lib/application/charts/genders/chart_genders_bloc.dart index 1ee429114..1e8f4a461 100644 --- a/lib/application/charts/genders/chart_genders_bloc.dart +++ b/lib/application/charts/genders/chart_genders_bloc.dart @@ -24,7 +24,7 @@ class ChartGendersBloc extends Bloc { } ChartGendersState _init() { - final items = _genshinService.getCharacterGendersForCharts(); + final items = _genshinService.characters.getCharacterGendersForCharts(); final maxCount = max(items.map((e) => e.femaleCount).reduce(max), items.map((e) => e.maleCount).reduce(max)); return ChartGendersState.loaded(genders: items, maxCount: maxCount); } diff --git a/lib/application/charts/regions/chart_regions_bloc.dart b/lib/application/charts/regions/chart_regions_bloc.dart index d89a328ab..556b555c5 100644 --- a/lib/application/charts/regions/chart_regions_bloc.dart +++ b/lib/application/charts/regions/chart_regions_bloc.dart @@ -24,7 +24,7 @@ class ChartRegionsBloc extends Bloc { } ChartRegionsState _init() { - final items = _genshinService.getCharacterRegionsForCharts(); + final items = _genshinService.characters.getCharacterRegionsForCharts(); final maxCount = items.map((e) => e.quantity).reduce(max); return ChartRegionsState.loaded(maxCount: maxCount, items: items); } diff --git a/lib/application/custom_build/custom_build_bloc.dart b/lib/application/custom_build/custom_build_bloc.dart index d9bc749cc..e14651220 100644 --- a/lib/application/custom_build/custom_build_bloc.dart +++ b/lib/application/custom_build/custom_build_bloc.dart @@ -174,12 +174,12 @@ class CustomBuildBloc extends Bloc { skillPriorities: build.skillPriorities, artifacts: build.artifacts..sort((x, y) => x.type.index.compareTo(y.type.index)), teamCharacters: build.teamCharacters, - subStatsSummary: _genshinService.generateSubStatSummary(build.artifacts), + subStatsSummary: _genshinService.artifacts.generateSubStatSummary(build.artifacts), readyForScreenshot: false, ); } - final character = _genshinService.getCharactersForCard().first; + final character = _genshinService.characters.getCharactersForCard().first; return CustomBuildState.loaded( title: initialTitle, type: CharacterRoleType.dps, @@ -239,7 +239,7 @@ class CustomBuildBloc extends Bloc { if (state.character.key == e.newKey) { return state; } - final newCharacter = _genshinService.getCharacterForCard(e.newKey); + final newCharacter = _genshinService.characters.getCharacterForCard(e.newKey); _LoadedState updatedState = state.copyWith.call(character: newCharacter, readyForScreenshot: false); if (newCharacter.weaponType != state.character.weaponType) { updatedState = updatedState.copyWith.call(weapons: []); @@ -261,8 +261,8 @@ class CustomBuildBloc extends Bloc { throw Exception('Cannot add more than = $maxNumberOfWeapons weapons to the state'); } - final weapon = _genshinService.getWeapon(e.key); - final translation = _genshinService.getWeaponTranslation(e.key); + final weapon = _genshinService.weapons.getWeapon(e.key); + final translation = _genshinService.translations.getWeaponTranslation(e.key); if (state.character.weaponType != weapon.type) { throw Exception('Type = ${weapon.type} is not valid for character = ${state.character.key}'); } @@ -359,9 +359,9 @@ class CustomBuildBloc extends Bloc { throw Exception('Cannot add more than = ${ArtifactType.values.length} artifacts to the state'); } - final fullArtifact = _genshinService.getArtifact(e.key); - final translation = _genshinService.getArtifactTranslation(e.key); - final img = _genshinService.getArtifactRelatedPart(fullArtifact.fullImagePath, fullArtifact.image, translation.bonus.length, e.type); + final fullArtifact = _genshinService.artifacts.getArtifact(e.key); + final translation = _genshinService.translations.getArtifactTranslation(e.key); + final img = _genshinService.artifacts.getArtifactRelatedPart(fullArtifact.fullImagePath, fullArtifact.image, translation.bonus.length, e.type); final updatedArtifacts = [...state.artifacts]; final old = state.artifacts.firstWhereOrNull((el) => el.type == e.type); @@ -409,7 +409,11 @@ class CustomBuildBloc extends Bloc { final artifacts = [...state.artifacts]; artifacts.removeAt(index); artifacts.insert(index, updated); - return state.copyWith.call(artifacts: artifacts, subStatsSummary: _genshinService.generateSubStatSummary(artifacts), readyForScreenshot: false); + return state.copyWith.call( + artifacts: artifacts, + subStatsSummary: _genshinService.artifacts.generateSubStatSummary(artifacts), + readyForScreenshot: false, + ); } CustomBuildState _deleteArtifact(_DeleteArtifact e, _LoadedState state) { @@ -419,7 +423,11 @@ class CustomBuildBloc extends Bloc { final updated = [...state.artifacts]; updated.removeWhere((el) => el.type == e.type); - return state.copyWith.call(artifacts: updated, subStatsSummary: _genshinService.generateSubStatSummary(updated), readyForScreenshot: false); + return state.copyWith.call( + artifacts: updated, + subStatsSummary: _genshinService.artifacts.generateSubStatSummary(updated), + readyForScreenshot: false, + ); } CustomBuildState _addTeamCharacter(_AddTeamCharacter e, _LoadedState state) { @@ -431,7 +439,7 @@ class CustomBuildBloc extends Bloc { throw Exception('The selected character cannot be in the team characters'); } - final char = _genshinService.getCharacterForCard(e.key); + final char = _genshinService.characters.getCharacterForCard(e.key); final updatedTeamCharacters = [...state.teamCharacters]; final old = updatedTeamCharacters.firstWhereOrNull((el) => el.key == e.key); if (old != null) { diff --git a/lib/application/elements/elements_bloc.dart b/lib/application/elements/elements_bloc.dart index 411fd28af..7de4a8a20 100644 --- a/lib/application/elements/elements_bloc.dart +++ b/lib/application/elements/elements_bloc.dart @@ -20,9 +20,9 @@ class ElementsBloc extends Bloc { ) async* { final s = event.when( init: () { - final debuffs = _genshinService.getElementDebuffs(); - final reactions = _genshinService.getElementReactions(); - final resonances = _genshinService.getElementResonances(); + final debuffs = _genshinService.elements.getElementDebuffs(); + final reactions = _genshinService.elements.getElementReactions(); + final resonances = _genshinService.elements.getElementResonances(); return ElementsState.loaded(debuffs: debuffs, reactions: reactions, resonances: resonances); }, diff --git a/lib/application/home/home_bloc.dart b/lib/application/home/home_bloc.dart index de5136485..34d392fdd 100644 --- a/lib/application/home/home_bloc.dart +++ b/lib/application/home/home_bloc.dart @@ -34,9 +34,14 @@ class HomeBloc extends Bloc { HomeState _buildInitialState(int day) { final now = DateTime.now(); - final charMaterials = _genshinService.getCharacterAscensionMaterials(day); - final weaponMaterials = _genshinService.getWeaponAscensionMaterials(day); - final charsForBirthday = _genshinService.getCharacterBirthdays(month: now.month, day: now.day).map((e) => ItemCommon(e.key, e.image)).toList(); + final charMaterials = _genshinService.characters.getCharacterAscensionMaterials(day); + final weaponMaterials = _genshinService.weapons.getWeaponAscensionMaterials(day); + final charsForBirthday = _genshinService.characters + .getCharacterBirthdays(month: now.month, day: now.day) + .map( + (e) => ItemCommon(e.key, e.image), + ) + .toList(); final dayName = _localeService.getDayNameFromDay(day); return HomeState.loaded( diff --git a/lib/application/item_release_history/item_release_history_bloc.dart b/lib/application/item_release_history/item_release_history_bloc.dart index 81bfc5de5..2035a80c6 100644 --- a/lib/application/item_release_history/item_release_history_bloc.dart +++ b/lib/application/item_release_history/item_release_history_bloc.dart @@ -19,7 +19,7 @@ class ItemReleaseHistoryBloc extends Bloc { Stream mapEventToState(MaterialEvent event) async* { final s = await event.map( loadFromKey: (e) async { - final material = _genshinService.getMaterial(e.key); + final material = _genshinService.materials.getMaterial(e.key); if (e.addToQueue) { await _telemetryService.trackMaterialLoaded(e.key); } @@ -35,13 +35,13 @@ class MaterialBloc extends Bloc { } MaterialState _buildInitialState(MaterialFileModel material) { - final translation = _genshinService.getMaterialTranslation(material.key); - final characters = _genshinService.getCharacterForItemsUsingMaterial(material.key); - final weapons = _genshinService.getWeaponForItemsUsingMaterial(material.key); - final droppedBy = _genshinService.getRelatedMonsterToMaterialForItems(material.key); + final translation = _genshinService.translations.getMaterialTranslation(material.key); + final characters = _genshinService.characters.getCharacterForItemsUsingMaterial(material.key); + final weapons = _genshinService.weapons.getWeaponForItemsUsingMaterial(material.key); + final droppedBy = _genshinService.monsters.getRelatedMonsterToMaterialForItems(material.key); final obtainedFrom = material.obtainedFrom.where((el) => el.createsMaterialKey == material.key).map((el) { final needs = el.needs.map((e) { - final img = _genshinService.getMaterialImg(e.key); + final img = _genshinService.materials.getMaterialImg(e.key); return ItemCommonWithQuantity(e.key, img, e.quantity); }).toList(); return ItemObtainedFrom(el.createsMaterialKey, needs); @@ -50,7 +50,7 @@ class MaterialBloc extends Bloc { //TODO: SHOW THE QUANTITY IN THE RELATED MATERIALS final relatedMaterials = material.recipes .map((el) { - final material = _genshinService.getMaterial(el.createsMaterialKey); + final material = _genshinService.materials.getMaterial(el.createsMaterialKey); return ItemCommon(material.key, material.fullImagePath); }) .distinct((x) => x.key) diff --git a/lib/application/materials/materials_bloc.dart b/lib/application/materials/materials_bloc.dart index 200c59812..688e4f3de 100644 --- a/lib/application/materials/materials_bloc.dart +++ b/lib/application/materials/materials_bloc.dart @@ -64,7 +64,7 @@ class MaterialsBloc extends Bloc { SortDirectionType sortDirectionType = SortDirectionType.asc, }) { final isLoaded = state is _LoadedState; - var data = _genshinService.getAllMaterialsForCard(); + var data = _genshinService.materials.getAllMaterialsForCard(); if (excludeKeys.isNotEmpty) { data = data.where((el) => !excludeKeys.contains(el.key)).toList(); } diff --git a/lib/application/monsters/monsters_bloc.dart b/lib/application/monsters/monsters_bloc.dart index a1375afc4..c13087465 100644 --- a/lib/application/monsters/monsters_bloc.dart +++ b/lib/application/monsters/monsters_bloc.dart @@ -58,7 +58,7 @@ class MonstersBloc extends Bloc { SortDirectionType sortDirectionType = SortDirectionType.asc, }) { final isLoaded = state is _LoadedState; - var data = _genshinService.getAllMonstersForCard(); + var data = _genshinService.monsters.getAllMonstersForCard(); if (excludeKeys.isNotEmpty) { data = data.where((el) => !excludeKeys.contains(el.key)).toList(); } diff --git a/lib/application/notification/notification_bloc.dart b/lib/application/notification/notification_bloc.dart index ef38916e6..a11a763dd 100644 --- a/lib/application/notification/notification_bloc.dart +++ b/lib/application/notification/notification_bloc.dart @@ -310,23 +310,23 @@ class NotificationBloc extends Bloc { final images = []; switch (newValue) { case AppNotificationItemType.character: - final character = _genshinService.getCharactersForCard().first; + final character = _genshinService.characters.getCharactersForCard().first; images.add(NotificationItemImage(itemKey: character.key, image: character.image, isSelected: true)); break; case AppNotificationItemType.weapon: - final weapon = _genshinService.getWeaponsForCard().first; + final weapon = _genshinService.weapons.getWeaponsForCard().first; images.add(NotificationItemImage(itemKey: weapon.key, image: weapon.image, isSelected: true)); break; case AppNotificationItemType.artifact: - final artifact = _genshinService.getArtifactsForCard().first; + final artifact = _genshinService.artifacts.getArtifactsForCard().first; images.add(NotificationItemImage(itemKey: artifact.key, image: artifact.image, isSelected: true)); break; case AppNotificationItemType.monster: - final monster = _genshinService.getAllMonstersForCard().first; + final monster = _genshinService.monsters.getAllMonstersForCard().first; images.add(NotificationItemImage(itemKey: monster.key, image: monster.image, isSelected: true)); break; case AppNotificationItemType.material: - final material = _genshinService.getAllMaterialsThatCanBeObtainedFromAnExpedition().first; + final material = _genshinService.materials.getAllMaterialsThatCanBeObtainedFromAnExpedition().first; images.add(NotificationItemImage(itemKey: material.key, image: material.fullImagePath, isSelected: true)); break; default: @@ -655,12 +655,12 @@ class NotificationBloc extends Bloc { } List _getImagesForResin() { - final material = _genshinService.getMaterialByImage(Assets.getOriginalResinPath()); + final material = _genshinService.materials.getMaterialByImage(Assets.getOriginalResinPath()); return [NotificationItemImage(itemKey: material.key, image: material.fullImagePath, isSelected: true)]; } List _getImagesForExpeditionNotifications({String? selectedImage}) { - final materials = _genshinService + final materials = _genshinService.materials .getAllMaterialsThatCanBeObtainedFromAnExpedition() .orderByDescending( (x) => x.rarity, @@ -677,14 +677,14 @@ class NotificationBloc extends Bloc { } List _getImagesForFarmingArtifactNotifications({String? selectedImage}) { - final artifact = _genshinService.getArtifactsForCard().first; + final artifact = _genshinService.artifacts.getArtifactsForCard().first; final images = []; images.add(NotificationItemImage(itemKey: artifact.key, image: artifact.image)); return _getImagesForFarmingNotifications(images, selectedImage: selectedImage); } List _getImagesForFarmingMaterialNotifications({String? selectedImage}) { - final materials = _genshinService + final materials = _genshinService.materials .getAllMaterialsThatHaveAFarmingRespawnDuration() .orderByDescending( (x) => x.rarity, @@ -704,7 +704,7 @@ class NotificationBloc extends Bloc { } List _getImagesForGadgetNotifications({String? selectedImage}) { - final gadgets = _genshinService.getAllGadgetsForNotifications(); + final gadgets = _genshinService.gadgets.getAllGadgetsForNotifications(); if (selectedImage.isNotNullEmptyOrWhitespace) { return gadgets.map((e) => NotificationItemImage(itemKey: e.key, image: e.fullImagePath, isSelected: e.fullImagePath == selectedImage)).toList(); } @@ -713,7 +713,7 @@ class NotificationBloc extends Bloc { } List _getImagesForFurnitureNotifications({String? selectedImage}) { - final furniture = _genshinService.getDefaultFurnitureForNotifications(); + final furniture = _genshinService.furniture.getDefaultFurnitureForNotifications(); if (selectedImage.isNotNullEmptyOrWhitespace) { return [NotificationItemImage(itemKey: furniture.key, image: furniture.fullImagePath, isSelected: furniture.fullImagePath == selectedImage)]; } @@ -721,13 +721,12 @@ class NotificationBloc extends Bloc { } List _getImagesForRealmCurrencyNotifications({String? selectedImage}) { - //TODO: FIGURE OUT HOW CAN I REMOVE THIS KEY FROM HERE - final material = _genshinService.getMaterial('realm-currency'); + final material = _genshinService.materials.getRealmCurrencyMaterial(); return [NotificationItemImage(itemKey: material.key, image: material.fullImagePath, isSelected: true)]; } List _getImagesForWeeklyBossNotifications({String? selectedImage}) { - final monsters = _genshinService.getMonsters(MonsterType.boss).toList(); + final monsters = _genshinService.monsters.getMonsters(MonsterType.boss).toList(); if (selectedImage.isNotNullEmptyOrWhitespace) { return monsters .map((e) => NotificationItemImage(itemKey: e.key, image: e.fullImagePath, isSelected: e.fullImagePath == selectedImage)) @@ -741,7 +740,7 @@ class NotificationBloc extends Bloc { if (selectedImage.isNotNullEmptyOrWhitespace) { return [NotificationItemImage(itemKey: itemKey!, image: selectedImage!, isSelected: true)]; } - final material = _genshinService.getAllMaterialsThatCanBeObtainedFromAnExpedition().first; + final material = _genshinService.materials.getAllMaterialsThatCanBeObtainedFromAnExpedition().first; return [NotificationItemImage(itemKey: material.key, image: material.fullImagePath, isSelected: true)]; } @@ -749,9 +748,7 @@ class NotificationBloc extends Bloc { if (selectedImage.isNotNullEmptyOrWhitespace) { return [NotificationItemImage(itemKey: itemKey!, image: selectedImage!, isSelected: true)]; } - //TODO: FIGURE OUT HOW CAN I REMOVE THIS KEY FROM HERE - final materials = _genshinService.getMaterials(MaterialType.currency); - final material = materials.firstWhere((el) => el.key == 'primogem'); + final material = _genshinService.materials.getPrimogemMaterial(); return [NotificationItemImage(itemKey: material.key, image: material.fullImagePath, isSelected: true)]; } diff --git a/lib/application/tier_list/tier_list_bloc.dart b/lib/application/tier_list/tier_list_bloc.dart index 2ca1fbc44..dbdc7e2ff 100644 --- a/lib/application/tier_list/tier_list_bloc.dart +++ b/lib/application/tier_list/tier_list_bloc.dart @@ -69,7 +69,7 @@ class TierListBloc extends Bloc { } final tierList = _dataService.tierList.getTierList(); - final defaultTierList = _genshinService.getDefaultCharacterTierList(defaultColors); + final defaultTierList = _genshinService.characters.getDefaultCharacterTierList(defaultColors); if (tierList.isEmpty) { return TierListState.loaded(rows: defaultTierList, charsAvailable: [], readyToSave: false); } @@ -134,7 +134,8 @@ class TierListBloc extends Bloc { } Future _clearAllRows() async { - final chars = _updateAvailableChars(_genshinService.getDefaultCharacterTierList(defaultColors).expand((row) => row.items).toList(), []); + final chars = + _updateAvailableChars(_genshinService.characters.getDefaultCharacterTierList(defaultColors).expand((row) => row.items).toList(), []); final updatedRows = currentState.rows.map((row) => row.copyWith.call(items: [])).toList(); await _dataService.tierList.saveTierList(updatedRows); return currentState.copyWith.call(rows: updatedRows, charsAvailable: chars, readyToSave: false); diff --git a/lib/application/today_materials/today_materials_bloc.dart b/lib/application/today_materials/today_materials_bloc.dart index b1e641c4e..ec7784093 100644 --- a/lib/application/today_materials/today_materials_bloc.dart +++ b/lib/application/today_materials/today_materials_bloc.dart @@ -35,8 +35,8 @@ class TodayMaterialsBloc extends Bloc final weaponMaterials = []; //TODO: YOU MAY WANT TO SHOW THE BOSS ITEMS AS WELL for (final day in days) { - final charMaterialsForDay = _genshinService.getCharacterAscensionMaterials(day); - final weaponMaterialsForDay = _genshinService.getWeaponAscensionMaterials(day); + final charMaterialsForDay = _genshinService.characters.getCharacterAscensionMaterials(day); + final weaponMaterialsForDay = _genshinService.weapons.getWeaponAscensionMaterials(day); for (final material in charMaterialsForDay) { if (charMaterials.any((m) => m.name == material.name)) { diff --git a/lib/application/weapon/weapon_bloc.dart b/lib/application/weapon/weapon_bloc.dart index 9aac4a6fc..dd08e52af 100644 --- a/lib/application/weapon/weapon_bloc.dart +++ b/lib/application/weapon/weapon_bloc.dart @@ -23,8 +23,8 @@ class WeaponBloc extends Bloc { Stream mapEventToState(WeaponEvent event) async* { final s = await event.when( loadFromKey: (key) async { - final weapon = _genshinService.getWeapon(key); - final translation = _genshinService.getWeaponTranslation(weapon.key); + final weapon = _genshinService.weapons.getWeapon(key); + final translation = _genshinService.translations.getWeaponTranslation(weapon.key); await _telemetryService.trackWeaponLoaded(key); return _buildInitialState(weapon, translation); }, @@ -50,10 +50,10 @@ class WeaponBloc extends Bloc { } WeaponState _buildInitialState(WeaponFileModel weapon, TranslationWeaponFile translation) { - final charImgs = _genshinService.getCharacterForItemsUsingWeapon(weapon.key); + final charImgs = _genshinService.characters.getCharacterForItemsUsingWeapon(weapon.key); final ascensionMaterials = weapon.ascensionMaterials.map((e) { final materials = e.materials.map((e) { - final material = _genshinService.getMaterial(e.key); + final material = _genshinService.materials.getMaterial(e.key); return ItemAscensionMaterialModel(key: material.key, type: material.type, quantity: e.quantity, image: material.fullImagePath); }).toList(); return WeaponAscensionModel(level: e.level, materials: materials); @@ -62,7 +62,7 @@ class WeaponBloc extends Bloc { final refinements = translation.refinements.mapIndexed((index, e) => WeaponFileRefinementModel(level: index + 1, description: e)).toList(); final craftingMaterials = weapon.craftingMaterials.map((e) { - final material = _genshinService.getMaterial(e.key); + final material = _genshinService.materials.getMaterial(e.key); return ItemAscensionMaterialModel(key: e.key, type: material.type, quantity: e.quantity, image: material.fullImagePath); }).toList(); return WeaponState.loaded( diff --git a/lib/application/weapons/weapons_bloc.dart b/lib/application/weapons/weapons_bloc.dart index bc7aee638..34d536bc6 100644 --- a/lib/application/weapons/weapons_bloc.dart +++ b/lib/application/weapons/weapons_bloc.dart @@ -94,7 +94,7 @@ class WeaponsBloc extends Bloc { bool areWeaponTypesEnabled = true, }) { final isLoaded = state is _LoadedState; - var data = _genshinService.getWeaponsForCard(); + var data = _genshinService.weapons.getWeaponsForCard(); if (excludeKeys.isNotEmpty) { data = data.where((el) => !excludeKeys.contains(el.key)).toList(); } diff --git a/lib/infrastructure/calculator_service.dart b/lib/infrastructure/calculator_service.dart index 08b0783be..434dfa569 100644 --- a/lib/infrastructure/calculator_service.dart +++ b/lib/infrastructure/calculator_service.dart @@ -17,7 +17,7 @@ class CalculatorServiceImpl implements CalculatorService { final summary = >{}; for (var i = 0; i < flattened.length; i++) { final item = flattened[i]; - final material = _genshinService.getMaterial(item.key); + final material = _genshinService.materials.getMaterial(item.key); MaterialSummary newValue; AscensionMaterialSummaryType key; @@ -119,7 +119,7 @@ class CalculatorServiceImpl implements CalculatorService { final ascensionMaterials = char.ascensionMaterials .where((m) => m.rank > currentAscensionLevel && m.rank <= desiredAscensionLevel) .expand((e) => e.materials) - .map((e) => ItemAscensionMaterialModel.fromFile(e, _genshinService.getMaterialImg(e.key))) + .map((e) => ItemAscensionMaterialModel.fromFile(e, _genshinService.materials.getMaterialImg(e.key))) .toList(); final skillMaterials = []; @@ -129,7 +129,7 @@ class CalculatorServiceImpl implements CalculatorService { final materials = char.talentAscensionMaterials .where((m) => m.level > skill.currentLevel && m.level <= skill.desiredLevel) .expand((m) => m.materials) - .map((e) => ItemAscensionMaterialModel.fromFile(e, _genshinService.getMaterialImg(e.key))) + .map((e) => ItemAscensionMaterialModel.fromFile(e, _genshinService.materials.getMaterialImg(e.key))) .toList(); skillMaterials.addAll(materials); @@ -144,7 +144,7 @@ class CalculatorServiceImpl implements CalculatorService { .expand((mt) => mt.materials) .where((m) => m.level > skill.currentLevel && m.level <= skill.desiredLevel) .expand((m) => m.materials) - .map((e) => ItemAscensionMaterialModel.fromFile(e, _genshinService.getMaterialImg(e.key))) + .map((e) => ItemAscensionMaterialModel.fromFile(e, _genshinService.materials.getMaterialImg(e.key))) .toList(); skillMaterials.addAll(materials); @@ -168,7 +168,7 @@ class CalculatorServiceImpl implements CalculatorService { final materials = weapon.ascensionMaterials .where((m) => m.level > _mapToWeaponLevel(currentAscensionLevel) && m.level <= _mapToWeaponLevel(desiredAscensionLevel)) .expand((m) => m.materials) - .map((e) => ItemAscensionMaterialModel.fromFile(e, _genshinService.getMaterialImg(e.key))) + .map((e) => ItemAscensionMaterialModel.fromFile(e, _genshinService.materials.getMaterialImg(e.key))) .toList(); return _flatMaterialsList(expMaterials + materials); @@ -360,10 +360,10 @@ class CalculatorServiceImpl implements CalculatorService { List _getItemExperienceMaterials(int currentLevel, int desiredLevel, int rarity, bool forCharacters) { final materials = []; //Here we order the exp materials in a way that the one that gives more exp is first and so on - final expMaterials = _genshinService.getMaterials(forCharacters ? MaterialType.expCharacter : MaterialType.expWeapon) + final expMaterials = _genshinService.materials.getMaterials(forCharacters ? MaterialType.expCharacter : MaterialType.expWeapon) ..sort((x, y) => (y.experienceAttributes!.experience - x.experienceAttributes!.experience).round()); var requiredExp = getItemTotalExp(currentLevel, desiredLevel, rarity, forCharacters); - final moraMaterial = _genshinService.getMoraMaterial(); + final moraMaterial = _genshinService.materials.getMoraMaterial(); for (final material in expMaterials) { if (requiredExp <= 0) { diff --git a/lib/infrastructure/game_codes_service.dart b/lib/infrastructure/game_codes_service.dart index 93cc77dab..95917dd7e 100644 --- a/lib/infrastructure/game_codes_service.dart +++ b/lib/infrastructure/game_codes_service.dart @@ -111,7 +111,7 @@ class GameCodeServiceImpl implements GameCodeService { final quantityString = cellNodes[i + 1].text!.trim().replaceAll('\n', '').replaceAll(',', ''); final quantity = int.parse(quantityRegex.allMatches(quantityString).first.group(0)!); final key = _getMaterialKey(wikiName, type); - final img = _genshinService.getMaterialImg(key); + final img = _genshinService.materials.getMaterialImg(key); rewards.add(ItemAscensionMaterialModel(quantity: quantity, type: type, key: key, image: img)); } catch (e, s) { _logger.error(runtimeType, '_parseRewards: Unknown error', e, s); @@ -139,7 +139,7 @@ class GameCodeServiceImpl implements GameCodeService { } String _getMaterialKey(String wikiName, MaterialType type) { - final relatedMaterials = _genshinService.getMaterials(type); + final relatedMaterials = _genshinService.materials.getMaterials(type); final map = {}; for (final material in relatedMaterials) { diff --git a/lib/infrastructure/persistence/calculator_data_service.dart b/lib/infrastructure/persistence/calculator_data_service.dart index 3cf0727b2..9fa3e1ca0 100644 --- a/lib/infrastructure/persistence/calculator_data_service.dart +++ b/lib/infrastructure/persistence/calculator_data_service.dart @@ -136,7 +136,7 @@ class CalculatorDataServiceImpl implements CalculatorDataService { //Here we created a used inventory item for each material for (final material in item.materials) { - final mat = _genshinService.getMaterial(material.key); + final mat = _genshinService.materials.getMaterial(material.key); await _inventory.useItemFromInventory(calculatorItemKey, mat.key, ItemType.material, material.quantity); } @@ -250,8 +250,8 @@ class CalculatorDataServiceImpl implements CalculatorDataService { } ItemAscensionMaterials _buildForCharacter(CalculatorItem item, {int? calculatorItemKey, bool includeInventory = false}) { - final character = _genshinService.getCharacter(item.itemKey); - final translation = _genshinService.getCharacterTranslation(item.itemKey); + final character = _genshinService.characters.getCharacter(item.itemKey); + final translation = _genshinService.translations.getCharacterTranslation(item.itemKey); final skills = _calcItemSkillBox.values .where((s) => s.calculatorItemKey == item.key) .map((skill) => _buildCharacterSkill(item, skill, translation.skills.firstWhere((t) => t.key == skill.skillKey))) @@ -312,8 +312,8 @@ class CalculatorDataServiceImpl implements CalculatorDataService { } ItemAscensionMaterials _buildForWeapon(CalculatorItem item, {int? calculatorItemKey, bool includeInventory = false}) { - final weapon = _genshinService.getWeapon(item.itemKey); - final translation = _genshinService.getWeaponTranslation(item.itemKey); + final weapon = _genshinService.weapons.getWeapon(item.itemKey); + final translation = _genshinService.translations.getWeaponTranslation(item.itemKey); var materials = _calculatorService.getWeaponMaterialsToUse( weapon, item.currentLevel, diff --git a/lib/infrastructure/persistence/custom_builds_data_service.dart b/lib/infrastructure/persistence/custom_builds_data_service.dart index 4f39e4b96..65f85dd51 100644 --- a/lib/infrastructure/persistence/custom_builds_data_service.dart +++ b/lib/infrastructure/persistence/custom_builds_data_service.dart @@ -138,15 +138,15 @@ class CustomBuildsDataServiceImpl implements CustomBuildsDataService { List getCustomBuildsForCharacter(String charKey) { return _buildsBox.values.where((el) => el.showOnCharacterDetail && el.characterKey == charKey).map((e) { final build = getCustomBuild(e.key as int); - final artifacts = build.artifacts.map((e) => _genshinService.getArtifactForCard(e.key)).toList(); + final artifacts = build.artifacts.map((e) => _genshinService.artifacts.getArtifactForCard(e.key)).toList(); return CharacterBuildCardModel( isRecommended: e.isRecommended, isCustomBuild: true, type: CharacterRoleType.values[e.roleType], subType: CharacterRoleSubType.values[e.roleSubType], skillPriorities: e.skillPriorities.map((e) => CharacterSkillType.values[e]).toList(), - subStatsToFocus: _genshinService.generateSubStatSummary(build.artifacts), - weapons: build.weapons.map((e) => _genshinService.getWeaponForCard(e.key)).toList(), + subStatsToFocus: _genshinService.artifacts.generateSubStatSummary(build.artifacts), + weapons: build.weapons.map((e) => _genshinService.weapons.getWeaponForCard(e.key)).toList(), artifacts: [ CharacterBuildArtifactModel( one: null, @@ -234,11 +234,11 @@ class CustomBuildsDataServiceImpl implements CustomBuildsDataService { List buildArtifacts, List buildTeamCharacters, ) { - final character = _genshinService.getCharacterForCard(build.characterKey); + final character = _genshinService.characters.getCharacterForCard(build.characterKey); final artifacts = buildArtifacts.map((e) { - final fullArtifact = _genshinService.getArtifact(e.itemKey); - final translation = _genshinService.getArtifactTranslation(e.itemKey); - final image = _genshinService.getArtifactRelatedPart( + final fullArtifact = _genshinService.artifacts.getArtifact(e.itemKey); + final translation = _genshinService.translations.getArtifactTranslation(e.itemKey); + final image = _genshinService.artifacts.getArtifactRelatedPart( fullArtifact.fullImagePath, fullArtifact.image, translation.bonus.length, @@ -264,8 +264,8 @@ class CustomBuildsDataServiceImpl implements CustomBuildsDataService { isRecommended: build.isRecommended, character: character, weapons: buildWeapons.map((e) { - final weapon = _genshinService.getWeapon(e.weaponKey); - final translation = _genshinService.getWeaponTranslation(e.weaponKey); + final weapon = _genshinService.weapons.getWeapon(e.weaponKey); + final translation = _genshinService.translations.getWeaponTranslation(e.weaponKey); final stat = e.level <= 0 ? weapon.stats.last : weapon.stats.firstWhere((el) => el.level == e.level && el.isAnAscension == e.isAnAscension); return CustomBuildWeaponModel( key: e.weaponKey, @@ -281,11 +281,11 @@ class CustomBuildsDataServiceImpl implements CustomBuildsDataService { }).toList() ..sort((x, y) => x.index.compareTo(y.index)), artifacts: artifacts, - subStatsSummary: _genshinService.generateSubStatSummary(artifacts), + subStatsSummary: _genshinService.artifacts.generateSubStatSummary(artifacts), skillPriorities: build.skillPriorities.map((e) => CharacterSkillType.values[e]).toList(), notes: buildNotes.map((e) => CustomBuildNoteModel(index: e.index, note: e.note)).toList()..sort((x, y) => x.index.compareTo(y.index)), teamCharacters: buildTeamCharacters.map((e) { - final char = _genshinService.getCharacterForCard(e.characterKey); + final char = _genshinService.characters.getCharacterForCard(e.characterKey); return CustomBuildTeamCharacterModel( key: e.characterKey, index: e.index, diff --git a/lib/infrastructure/persistence/game_codes_data_service.dart b/lib/infrastructure/persistence/game_codes_data_service.dart index 63ce711af..beb266a98 100644 --- a/lib/infrastructure/persistence/game_codes_data_service.dart +++ b/lib/infrastructure/persistence/game_codes_data_service.dart @@ -31,7 +31,7 @@ class GameCodesDataServiceImpl implements GameCodesDataService { List getAllGameCodes() { return _gameCodesBox.values.map((e) { final rewards = _gameCodeRewardsBox.values.where((el) => el.gameCodeKey == e.key).map((reward) { - final material = _genshinService.getMaterial(reward.itemKey); + final material = _genshinService.materials.getMaterial(reward.itemKey); return ItemAscensionMaterialModel(quantity: reward.quantity, key: material.key, type: material.type, image: material.fullImagePath); }).toList(); //Some codes don't have an expiration date, that's why we use this boolean here @@ -76,7 +76,7 @@ class GameCodesDataServiceImpl implements GameCodesDataService { Future saveGameCodeRewards(int gameCodeKey, List rewards) { final rewardsToSave = rewards .map( - (e) => GameCodeReward(gameCodeKey, _genshinService.getMaterial(e.key).key, e.quantity), + (e) => GameCodeReward(gameCodeKey, _genshinService.materials.getMaterial(e.key).key, e.quantity), ) .toList(); return _gameCodeRewardsBox.addAll(rewardsToSave); diff --git a/lib/infrastructure/persistence/inventory_data_service.dart b/lib/infrastructure/persistence/inventory_data_service.dart index 1751ff578..ebc0222c5 100644 --- a/lib/infrastructure/persistence/inventory_data_service.dart +++ b/lib/infrastructure/persistence/inventory_data_service.dart @@ -129,7 +129,7 @@ class InventoryDataServiceImpl implements InventoryDataService { final characters = _inventoryBox.values .where((el) => el.type == ItemType.character.index) .map( - (e) => _genshinService.getCharacterForCard(e.itemKey), + (e) => _genshinService.characters.getCharacterForCard(e.itemKey), ) .toList(); @@ -138,9 +138,9 @@ class InventoryDataServiceImpl implements InventoryDataService { @override List getAllMaterialsInInventory() { - final materials = _genshinService.getAllMaterialsForCard(); + final materials = _genshinService.materials.getAllMaterialsForCard(); final inInventory = _inventoryBox.values.where((el) => el.type == ItemType.material.index).map((e) { - final material = _genshinService.getMaterialForCard(e.itemKey); + final material = _genshinService.materials.getMaterialForCard(e.itemKey); return material.copyWith.call(quantity: e.quantity); }).toList(); @@ -161,7 +161,7 @@ class InventoryDataServiceImpl implements InventoryDataService { @override MaterialCardModel getMaterialFromInventory(String key) { - final materialForCard = _genshinService.getMaterialForCard(key); + final materialForCard = _genshinService.materials.getMaterialForCard(key); final materialInInventory = _inventoryBox.values.firstWhereOrNull((m) => m.itemKey == key); if (materialInInventory == null) { return materialForCard.copyWith.call(quantity: 0); @@ -175,7 +175,7 @@ class InventoryDataServiceImpl implements InventoryDataService { final weapons = _inventoryBox.values .where((el) => el.type == ItemType.weapon.index) .map( - (e) => _genshinService.getWeaponForCard(e.itemKey), + (e) => _genshinService.weapons.getWeaponForCard(e.itemKey), ) .toList(); @@ -223,7 +223,7 @@ class InventoryDataServiceImpl implements InventoryDataService { @override Future redistributeMaterial(int calItemKey, ItemAscensionMaterials item, String itemKey, int currentQuantity) async { int currentQty = currentQuantity; - final material = _genshinService.getMaterial(itemKey); + final material = _genshinService.materials.getMaterial(itemKey); final desiredQuantityToUse = item.materials.firstWhereOrNull((el) => el.key == material.key)?.quantity ?? 0; //Next, we check if there is a used item for this calculator item diff --git a/lib/infrastructure/persistence/notifications_data_service.dart b/lib/infrastructure/persistence/notifications_data_service.dart index 3e116f412..1eb3d2703 100644 --- a/lib/infrastructure/persistence/notifications_data_service.dart +++ b/lib/infrastructure/persistence/notifications_data_service.dart @@ -127,7 +127,7 @@ class NotificationsDataServiceImpl implements NotificationsDataService { bool showNotification = true, }) async { final now = DateTime.now(); - final gadget = _genshinService.getGadget(itemKey); + final gadget = _genshinService.gadgets.getGadget(itemKey); final completesAt = now.add(gadget.cooldownDuration!); final notification = NotificationGadget( itemKey: itemKey, @@ -200,7 +200,7 @@ class NotificationsDataServiceImpl implements NotificationsDataService { bool showNotification = true, }) async { final now = DateTime.now(); - final completesAt = now.add(_genshinService.getMaterial(itemKey).farmingRespawnDuration!); + final completesAt = now.add(_genshinService.materials.getMaterial(itemKey).farmingRespawnDuration!); final notification = NotificationFarmingMaterial( itemKey: itemKey, createdAt: now, @@ -358,7 +358,7 @@ class NotificationsDataServiceImpl implements NotificationsDataService { return _mapToNotificationItem(item); case AppNotificationType.farmingMaterials: final item = _getNotification(key, type); - item.completesAt = DateTime.now().add(_genshinService.getMaterial(item.itemKey).farmingRespawnDuration!); + item.completesAt = DateTime.now().add(_genshinService.materials.getMaterial(item.itemKey).farmingRespawnDuration!); await item.save(); return _mapToNotificationItem(item); case AppNotificationType.farmingArtifacts: @@ -368,7 +368,7 @@ class NotificationsDataServiceImpl implements NotificationsDataService { return _mapToNotificationItem(item); case AppNotificationType.gadget: final item = _getNotification(key, type); - item.completesAt = DateTime.now().add(_genshinService.getGadget(item.itemKey).cooldownDuration!); + item.completesAt = DateTime.now().add(_genshinService.gadgets.getGadget(item.itemKey).cooldownDuration!); await item.save(); return _mapToNotificationItem(item); case AppNotificationType.furniture: @@ -466,7 +466,7 @@ class NotificationsDataServiceImpl implements NotificationsDataService { final item = _notificationsFarmingMaterialBox.values.firstWhere((el) => el.key == key); final isCompleted = item.completesAt.isBefore(DateTime.now()); if (item.itemKey != itemKey || isCompleted) { - final newDuration = _genshinService.getMaterial(itemKey).farmingRespawnDuration!; + final newDuration = _genshinService.materials.getMaterial(itemKey).farmingRespawnDuration!; item.completesAt = DateTime.now().add(newDuration); } @@ -507,7 +507,7 @@ class NotificationsDataServiceImpl implements NotificationsDataService { final item = _notificationsGadgetBox.values.firstWhere((el) => el.key == key); final isCompleted = item.completesAt.isBefore(DateTime.now()); if (item.itemKey != itemKey || isCompleted) { - final gadget = _genshinService.getGadget(item.itemKey); + final gadget = _genshinService.gadgets.getGadget(item.itemKey); final now = DateTime.now(); item.completesAt = now.add(gadget.cooldownDuration!); item.itemKey = itemKey; diff --git a/lib/infrastructure/persistence/tier_list_data_service.dart b/lib/infrastructure/persistence/tier_list_data_service.dart index 9e4100e32..f59e8714e 100644 --- a/lib/infrastructure/persistence/tier_list_data_service.dart +++ b/lib/infrastructure/persistence/tier_list_data_service.dart @@ -26,7 +26,7 @@ class TierListDataServiceImpl implements TierListDataService { final values = _tierListBox.values.toList()..sort((x, y) => x.position.compareTo(y.position)); return values.map((e) { final characters = e.charKeys.map((e) { - final character = _genshinService.getCharacter(e); + final character = _genshinService.characters.getCharacter(e); return ItemCommon(character.key, character.fullImagePath); }).toList(); return TierListRowModel.row(tierText: e.text, items: characters, tierColor: e.color); diff --git a/test/application/artifacts/artifacts_bloc_test.dart b/test/application/artifacts/artifacts_bloc_test.dart index a4f4fd39a..3fb54d486 100644 --- a/test/application/artifacts/artifacts_bloc_test.dart +++ b/test/application/artifacts/artifacts_bloc_test.dart @@ -41,7 +41,7 @@ void main() { build: () => ArtifactsBloc(_genshinService), act: (bloc) => bloc.add(const ArtifactsEvent.init()), expect: () { - final artifacts = _genshinService.getArtifactsForCard(); + final artifacts = _genshinService.artifacts.getArtifactsForCard(); return [ ArtifactsState.loaded( artifacts: artifacts, @@ -66,7 +66,7 @@ void main() { emittedState.map( loading: (_) => throw Exception('Invalid artifact state'), loaded: (state) { - final artifacts = _genshinService.getArtifactsForCard().where((el) => !excludedKeys.contains(el.key)).toList(); + final artifacts = _genshinService.artifacts.getArtifactsForCard().where((el) => !excludedKeys.contains(el.key)).toList(); expect(state.artifacts.length, artifacts.length); expect(state.collapseNotes, false); expect(state.rarity, 0); @@ -85,10 +85,12 @@ void main() { blocTest( 'should return only one item', build: () => ArtifactsBloc(_genshinService), - act: (bloc) => bloc..add(const ArtifactsEvent.init())..add(const ArtifactsEvent.searchChanged(search: wandererSearch)), + act: (bloc) => bloc + ..add(const ArtifactsEvent.init()) + ..add(const ArtifactsEvent.searchChanged(search: wandererSearch)), skip: 1, expect: () { - final artifacts = _genshinService.getArtifactsForCard().where((el) => el.key == wanderersKey).toList(); + final artifacts = _genshinService.artifacts.getArtifactsForCard().where((el) => el.key == wanderersKey).toList(); return [ ArtifactsState.loaded( artifacts: artifacts, @@ -108,7 +110,9 @@ void main() { blocTest( 'should not return any item', build: () => ArtifactsBloc(_genshinService), - act: (bloc) => bloc..add(const ArtifactsEvent.init())..add(const ArtifactsEvent.searchChanged(search: 'Keqing')), + act: (bloc) => bloc + ..add(const ArtifactsEvent.init()) + ..add(const ArtifactsEvent.searchChanged(search: 'Keqing')), skip: 1, expect: () => const [ ArtifactsState.loaded( @@ -140,7 +144,7 @@ void main() { ..add(const ArtifactsEvent.applyFilterChanges()), skip: 6, expect: () { - final artifacts = _genshinService.getArtifactsForCard().where((el) => el.key == wanderersKey).toList(); + final artifacts = _genshinService.artifacts.getArtifactsForCard().where((el) => el.key == wanderersKey).toList(); return [ ArtifactsState.loaded( artifacts: artifacts, @@ -168,7 +172,7 @@ void main() { ..add(const ArtifactsEvent.cancelChanges()), skip: 4, expect: () { - final artifacts = _genshinService.getArtifactsForCard().toList(); + final artifacts = _genshinService.artifacts.getArtifactsForCard().toList(); return [ ArtifactsState.loaded( artifacts: artifacts, @@ -196,7 +200,7 @@ void main() { ..add(const ArtifactsEvent.resetFilters()), skip: 5, expect: () { - final artifacts = _genshinService.getArtifactsForCard(); + final artifacts = _genshinService.artifacts.getArtifactsForCard(); return [ ArtifactsState.loaded( artifacts: artifacts, diff --git a/test/application/banner_history/banner_history_bloc_test.dart b/test/application/banner_history/banner_history_bloc_test.dart index 45346e36d..00d66bdf1 100644 --- a/test/application/banner_history/banner_history_bloc_test.dart +++ b/test/application/banner_history/banner_history_bloc_test.dart @@ -32,8 +32,8 @@ void main() { await _genshinService.init(settingsService.language); - _characterBanners.addAll(_genshinService.getBannerHistory(BannerHistoryItemType.character)); - _weaponBanners.addAll(_genshinService.getBannerHistory(BannerHistoryItemType.weapon)); + _characterBanners.addAll(_genshinService.bannerHistory.getBannerHistory(BannerHistoryItemType.character)); + _weaponBanners.addAll(_genshinService.bannerHistory.getBannerHistory(BannerHistoryItemType.weapon)); }); }); @@ -237,7 +237,7 @@ void main() { verify: (bloc) { checkCommonState(bloc.state, type: BannerHistoryItemType.weapon, sortType: BannerHistorySortType.nameDesc, selectedVersions: [1.1]); final itemsForSearch = bloc.getItemsForSearch(); - final banners = _genshinService.getBanners(bloc.state.selectedVersions.first); + final banners = _genshinService.bannerHistory.getBanners(bloc.state.selectedVersions.first); final expectedCount = banners.where((el) => el.type == BannerHistoryItemType.weapon).expand((el) => el.items).map((e) => e.key).toSet().length; final expectedItems = bloc.state.banners.map((e) => e.key).toSet().toList(); expect(expectedCount, 14); diff --git a/test/application/characters/characters_bloc_test.dart b/test/application/characters/characters_bloc_test.dart index 4266a197e..725ee9058 100644 --- a/test/application/characters/characters_bloc_test.dart +++ b/test/application/characters/characters_bloc_test.dart @@ -40,7 +40,7 @@ void main() { build: () => CharactersBloc(_genshinService, _settingsService), act: (bloc) => bloc.add(const CharactersEvent.init()), expect: () { - final characters = _genshinService.getCharactersForCard(); + final characters = _genshinService.characters.getCharactersForCard(); return [ CharactersState.loaded( characters: characters, @@ -69,7 +69,7 @@ void main() { emittedState.map( loading: (_) => throw Exception('Invalid artifact state'), loaded: (state) { - final characters = _genshinService.getCharactersForCard().where((el) => !excludedKeys.contains(el.key)).toList(); + final characters = _genshinService.characters.getCharactersForCard().where((el) => !excludedKeys.contains(el.key)).toList(); expect(state.characters.length, characters.length); expect(state.showCharacterDetails, true); expect(state.rarity, 0); @@ -93,7 +93,7 @@ void main() { ..add(const CharactersEvent.searchChanged(search: keqingSearch)), skip: 1, expect: () { - final characters = _genshinService.getCharactersForCard().where((el) => el.key == keqingKey).toList(); + final characters = _genshinService.characters.getCharactersForCard().where((el) => el.key == keqingKey).toList(); return [ CharactersState.loaded( characters: characters, @@ -167,7 +167,7 @@ void main() { ..add(const CharactersEvent.applyFilterChanges()), skip: 18, expect: () { - final characters = _genshinService.getCharactersForCard().where((el) => el.key == keqingKey).toList(); + final characters = _genshinService.characters.getCharactersForCard().where((el) => el.key == keqingKey).toList(); return [ CharactersState.loaded( characters: characters, @@ -216,7 +216,8 @@ void main() { ..add(const CharactersEvent.cancelChanges()), skip: 15, expect: () { - final characters = _genshinService.getCharactersForCard().where((el) => el.elementType == ElementType.electro && el.stars == 5).toList(); + final characters = + _genshinService.characters.getCharactersForCard().where((el) => el.elementType == ElementType.electro && el.stars == 5).toList(); return [ CharactersState.loaded( characters: characters, @@ -253,7 +254,7 @@ void main() { ..add(const CharactersEvent.resetFilters()), skip: 10, expect: () { - final characters = _genshinService.getCharactersForCard(); + final characters = _genshinService.characters.getCharactersForCard(); return [ CharactersState.loaded( characters: characters, diff --git a/test/application/characters_birthdays_per_month/characters_birthdays_per_month_bloc_test.dart b/test/application/characters_birthdays_per_month/characters_birthdays_per_month_bloc_test.dart index 739d9b2da..9063f8e2d 100644 --- a/test/application/characters_birthdays_per_month/characters_birthdays_per_month_bloc_test.dart +++ b/test/application/characters_birthdays_per_month/characters_birthdays_per_month_bloc_test.dart @@ -45,7 +45,7 @@ void main() { build: () => CharactersBirthdaysPerMonthBloc(_genshinService, _telemetryService), act: (bloc) => bloc.add(const CharactersBirthdaysPerMonthEvent.init(month: DateTime.january)), expect: () { - final characters = _genshinService.getCharacterBirthdays(month: DateTime.january); + final characters = _genshinService.characters.getCharacterBirthdays(month: DateTime.january); return [CharactersBirthdaysPerMonthState.loaded(characters: characters, month: DateTime.january)]; }, ); diff --git a/test/application/characters_per_region/characters_per_region_bloc_test.dart b/test/application/characters_per_region/characters_per_region_bloc_test.dart index d74c8e9d9..9aed11c97 100644 --- a/test/application/characters_per_region/characters_per_region_bloc_test.dart +++ b/test/application/characters_per_region/characters_per_region_bloc_test.dart @@ -42,7 +42,7 @@ void main() { build: () => CharactersPerRegionBloc(_genshinService), act: (bloc) => bloc.add(const CharactersPerRegionEvent.init(type: RegionType.inazuma)), expect: () { - final items = _genshinService.getCharactersForItemsByRegion(RegionType.inazuma); + final items = _genshinService.characters.getCharactersForItemsByRegion(RegionType.inazuma); return [CharactersPerRegionState.loaded(regionType: RegionType.inazuma, items: items)]; }, ); diff --git a/test/application/characters_per_region_gender/characters_per_region_gender_bloc_test.dart b/test/application/characters_per_region_gender/characters_per_region_gender_bloc_test.dart index 5e5c8a6bd..2ebd65c4c 100644 --- a/test/application/characters_per_region_gender/characters_per_region_gender_bloc_test.dart +++ b/test/application/characters_per_region_gender/characters_per_region_gender_bloc_test.dart @@ -44,8 +44,8 @@ void main() { ..add(const CharactersPerRegionGenderEvent.init(regionType: RegionType.inazuma, onlyFemales: true)) ..add(const CharactersPerRegionGenderEvent.init(regionType: RegionType.inazuma, onlyFemales: false)), expect: () { - final females = _genshinService.getCharactersForItemsByRegionAndGender(RegionType.inazuma, true); - final males = _genshinService.getCharactersForItemsByRegionAndGender(RegionType.inazuma, false); + final females = _genshinService.characters.getCharactersForItemsByRegionAndGender(RegionType.inazuma, true); + final males = _genshinService.characters.getCharactersForItemsByRegionAndGender(RegionType.inazuma, false); return [ CharactersPerRegionGenderState.loaded(regionType: RegionType.inazuma, onlyFemales: true, items: females), CharactersPerRegionGenderState.loaded(regionType: RegionType.inazuma, onlyFemales: false, items: males), diff --git a/test/application/charts/birthdays/chart_birthdays_bloc_test.dart b/test/application/charts/birthdays/chart_birthdays_bloc_test.dart index b7c82f069..d84763d98 100644 --- a/test/application/charts/birthdays/chart_birthdays_bloc_test.dart +++ b/test/application/charts/birthdays/chart_birthdays_bloc_test.dart @@ -38,7 +38,7 @@ void main() { build: () => ChartBirthdaysBloc(_genshinService), act: (bloc) => bloc.add(const ChartBirthdaysEvent.init()), expect: () { - final birthdays = _genshinService.getCharacterBirthdaysForCharts(); + final birthdays = _genshinService.characters.getCharacterBirthdaysForCharts(); return [ChartBirthdaysState.loaded(birthdays: birthdays)]; }, ); diff --git a/test/application/charts/elements/chart_elements_bloc_test.dart b/test/application/charts/elements/chart_elements_bloc_test.dart index 6df19bacf..f2e5775b9 100644 --- a/test/application/charts/elements/chart_elements_bloc_test.dart +++ b/test/application/charts/elements/chart_elements_bloc_test.dart @@ -28,7 +28,7 @@ void main() { return Future(() async { await _genshinService.init(AppLanguageType.english); - _versions = _genshinService.getBannerHistoryVersions(SortDirectionType.asc); + _versions = _genshinService.bannerHistory.getBannerHistoryVersions(SortDirectionType.asc); }); }); @@ -49,8 +49,8 @@ void main() { final secondLastVersion = _versions.first + 8 * gameVersionIncrementsBy; return [ ChartElementsState.loaded( - elements: _genshinService.getElementsForCharts(_versions.first, firstLastVersion), - filteredElements: _genshinService.getElementsForCharts(_versions.first, firstLastVersion), + elements: _genshinService.bannerHistory.getElementsForCharts(_versions.first, firstLastVersion), + filteredElements: _genshinService.bannerHistory.getElementsForCharts(_versions.first, firstLastVersion), firstVersion: _versions.first, lastVersion: firstLastVersion, maxNumberOfColumns: 10, @@ -60,8 +60,8 @@ void main() { canGoToPreviousPage: false, ), ChartElementsState.loaded( - elements: _genshinService.getElementsForCharts(_versions.first, secondLastVersion), - filteredElements: _genshinService.getElementsForCharts(_versions.first, secondLastVersion), + elements: _genshinService.bannerHistory.getElementsForCharts(_versions.first, secondLastVersion), + filteredElements: _genshinService.bannerHistory.getElementsForCharts(_versions.first, secondLastVersion), firstVersion: _versions.first, lastVersion: secondLastVersion, maxNumberOfColumns: 8, @@ -104,7 +104,7 @@ void main() { expect: () { final fromVersion = _versions.first; final untilVersion = fromVersion + 4 * gameVersionIncrementsBy; - final elements = _genshinService.getElementsForCharts(fromVersion, untilVersion); + final elements = _genshinService.bannerHistory.getElementsForCharts(fromVersion, untilVersion); final filteredElements = elements.where((el) => el.type == ElementType.electro || el.type == ElementType.anemo).toList(); return [ ChartElementsState.loaded( @@ -134,7 +134,7 @@ void main() { expect: () { final fromVersion = _versions.first; final untilVersion = fromVersion + 4 * gameVersionIncrementsBy; - final elements = _genshinService.getElementsForCharts(fromVersion, untilVersion); + final elements = _genshinService.bannerHistory.getElementsForCharts(fromVersion, untilVersion); return [ ChartElementsState.loaded( firstVersion: fromVersion, @@ -163,7 +163,7 @@ void main() { expect: () { final fromVersion = (_versions.first + gameVersionIncrementsBy).truncateToDecimalPlaces(); final untilVersion = fromVersion + 4 * gameVersionIncrementsBy; - final elements = _genshinService.getElementsForCharts(fromVersion, untilVersion); + final elements = _genshinService.bannerHistory.getElementsForCharts(fromVersion, untilVersion); return [ ChartElementsState.loaded( firstVersion: fromVersion, @@ -210,7 +210,7 @@ void main() { expect: () { final fromVersion = _versions.first; final untilVersion = fromVersion + 4 * gameVersionIncrementsBy; - final elements = _genshinService.getElementsForCharts(fromVersion, untilVersion); + final elements = _genshinService.bannerHistory.getElementsForCharts(fromVersion, untilVersion); return [ ChartElementsState.loaded( firstVersion: fromVersion, @@ -258,7 +258,7 @@ void main() { expect: () { final fromVersion = _versions.first; final untilVersion = fromVersion + 4 * gameVersionIncrementsBy; - final elements = _genshinService.getElementsForCharts(fromVersion, untilVersion); + final elements = _genshinService.bannerHistory.getElementsForCharts(fromVersion, untilVersion); return [ ChartElementsState.loaded( firstVersion: fromVersion, @@ -304,7 +304,7 @@ void main() { expect: () { final fromVersion = _versions.last - 4 * gameVersionIncrementsBy; final untilVersion = _versions.last; - final elements = _genshinService.getElementsForCharts(fromVersion, untilVersion); + final elements = _genshinService.bannerHistory.getElementsForCharts(fromVersion, untilVersion); return [ ChartElementsState.loaded( firstVersion: fromVersion, diff --git a/test/application/charts/genders/chart_genders_bloc_test.dart b/test/application/charts/genders/chart_genders_bloc_test.dart index bc6e9f2bd..c66ebc7b3 100644 --- a/test/application/charts/genders/chart_genders_bloc_test.dart +++ b/test/application/charts/genders/chart_genders_bloc_test.dart @@ -37,7 +37,7 @@ void main() { build: () => ChartGendersBloc(_genshinService), act: (bloc) => bloc.add(const ChartGendersEvent.init()), expect: () { - final items = _genshinService.getCharacterGendersForCharts(); + final items = _genshinService.characters.getCharacterGendersForCharts(); final maxCount = max(items.map((e) => e.femaleCount).reduce(max), items.map((e) => e.maleCount).reduce(max)); return [ChartGendersState.loaded(genders: items, maxCount: maxCount)]; }, diff --git a/test/application/charts/regions/chart_regions_bloc_test.dart b/test/application/charts/regions/chart_regions_bloc_test.dart index 8426c9824..830872b28 100644 --- a/test/application/charts/regions/chart_regions_bloc_test.dart +++ b/test/application/charts/regions/chart_regions_bloc_test.dart @@ -37,7 +37,7 @@ void main() { build: () => ChartRegionsBloc(_genshinService), act: (bloc) => bloc.add(const ChartRegionsEvent.init()), expect: () { - final items = _genshinService.getCharacterRegionsForCharts(); + final items = _genshinService.characters.getCharacterRegionsForCharts(); final maxCount = items.map((e) => e.quantity).reduce(max); return [ChartRegionsState.loaded(maxCount: maxCount, items: items)]; }, diff --git a/test/application/custom_build/custom_build_bloc_test.dart b/test/application/custom_build/custom_build_bloc_test.dart index 9c857e21c..84340f27f 100644 --- a/test/application/custom_build/custom_build_bloc_test.dart +++ b/test/application/custom_build/custom_build_bloc_test.dart @@ -53,8 +53,8 @@ void main() { CustomBuildBloc _getBloc() => CustomBuildBloc(_genshinService, _dataService, _telemetryService, _loggingService, _customBuildsBloc); Future _saveCustomBuild(String charKey) async { - final artifact = _genshinService.getArtifactForCard(_thunderingFuryKey); - final weapon = _genshinService.getWeapon(_aquilaFavoniaKey); + final artifact = _genshinService.artifacts.getArtifactForCard(_thunderingFuryKey); + final weapon = _genshinService.weapons.getWeapon(_aquilaFavoniaKey); return _dataService.customBuilds.saveCustomBuild( charKey, '$charKey pro DPS', @@ -186,7 +186,7 @@ void main() { act: (bloc) => bloc.add(const CustomBuildEvent.load(initialTitle: 'DPS PRO')), verify: (bloc) => bloc.state.maybeMap( loaded: (state) { - final character = _genshinService.getCharactersForCard().first; + final character = _genshinService.characters.getCharactersForCard().first; expect(state.title, 'DPS PRO'); expect(state.type, CharacterRoleType.dps); expect(state.subType, CharacterRoleSubType.none); @@ -598,7 +598,7 @@ void main() { 'stat changed', build: () => _getBloc(), act: (bloc) { - final weapon = _genshinService.getWeapon(_aquilaFavoniaKey); + final weapon = _genshinService.weapons.getWeapon(_aquilaFavoniaKey); return bloc ..add(const CustomBuildEvent.load(initialTitle: 'DPS PRO')) ..add(const CustomBuildEvent.characterChanged(newKey: _keqingKey)) @@ -607,7 +607,7 @@ void main() { }, verify: (bloc) => bloc.state.maybeMap( loaded: (state) { - final stat = _genshinService.getWeapon(_aquilaFavoniaKey).stats[3]; + final stat = _genshinService.weapons.getWeapon(_aquilaFavoniaKey).stats[3]; expect(state.weapons.length == 1, true); expect(state.weapons.first.key == _aquilaFavoniaKey, true); expect(state.weapons.first.stat == stat, true); @@ -886,7 +886,7 @@ void main() { 'all stuff was set', build: () => _getBloc(), act: (bloc) { - final weapon = _genshinService.getWeapon(_aquilaFavoniaKey); + final weapon = _genshinService.weapons.getWeapon(_aquilaFavoniaKey); return bloc ..add(const CustomBuildEvent.load(initialTitle: 'DPS PRO')) ..add(const CustomBuildEvent.characterChanged(newKey: _keqingKey)) @@ -918,7 +918,7 @@ void main() { }, verify: (bloc) => bloc.state.maybeMap( loaded: (state) { - final stat = _genshinService.getWeapon(_aquilaFavoniaKey).stats.first; + final stat = _genshinService.weapons.getWeapon(_aquilaFavoniaKey).stats.first; expect(state.character.key, _keqingKey); expect(state.isRecommended, true); expect(state.showOnCharacterDetail, false); diff --git a/test/application/custom_builds/custom_builds_bloc_test.dart b/test/application/custom_builds/custom_builds_bloc_test.dart index 5b01f77b4..3f4800fb1 100644 --- a/test/application/custom_builds/custom_builds_bloc_test.dart +++ b/test/application/custom_builds/custom_builds_bloc_test.dart @@ -42,8 +42,8 @@ void main() { }); Future _saveCustomBuild(String charKey) async { - final artifact = _genshinService.getArtifactForCard(_thunderingFuryKey); - final weapon = _genshinService.getWeapon(_aquilaFavoniaKey); + final artifact = _genshinService.artifacts.getArtifactForCard(_thunderingFuryKey); + final weapon = _genshinService.weapons.getWeapon(_aquilaFavoniaKey); return _dataService.customBuilds.saveCustomBuild( charKey, '$charKey pro DPS', diff --git a/test/application/home/home_bloc_test.dart b/test/application/home/home_bloc_test.dart index ccaa90b69..736995ce8 100644 --- a/test/application/home/home_bloc_test.dart +++ b/test/application/home/home_bloc_test.dart @@ -130,10 +130,10 @@ void main() { bloc.state.map( loading: (_) => throw Exception('Invalid state'), loaded: (state) { - final charMaterials = _genshinService.getCharacterAscensionMaterials(day); - final weaponMaterials = _genshinService.getWeaponAscensionMaterials(day); + final charMaterials = _genshinService.characters.getCharacterAscensionMaterials(day); + final weaponMaterials = _genshinService.weapons.getWeaponAscensionMaterials(day); final now = DateTime.now(); - final charsForBirthday = _genshinService.getCharacterBirthdays(month: now.month, day: now.day); + final charsForBirthday = _genshinService.characters.getCharacterBirthdays(month: now.month, day: now.day); _checkState(state, AppServerResetTimeType.northAmerica, checkServerDate: false); expect(state.charAscMaterials.length, charMaterials.length); expect(state.weaponAscMaterials.length, weaponMaterials.length); diff --git a/test/application/inventory/inventory_bloc_test.dart b/test/application/inventory/inventory_bloc_test.dart index a6d7ecf2f..44098b3e2 100644 --- a/test/application/inventory/inventory_bloc_test.dart +++ b/test/application/inventory/inventory_bloc_test.dart @@ -69,8 +69,8 @@ void main() { //here I skip only 2 cause the init event does not make an state change skip: 2, expect: () { - final character = _genshinService.getCharacterForCard(_keqingKey); - final weapon = _genshinService.getWeaponForCard(_aquilaFavoniaKey); + final character = _genshinService.characters.getCharacterForCard(_keqingKey); + final weapon = _genshinService.weapons.getWeaponForCard(_aquilaFavoniaKey); final materials = _dataService.inventory.getAllMaterialsInInventory(); final material = materials.firstWhere((el) => el.key == _moraKey); expect(material.quantity, 20000); @@ -96,7 +96,7 @@ void main() { ..add(const InventoryEvent.addCharacter(key: _keqingKey)), skip: 1, expect: () { - final character = _genshinService.getCharacterForCard(_keqingKey); + final character = _genshinService.characters.getCharacterForCard(_keqingKey); final materials = _dataService.inventory.getAllMaterialsInInventory(); return [ InventoryState.loaded( @@ -119,7 +119,7 @@ void main() { ..add(const InventoryEvent.addWeapon(key: _aquilaFavoniaKey)), skip: 1, expect: () { - final weapon = _genshinService.getWeaponForCard(_aquilaFavoniaKey); + final weapon = _genshinService.weapons.getWeaponForCard(_aquilaFavoniaKey); final materials = _dataService.inventory.getAllMaterialsInInventory(); return [ InventoryState.loaded( diff --git a/test/application/materials/materials_bloc_test.dart b/test/application/materials/materials_bloc_test.dart index ff0fa25da..da5010558 100644 --- a/test/application/materials/materials_bloc_test.dart +++ b/test/application/materials/materials_bloc_test.dart @@ -36,7 +36,7 @@ void main() { build: () => MaterialsBloc(_genshinService), act: (bloc) => bloc.add(const MaterialsEvent.init()), expect: () { - final materials = _genshinService.getAllMaterialsForCard(); + final materials = _genshinService.materials.getAllMaterialsForCard(); return [ MaterialsState.loaded( materials: sortMaterialsByGrouping(materials, SortDirectionType.asc), @@ -60,7 +60,7 @@ void main() { emittedState.map( loading: (_) => throw Exception('Invalid artifact state'), loaded: (state) { - final materials = _genshinService.getAllMaterialsForCard().where((el) => !_excludedKeys.contains(el.key)).toList(); + final materials = _genshinService.materials.getAllMaterialsForCard().where((el) => !_excludedKeys.contains(el.key)).toList(); expect(state.materials.length, materials.length); expect(state.rarity, 0); @@ -84,7 +84,7 @@ void main() { ..add(const MaterialsEvent.searchChanged(search: _search)), skip: 1, expect: () { - final material = _genshinService.getMaterialForCard(_key); + final material = _genshinService.materials.getMaterialForCard(_key); return [ MaterialsState.loaded( materials: [material], @@ -136,7 +136,7 @@ void main() { ..add(const MaterialsEvent.applyFilterChanges()), skip: 6, expect: () { - final material = _genshinService.getMaterialForCard(_key); + final material = _genshinService.materials.getMaterialForCard(_key); return [ MaterialsState.loaded( materials: [material], @@ -168,7 +168,8 @@ void main() { ..add(const MaterialsEvent.cancelChanges()), skip: 7, expect: () { - final materials = _genshinService.getAllMaterialsForCard().where((el) => el.type == MaterialType.currency && el.rarity == 5).toList(); + final materials = + _genshinService.materials.getAllMaterialsForCard().where((el) => el.type == MaterialType.currency && el.rarity == 5).toList(); return [ MaterialsState.loaded( materials: sortMaterialsByGrouping(materials, SortDirectionType.desc), @@ -198,7 +199,7 @@ void main() { ..add(const MaterialsEvent.resetFilters()), skip: 6, expect: () { - final materials = _genshinService.getAllMaterialsForCard(); + final materials = _genshinService.materials.getAllMaterialsForCard(); return [ MaterialsState.loaded( materials: sortMaterialsByGrouping(materials, SortDirectionType.asc), diff --git a/test/application/monsters/monsters_bloc_test.dart b/test/application/monsters/monsters_bloc_test.dart index bbb62ed13..853fa2c05 100644 --- a/test/application/monsters/monsters_bloc_test.dart +++ b/test/application/monsters/monsters_bloc_test.dart @@ -35,7 +35,7 @@ void main() { build: () => MonstersBloc(_genshinService), act: (bloc) => bloc.add(const MonstersEvent.init()), expect: () { - final monsters = _genshinService.getAllMonstersForCard()..sort((x, y) => x.name.compareTo(y.name)); + final monsters = _genshinService.monsters.getAllMonstersForCard()..sort((x, y) => x.name.compareTo(y.name)); return [ MonstersState.loaded( monsters: monsters, @@ -57,7 +57,7 @@ void main() { emittedState.map( loading: (_) => throw Exception('Invalid artifact state'), loaded: (state) { - final monsters = _genshinService.getAllMonstersForCard().where((el) => !_excludedKeys.contains(el.key)).toList(); + final monsters = _genshinService.monsters.getAllMonstersForCard().where((el) => !_excludedKeys.contains(el.key)).toList(); expect(state.monsters.length, monsters.length); expect(state.filterType, MonsterFilterType.name); @@ -74,10 +74,12 @@ void main() { blocTest( 'should return only one item', build: () => MonstersBloc(_genshinService), - act: (bloc) => bloc..add(const MonstersEvent.init())..add(const MonstersEvent.searchChanged(search: _search)), + act: (bloc) => bloc + ..add(const MonstersEvent.init()) + ..add(const MonstersEvent.searchChanged(search: _search)), skip: 1, expect: () { - final monster = _genshinService.getMonsterForCard(_key); + final monster = _genshinService.monsters.getMonsterForCard(_key); return [ MonstersState.loaded( monsters: [monster], @@ -94,7 +96,9 @@ void main() { blocTest( 'should not return any item', build: () => MonstersBloc(_genshinService), - act: (bloc) => bloc..add(const MonstersEvent.init())..add(const MonstersEvent.searchChanged(search: 'Keqing')), + act: (bloc) => bloc + ..add(const MonstersEvent.init()) + ..add(const MonstersEvent.searchChanged(search: 'Keqing')), skip: 1, expect: () => const [ MonstersState.loaded( @@ -123,7 +127,7 @@ void main() { //I use 4 here cause MonsterFilterType.name does not emit a new state since it is the only value skip: 4, expect: () { - final monster = _genshinService.getMonsterForCard(_key); + final monster = _genshinService.monsters.getMonsterForCard(_key); return [ MonstersState.loaded( monsters: [monster], @@ -152,7 +156,7 @@ void main() { ..add(const MonstersEvent.cancelChanges()), skip: 6, expect: () { - final monsters = _genshinService.getAllMonstersForCard().where((el) => el.type == MonsterType.boss).toList() + final monsters = _genshinService.monsters.getAllMonstersForCard().where((el) => el.type == MonsterType.boss).toList() ..sort((x, y) => y.name.compareTo(x.name)); return [ MonstersState.loaded( @@ -179,7 +183,7 @@ void main() { ..add(const MonstersEvent.resetFilters()), skip: 4, expect: () { - final monsters = _genshinService.getAllMonstersForCard()..sort((x, y) => x.name.compareTo(y.name)); + final monsters = _genshinService.monsters.getAllMonstersForCard()..sort((x, y) => x.name.compareTo(y.name)); return [ MonstersState.loaded( monsters: monsters, diff --git a/test/application/notification/notification_bloc_test.dart b/test/application/notification/notification_bloc_test.dart index 175ab9217..486b6347e 100644 --- a/test/application/notification/notification_bloc_test.dart +++ b/test/application/notification/notification_bloc_test.dart @@ -163,7 +163,7 @@ void main() { blocTest( 'an expedition notification', setUp: () async { - final material = _genshinService.getAllMaterialsThatCanBeObtainedFromAnExpedition().first; + final material = _genshinService.materials.getAllMaterialsThatCanBeObtainedFromAnExpedition().first; await _dataService.notifications.saveExpeditionNotification( material.key, _defaultTitle, @@ -195,7 +195,7 @@ void main() { blocTest( 'a farming artifact notification', setUp: () async { - final artifact = _genshinService.getArtifactsForCard().first; + final artifact = _genshinService.artifacts.getArtifactsForCard().first; await _dataService.notifications.saveFarmingArtifactNotification( artifact.key, ArtifactFarmingTimeType.twelveHours, @@ -225,7 +225,7 @@ void main() { blocTest( 'a farming material notification', setUp: () async { - final material = _genshinService.getAllMaterialsThatHaveAFarmingRespawnDuration().first; + final material = _genshinService.materials.getAllMaterialsThatHaveAFarmingRespawnDuration().first; await _dataService.notifications.saveFarmingMaterialNotification(material.key, _defaultTitle, _defaultBody, note: _defaultNote); }, tearDown: () async { @@ -248,7 +248,7 @@ void main() { blocTest( 'a gadget notification', setUp: () async { - final gadget = _genshinService.getAllGadgetsForNotifications().first; + final gadget = _genshinService.gadgets.getAllGadgetsForNotifications().first; await _dataService.notifications.saveGadgetNotification(gadget.key, _defaultTitle, _defaultBody, note: _defaultNote); }, tearDown: () async { @@ -271,7 +271,7 @@ void main() { blocTest( 'a furniture notification', setUp: () async { - final furniture = _genshinService.getDefaultFurnitureForNotifications(); + final furniture = _genshinService.furniture.getDefaultFurnitureForNotifications(); await _dataService.notifications.saveFurnitureNotification( furniture.key, FurnitureCraftingTimeType.fourteenHours, @@ -334,7 +334,7 @@ void main() { blocTest( 'a weekly boss notification', setUp: () async { - final boss = _genshinService.getAllMonstersForCard().where((el) => el.type == MonsterType.boss).first; + final boss = _genshinService.monsters.getAllMonstersForCard().where((el) => el.type == MonsterType.boss).first; await _dataService.notifications.saveWeeklyBossNotification( boss.key, _settingsService.serverResetTime, @@ -395,13 +395,13 @@ void main() { key = _keqingKey; break; case AppNotificationItemType.weapon: - key = _genshinService.getWeaponsForCard().firstWhere((el) => el.rarity == 1).key; + key = _genshinService.weapons.getWeaponsForCard().firstWhere((el) => el.rarity == 1).key; break; case AppNotificationItemType.artifact: - key = _genshinService.getArtifactsForCard().first.key; + key = _genshinService.artifacts.getArtifactsForCard().first.key; break; case AppNotificationItemType.monster: - key = _genshinService.getAllMonstersForCard().firstWhere((el) => el.type == MonsterType.abyssOrder).key; + key = _genshinService.monsters.getAllMonstersForCard().firstWhere((el) => el.type == MonsterType.abyssOrder).key; break; case AppNotificationItemType.material: key = _fragileResinKey; @@ -599,7 +599,7 @@ void main() { 'on an existing notification', build: () => _buildBloc(), setUp: () async { - final artifact = _genshinService.getArtifactsForCard().first; + final artifact = _genshinService.artifacts.getArtifactsForCard().first; await _dataService.notifications.saveFarmingArtifactNotification( artifact.key, ArtifactFarmingTimeType.twelveHours, @@ -633,7 +633,7 @@ void main() { 'on a not saved notification', build: () => _buildBloc(), act: (bloc) { - final newMaterial = _genshinService.getAllMaterialsThatHaveAFarmingRespawnDuration().last; + final newMaterial = _genshinService.materials.getAllMaterialsThatHaveAFarmingRespawnDuration().last; return bloc ..add(const NotificationEvent.add(defaultTitle: _defaultTitle, defaultBody: _defaultBody)) ..add(const NotificationEvent.typeChanged(newValue: AppNotificationType.farmingMaterials)) @@ -643,7 +643,7 @@ void main() { farmingMaterial: (state) { _checkState(state, AppNotificationType.farmingMaterials, checkKey: false); _checkNotDirtyFields(state, shouldBeDirty: false); - final newMaterial = _genshinService.getAllMaterialsThatHaveAFarmingRespawnDuration().last; + final newMaterial = _genshinService.materials.getAllMaterialsThatHaveAFarmingRespawnDuration().last; expect(state.images.any((el) => el.isSelected && el.image == newMaterial.fullImagePath), isTrue); }, orElse: () => throw Exception('Invalid state'), @@ -654,7 +654,7 @@ void main() { 'on an existing notification', build: () => _buildBloc(), setUp: () async { - final material = _genshinService.getAllMaterialsThatHaveAFarmingRespawnDuration().first; + final material = _genshinService.materials.getAllMaterialsThatHaveAFarmingRespawnDuration().first; await _dataService.notifications.saveFarmingMaterialNotification(material.key, _defaultTitle, _defaultBody, note: _defaultNote); }, tearDown: () async { @@ -662,7 +662,7 @@ void main() { }, act: (bloc) { final notification = _dataService.notifications.getAllNotifications().first; - final newMaterial = _genshinService.getAllMaterialsThatHaveAFarmingRespawnDuration().last; + final newMaterial = _genshinService.materials.getAllMaterialsThatHaveAFarmingRespawnDuration().last; return bloc ..add(NotificationEvent.edit(key: notification.key, type: AppNotificationType.farmingMaterials)) ..add(NotificationEvent.imageChanged(newValue: newMaterial.fullImagePath)); @@ -671,7 +671,7 @@ void main() { farmingMaterial: (state) { _checkState(state, AppNotificationType.farmingMaterials, checkKey: false); _checkNotDirtyFields(state); - final newMaterial = _genshinService.getAllMaterialsThatHaveAFarmingRespawnDuration().last; + final newMaterial = _genshinService.materials.getAllMaterialsThatHaveAFarmingRespawnDuration().last; expect(state.images.any((el) => el.isSelected && el.image == newMaterial.fullImagePath), isTrue); }, orElse: () => throw Exception('Invalid state'), @@ -684,7 +684,7 @@ void main() { 'on a not saved notification', build: () => _buildBloc(), act: (bloc) { - final gadget = _genshinService.getAllGadgetsForNotifications().last; + final gadget = _genshinService.gadgets.getAllGadgetsForNotifications().last; return bloc ..add(const NotificationEvent.add(defaultTitle: _defaultTitle, defaultBody: _defaultBody)) ..add(const NotificationEvent.typeChanged(newValue: AppNotificationType.gadget)) @@ -694,7 +694,7 @@ void main() { gadget: (state) { _checkState(state, AppNotificationType.gadget, checkKey: false); _checkNotDirtyFields(state, shouldBeDirty: false); - final gadget = _genshinService.getAllGadgetsForNotifications().last; + final gadget = _genshinService.gadgets.getAllGadgetsForNotifications().last; expect(state.images.any((el) => el.isSelected && el.image == gadget.fullImagePath), isTrue); }, orElse: () => throw Exception('Invalid state'), @@ -705,7 +705,7 @@ void main() { 'on an existing notification', build: () => _buildBloc(), setUp: () async { - final gadget = _genshinService.getAllGadgetsForNotifications().first; + final gadget = _genshinService.gadgets.getAllGadgetsForNotifications().first; await _dataService.notifications.saveGadgetNotification(gadget.key, _defaultTitle, _defaultBody, note: _defaultNote); }, tearDown: () async { @@ -713,7 +713,7 @@ void main() { }, act: (bloc) { final notification = _dataService.notifications.getAllNotifications().first; - final gadget = _genshinService.getAllGadgetsForNotifications().last; + final gadget = _genshinService.gadgets.getAllGadgetsForNotifications().last; return bloc ..add(NotificationEvent.edit(key: notification.key, type: AppNotificationType.gadget)) ..add(NotificationEvent.imageChanged(newValue: gadget.fullImagePath)); @@ -722,7 +722,7 @@ void main() { gadget: (state) { _checkState(state, AppNotificationType.gadget, checkKey: false); _checkNotDirtyFields(state); - final gadget = _genshinService.getAllGadgetsForNotifications().last; + final gadget = _genshinService.gadgets.getAllGadgetsForNotifications().last; expect(state.images.any((el) => el.isSelected && el.image == gadget.fullImagePath), isTrue); }, orElse: () => throw Exception('Invalid state'), @@ -752,7 +752,7 @@ void main() { 'on an existing notification', build: () => _buildBloc(), setUp: () async { - final furniture = _genshinService.getDefaultFurnitureForNotifications(); + final furniture = _genshinService.furniture.getDefaultFurnitureForNotifications(); await _dataService.notifications.saveFurnitureNotification( furniture.key, FurnitureCraftingTimeType.sixteenHours, @@ -861,7 +861,7 @@ void main() { 'on an existing notification', build: () => _buildBloc(), setUp: () async { - final boss = _genshinService.getAllMonstersForCard().firstWhere((el) => el.type == MonsterType.boss).key; + final boss = _genshinService.monsters.getAllMonstersForCard().firstWhere((el) => el.type == MonsterType.boss).key; await _dataService.notifications.saveWeeklyBossNotification( boss, AppServerResetTimeType.northAmerica, @@ -874,7 +874,7 @@ void main() { await _dataService.deleteThemAll(); }, act: (bloc) { - final boss = _genshinService.getAllMonstersForCard().lastWhere((el) => el.type == MonsterType.boss); + final boss = _genshinService.monsters.getAllMonstersForCard().lastWhere((el) => el.type == MonsterType.boss); final notification = _dataService.notifications.getAllNotifications().first; return bloc ..add(NotificationEvent.edit(key: notification.key, type: AppNotificationType.weeklyBoss)) @@ -884,7 +884,7 @@ void main() { weeklyBoss: (state) { _checkState(state, AppNotificationType.weeklyBoss, checkKey: false); _checkNotDirtyFields(state); - final boss = _genshinService.getAllMonstersForCard().lastWhere((el) => el.type == MonsterType.boss); + final boss = _genshinService.monsters.getAllMonstersForCard().lastWhere((el) => el.type == MonsterType.boss); expect(state.images.any((el) => el.isSelected && el.image == boss.image), isTrue); }, orElse: () => throw Exception('Invalid state'), @@ -914,7 +914,7 @@ void main() { 'on an existing notification', build: () => _buildBloc(), setUp: () async { - final boss = _genshinService.getAllMonstersForCard().firstWhere((el) => el.type == MonsterType.boss).key; + final boss = _genshinService.monsters.getAllMonstersForCard().firstWhere((el) => el.type == MonsterType.boss).key; await _dataService.notifications.saveCustomNotification( boss, _defaultTitle, diff --git a/test/application/tier_list/tier_list_bloc_test.dart b/test/application/tier_list/tier_list_bloc_test.dart index 4bc5a7f59..eaeec8cbe 100644 --- a/test/application/tier_list/tier_list_bloc_test.dart +++ b/test/application/tier_list/tier_list_bloc_test.dart @@ -55,7 +55,7 @@ void main() { build: () => TierListBloc(_genshinService, _dataService, _telemetryService, _loggingService), act: (bloc) => bloc.add(const TierListEvent.init()), expect: () { - final defaultTierList = _genshinService.getDefaultCharacterTierList(TierListBloc.defaultColors); + final defaultTierList = _genshinService.characters.getDefaultCharacterTierList(TierListBloc.defaultColors); return [TierListState.loaded(rows: defaultTierList, charsAvailable: [], readyToSave: false)]; }, verify: (bloc) { @@ -66,7 +66,7 @@ void main() { blocTest( 'should return custom tier list', setUp: () async { - final defaultTierList = _genshinService.getDefaultCharacterTierList(TierListBloc.defaultColors); + final defaultTierList = _genshinService.characters.getDefaultCharacterTierList(TierListBloc.defaultColors); await _dataService.tierList.saveTierList([ TierListRowModel.row(tierText: 'SSS', tierColor: TierListBloc.defaultColors.first, items: defaultTierList.first.items), TierListRowModel.row(tierText: 'SS', tierColor: TierListBloc.defaultColors[1], items: defaultTierList.last.items), @@ -88,7 +88,7 @@ void main() { blocTest( 'custom tier list exist but a reset is made', setUp: () async { - final defaultTierList = _genshinService.getDefaultCharacterTierList(TierListBloc.defaultColors); + final defaultTierList = _genshinService.characters.getDefaultCharacterTierList(TierListBloc.defaultColors); await _dataService.tierList.saveTierList([ TierListRowModel.row(tierText: 'SSS', tierColor: TierListBloc.defaultColors.first, items: defaultTierList.first.items), TierListRowModel.row(tierText: 'SS', tierColor: TierListBloc.defaultColors[1], items: defaultTierList.last.items), @@ -97,7 +97,7 @@ void main() { build: () => TierListBloc(_genshinService, _dataService, _telemetryService, _loggingService), act: (bloc) => bloc.add(const TierListEvent.init(reset: true)), expect: () { - final defaultTierList = _genshinService.getDefaultCharacterTierList(TierListBloc.defaultColors); + final defaultTierList = _genshinService.characters.getDefaultCharacterTierList(TierListBloc.defaultColors); return [TierListState.loaded(rows: defaultTierList, charsAvailable: [], readyToSave: false)]; }, verify: (bloc) { @@ -131,7 +131,7 @@ void main() { ..add(const TierListEvent.init()) ..add(const TierListEvent.rowPositionChanged(index: 0, newIndex: 5)), verify: (bloc) { - final defaultTierList = _genshinService.getDefaultCharacterTierList(TierListBloc.defaultColors); + final defaultTierList = _genshinService.characters.getDefaultCharacterTierList(TierListBloc.defaultColors); final movedOne = defaultTierList.first; expect(movedOne.tierText, bloc.state.rows[5].tierText); }, @@ -158,7 +158,7 @@ void main() { }, build: () => TierListBloc(_genshinService, _dataService, _telemetryService, _loggingService), act: (bloc) { - final firstRow = _genshinService.getDefaultCharacterTierList(TierListBloc.defaultColors).first; + final firstRow = _genshinService.characters.getDefaultCharacterTierList(TierListBloc.defaultColors).first; return bloc ..add(const TierListEvent.init()) ..add(const TierListEvent.clearRow(index: 0)) @@ -177,13 +177,13 @@ void main() { }, build: () => TierListBloc(_genshinService, _dataService, _telemetryService, _loggingService), act: (bloc) { - final firstRow = _genshinService.getDefaultCharacterTierList(TierListBloc.defaultColors).first; + final firstRow = _genshinService.characters.getDefaultCharacterTierList(TierListBloc.defaultColors).first; return bloc ..add(const TierListEvent.init()) ..add(TierListEvent.deleteCharacterFromRow(index: 0, item: firstRow.items.first)); }, verify: (bloc) { - final firstRow = _genshinService.getDefaultCharacterTierList(TierListBloc.defaultColors).first; + final firstRow = _genshinService.characters.getDefaultCharacterTierList(TierListBloc.defaultColors).first; expect(bloc.state.rows.first.items.length, firstRow.items.length - 1); expect(bloc.state.charsAvailable.length, 1); }, @@ -201,7 +201,7 @@ void main() { ..add(const TierListEvent.init()) ..add(const TierListEvent.addNewRow(index: 0, above: true)), verify: (bloc) { - final defaultTierList = _genshinService.getDefaultCharacterTierList(TierListBloc.defaultColors); + final defaultTierList = _genshinService.characters.getDefaultCharacterTierList(TierListBloc.defaultColors); expect(bloc.state.rows.length, defaultTierList.length + 1); expect(bloc.state.rows.first.tierText != defaultTierList.first.tierText, isTrue); }, @@ -217,7 +217,7 @@ void main() { ..add(const TierListEvent.init()) ..add(const TierListEvent.addNewRow(index: 0, above: false)), verify: (bloc) { - final defaultTierList = _genshinService.getDefaultCharacterTierList(TierListBloc.defaultColors); + final defaultTierList = _genshinService.characters.getDefaultCharacterTierList(TierListBloc.defaultColors); expect(bloc.state.rows.length, defaultTierList.length + 1); expect(defaultTierList.any((el) => el.tierText == bloc.state.rows[1].tierText), isFalse); }, diff --git a/test/application/weapons/weapons_bloc_test.dart b/test/application/weapons/weapons_bloc_test.dart index 22e5c9147..fb9675d1f 100644 --- a/test/application/weapons/weapons_bloc_test.dart +++ b/test/application/weapons/weapons_bloc_test.dart @@ -40,7 +40,7 @@ void main() { build: () => WeaponsBloc(_genshinService, _settingsService), act: (bloc) => bloc.add(const WeaponsEvent.init()), expect: () { - final weapons = _genshinService.getWeaponsForCard()..sort((x, y) => x.rarity.compareTo(y.rarity)); + final weapons = _genshinService.weapons.getWeaponsForCard()..sort((x, y) => x.rarity.compareTo(y.rarity)); return [ WeaponsState.loaded( weapons: weapons, @@ -66,7 +66,7 @@ void main() { bloc.state.map( loading: (_) => throw Exception('Invalid artifact state'), loaded: (state) { - final weapons = _genshinService.getWeaponsForCard().where((el) => !excludedKeys.contains(el.key)).toList(); + final weapons = _genshinService.weapons.getWeaponsForCard().where((el) => !excludedKeys.contains(el.key)).toList(); expect(state.weapons.length, weapons.length); expect(state.showWeaponDetails, true); expect(state.rarity, 0); @@ -85,10 +85,12 @@ void main() { blocTest( 'should return only one item', build: () => WeaponsBloc(_genshinService, _settingsService), - act: (bloc) => bloc..add(const WeaponsEvent.init())..add(const WeaponsEvent.searchChanged(search: search)), + act: (bloc) => bloc + ..add(const WeaponsEvent.init()) + ..add(const WeaponsEvent.searchChanged(search: search)), skip: 1, expect: () { - final weapons = _genshinService.getWeaponsForCard().where((el) => el.key == key).toList(); + final weapons = _genshinService.weapons.getWeaponsForCard().where((el) => el.key == key).toList(); return [ WeaponsState.loaded( weapons: weapons, @@ -110,7 +112,9 @@ void main() { blocTest( 'should not return any item', build: () => WeaponsBloc(_genshinService, _settingsService), - act: (bloc) => bloc..add(const WeaponsEvent.init())..add(const WeaponsEvent.searchChanged(search: 'Wanderer')), + act: (bloc) => bloc + ..add(const WeaponsEvent.init()) + ..add(const WeaponsEvent.searchChanged(search: 'Wanderer')), skip: 1, expect: () => [ WeaponsState.loaded( @@ -149,7 +153,8 @@ void main() { ..add(const WeaponsEvent.applyFilterChanges()), skip: 11, expect: () { - final weapons = _genshinService.getWeaponsForCard().where((el) => el.key == key).toList()..sort((x, y) => y.baseAtk.compareTo(x.baseAtk)); + final weapons = _genshinService.weapons.getWeaponsForCard().where((el) => el.key == key).toList() + ..sort((x, y) => y.baseAtk.compareTo(x.baseAtk)); return [ WeaponsState.loaded( weapons: weapons, @@ -192,7 +197,7 @@ void main() { ..add(const WeaponsEvent.cancelChanges()), skip: 13, expect: () { - final weapons = _genshinService.getWeaponsForCard().where((el) => el.subStatType == StatType.physDmgBonus && el.rarity == 5).toList() + final weapons = _genshinService.weapons.getWeaponsForCard().where((el) => el.subStatType == StatType.physDmgBonus && el.rarity == 5).toList() ..sort((x, y) => y.subStatValue.compareTo(x.subStatValue)); return [ WeaponsState.loaded( @@ -228,7 +233,7 @@ void main() { ..add(const WeaponsEvent.resetFilters()), skip: 8, expect: () { - final weapons = _genshinService.getWeaponsForCard()..sort((x, y) => x.rarity.compareTo(y.rarity)); + final weapons = _genshinService.weapons.getWeaponsForCard()..sort((x, y) => x.rarity.compareTo(y.rarity)); return [ WeaponsState.loaded( weapons: weapons, diff --git a/test/common.dart b/test/common.dart index a4741944e..0769bcca2 100644 --- a/test/common.dart +++ b/test/common.dart @@ -84,7 +84,7 @@ void checkItemAscensionMaterialFileModel(GenshinService service, List service.getMaterial(material.key), returnsNormally); + expect(() => service.materials.getMaterial(material.key), returnsNormally); expect(material.quantity, greaterThanOrEqualTo(0)); } } diff --git a/test/infrastructure/data_service_test.dart b/test/infrastructure/data_service_test.dart index 79621523f..c3454b5f5 100644 --- a/test/infrastructure/data_service_test.dart +++ b/test/infrastructure/data_service_test.dart @@ -49,7 +49,7 @@ void main() { const sessionName = 'Keqing session'; final sessionKey = await _dataService.calculator.createCalAscMatSession(sessionName, 0); - final char = _genshinService.getCharacter('keqing'); + final char = _genshinService.characters.getCharacter('keqing'); const currentAscensionLevel = 1; const desiredAscensionLevel = 5; final currentSkillLevel = _calculatorService.getSkillLevelToUse(currentAscensionLevel, 1); diff --git a/test/infrastructure/genshin_service_test.dart b/test/infrastructure/genshin_service_test.dart index 220dbea39..5d44b0e68 100644 --- a/test/infrastructure/genshin_service_test.dart +++ b/test/infrastructure/genshin_service_test.dart @@ -50,9 +50,9 @@ void main() { for (final lang in languages) { await service.init(lang); - final characters = service.getCharactersForCard(); + final characters = service.characters.getCharactersForCard(); checkKeys(characters.map((e) => e.key).toList()); - final materialImgs = service.getAllMaterialsForCard().map((e) => e.image).toList(); + final materialImgs = service.materials.getAllMaterialsForCard().map((e) => e.image).toList(); for (final char in characters) { checkKey(char.key); expect(char.name, allOf([isNotEmpty, isNotNull])); @@ -75,7 +75,7 @@ void main() { final service = _getService(); for (final lang in languages) { await service.init(lang); - final weapons = service.getWeaponsForCard(); + final weapons = service.weapons.getWeaponsForCard(); checkKeys(weapons.map((e) => e.key).toList()); for (final weapon in weapons) { checkKey(weapon.key); @@ -92,7 +92,7 @@ void main() { final service = _getService(); for (final lang in languages) { await service.init(lang); - final artifacts = service.getArtifactsForCard(); + final artifacts = service.artifacts.getArtifactsForCard(); checkKeys(artifacts.map((e) => e.key).toList()); for (final artifact in artifacts) { checkKey(artifact.key); @@ -116,7 +116,7 @@ void main() { final service = _getService(); for (final lang in languages) { await service.init(lang); - final materials = service.getAllMaterialsForCard(); + final materials = service.materials.getAllMaterialsForCard(); checkKeys(materials.map((e) => e.key).toList()); for (final material in materials) { checkKey(material.key); @@ -132,7 +132,7 @@ void main() { final service = _getService(); for (final lang in languages) { await service.init(lang); - final monsters = service.getAllMonstersForCard(); + final monsters = service.monsters.getAllMonstersForCard(); checkKeys(monsters.map((e) => e.key).toList()); for (final monster in monsters) { checkKey(monster.key); @@ -148,10 +148,10 @@ void main() { final service = _getService(); await service.init(AppLanguageType.english); final localeService = _getLocaleService(AppLanguageType.english); - final characters = service.getCharactersForCard(); + final characters = service.characters.getCharactersForCard(); for (final character in characters) { final travelerKeys = ['traveler-geo', 'traveler-electro', 'traveler-anemo', 'traveler-hydro', 'traveler-pyro', 'traveler-cryo']; - final detail = service.getCharacter(character.key); + final detail = service.characters.getCharacter(character.key); final isTraveler = travelerKeys.contains(character.key); checkKey(detail.key); expect(detail.rarity, character.stars); @@ -221,7 +221,7 @@ void main() { expect(build.weaponKeys, isNotEmpty); expect(build.subStatsToFocus.length, greaterThanOrEqualTo(3)); for (final key in build.weaponKeys) { - final weapon = service.getWeapon(key); + final weapon = service.weapons.getWeapon(key); expect(weapon.type == detail.weaponType, isTrue); } @@ -232,10 +232,10 @@ void main() { expect(artifact.stats[0], equals(StatType.hp)); expect(artifact.stats[1], equals(StatType.atk)); if (artifact.oneKey != null) { - expect(() => service.getArtifact(artifact.oneKey!), returnsNormally); + expect(() => service.artifacts.getArtifact(artifact.oneKey!), returnsNormally); } else { for (final partial in artifact.multiples) { - expect(() => service.getArtifact(partial.key), returnsNormally); + expect(() => service.artifacts.getArtifact(partial.key), returnsNormally); expect(partial.quantity, inInclusiveRange(1, 2)); } } @@ -314,9 +314,9 @@ void main() { test('check for weapons', () async { final service = _getService(); await service.init(AppLanguageType.english); - final weapons = service.getWeaponsForCard(); + final weapons = service.weapons.getWeaponsForCard(); for (final weapon in weapons) { - final detail = service.getWeapon(weapon.key); + final detail = service.weapons.getWeapon(weapon.key); checkKey(detail.key); checkAsset(detail.fullImagePath); expect(detail.type, equals(weapon.type)); @@ -386,9 +386,9 @@ void main() { test('check for artifacts', () async { final service = _getService(); await service.init(AppLanguageType.english); - final artifacts = service.getArtifactsForCard(); + final artifacts = service.artifacts.getArtifactsForCard(); for (final artifact in artifacts) { - final detail = service.getArtifact(artifact.key); + final detail = service.artifacts.getArtifact(artifact.key); checkKey(detail.key); checkAsset(detail.fullImagePath); expect(detail.minRarity, inInclusiveRange(2, 4)); @@ -399,9 +399,9 @@ void main() { test('check the materials', () async { final service = _getService(); await service.init(AppLanguageType.english); - final materials = service.getAllMaterialsForCard(); + final materials = service.materials.getAllMaterialsForCard(); for (final material in materials) { - final detail = service.getMaterial(material.key); + final detail = service.materials.getMaterial(material.key); checkKey(detail.key); checkAsset(detail.fullImagePath); expect(detail.rarity, equals(material.rarity)); @@ -471,20 +471,20 @@ void main() { for (final part in partOfRecipes) { checkKey(part.createsMaterialKey); - expect(() => service.getMaterial(part.createsMaterialKey), returnsNormally); + expect(() => service.materials.getMaterial(part.createsMaterialKey), returnsNormally); for (final needs in part.needs) { expect(needs.quantity, greaterThanOrEqualTo(1)); - expect(() => service.getMaterial(needs.key), returnsNormally); + expect(() => service.materials.getMaterial(needs.key), returnsNormally); } } - final characters = service.getCharacterForItemsUsingMaterial(material.key); + final characters = service.characters.getCharacterForItemsUsingMaterial(material.key); expect(characters.map((e) => e.key).toSet().length == characters.length, isTrue); - final weapons = service.getWeaponForItemsUsingMaterial(material.key); + final weapons = service.weapons.getWeaponForItemsUsingMaterial(material.key); expect(weapons.map((e) => e.key).toSet().length == weapons.length, isTrue); - final droppedBy = service.getRelatedMonsterToMaterialForItems(detail.key); + final droppedBy = service.monsters.getRelatedMonsterToMaterialForItems(detail.key); expect(droppedBy.map((e) => e.key).toSet().length == droppedBy.length, isTrue); } }); @@ -492,19 +492,19 @@ void main() { test('check the monsters', () async { final service = _getService(); await service.init(AppLanguageType.english); - final monsters = service.getAllMonstersForCard(); + final monsters = service.monsters.getAllMonstersForCard(); for (final monster in monsters) { - final detail = service.getMonster(monster.key); + final detail = service.monsters.getMonster(monster.key); checkKey(detail.key); checkAsset(detail.fullImagePath); for (final drop in detail.drops) { switch (drop.type) { case MonsterDropType.material: - expect(() => service.getMaterial(drop.key), returnsNormally); + expect(() => service.materials.getMaterial(drop.key), returnsNormally); break; case MonsterDropType.artifact: - expect(() => service.getArtifact(drop.key), returnsNormally); + expect(() => service.artifacts.getArtifact(drop.key), returnsNormally); break; } } @@ -518,11 +518,11 @@ void main() { for (final lang in languages) { await service.init(lang); - final characters = service.getCharactersForCard(); + final characters = service.characters.getCharactersForCard(); for (final character in characters) { - final detail = service.getCharacter(character.key); - final translation = service.getCharacterTranslation(character.key); + final detail = service.characters.getCharacter(character.key); + final translation = service.translations.getCharacterTranslation(character.key); checkKey(translation.key); checkTranslation(translation.name, canBeNull: false); if (!detail.isComingSoon) { @@ -562,7 +562,7 @@ void main() { } } - final stats = service.getCharacterSkillStats(detail.skills[i].stats, skill.stats); + final stats = service.characters.getCharacterSkillStats(detail.skills[i].stats, skill.stats); expect(stats, isNotEmpty); switch (detail.skills[i].type) { case CharacterSkillType.normalAttack: @@ -613,10 +613,10 @@ void main() { final service = _getService(); for (final lang in languages) { await service.init(lang); - final weapons = service.getWeaponsForCard(); + final weapons = service.weapons.getWeaponsForCard(); for (final weapon in weapons) { - final detail = service.getWeapon(weapon.key); - final translation = service.getWeaponTranslation(weapon.key); + final detail = service.weapons.getWeapon(weapon.key); + final translation = service.translations.getWeaponTranslation(weapon.key); checkKey(translation.key); checkTranslation(translation.name, canBeNull: false); checkTranslation(translation.description, canBeNull: false); @@ -644,10 +644,10 @@ void main() { final service = _getService(); for (final lang in languages) { await service.init(lang); - final artifacts = service.getArtifactsForCard(); + final artifacts = service.artifacts.getArtifactsForCard(); for (final artifact in artifacts) { - final detail = service.getArtifact(artifact.key); - final translation = service.getArtifactTranslation(detail.key); + final detail = service.artifacts.getArtifact(artifact.key); + final translation = service.translations.getArtifactTranslation(detail.key); checkKey(translation.key); checkTranslation(translation.name, canBeNull: false); expect(translation.bonus.length, inInclusiveRange(1, 2)); @@ -663,10 +663,10 @@ void main() { final toCheck = [AppLanguageType.english, AppLanguageType.spanish, AppLanguageType.simplifiedChinese]; for (final lang in toCheck) { await service.init(lang); - final materials = service.getAllMaterialsForCard(); + final materials = service.materials.getAllMaterialsForCard(); for (final material in materials) { - final detail = service.getMaterial(material.key); - final translation = service.getMaterialTranslation(detail.key); + final detail = service.materials.getMaterial(material.key); + final translation = service.translations.getMaterialTranslation(detail.key); checkKey(translation.key); checkTranslation(translation.name, canBeNull: false); checkTranslation(translation.description, canBeNull: false); @@ -678,9 +678,9 @@ void main() { final service = _getService(); for (final lang in languages) { await service.init(lang); - final monsters = service.getAllMonstersForCard(); + final monsters = service.monsters.getAllMonstersForCard(); for (final monster in monsters) { - final translation = service.getMonsterTranslation(monster.key); + final translation = service.translations.getMonsterTranslation(monster.key); checkKey(translation.key); checkTranslation(translation.name, canBeNull: false); } @@ -719,11 +719,11 @@ void main() { final service = _getService(); await service.init(AppLanguageType.english); final localeService = _getLocaleService(AppLanguageType.english); - final upcoming = service.getUpcomingCharactersKeys(); + final upcoming = service.characters.getUpcomingCharactersKeys(); for (final key in upcoming) { - final char = service.getCharacter(key); + final char = service.characters.getCharacter(key); final date = localeService.getCharBirthDate(char.birthday); - final chars = service.getCharacterBirthdays(month: date.month, day: date.day); + final chars = service.characters.getCharacterBirthdays(month: date.month, day: date.day); expect(chars.any((el) => el.key == key), false); } }); @@ -733,7 +733,7 @@ void main() { await service.init(AppLanguageType.english); final months = List.generate(DateTime.monthsPerYear, (index) => index + 1); for (final month in months) { - final birthdays = service.getCharacterBirthdays(month: month); + final birthdays = service.characters.getCharacterBirthdays(month: month); expect(birthdays.isNotEmpty, isTrue); for (final birthday in birthdays) { _checkBirthday(birthday); @@ -744,7 +744,7 @@ void main() { test('check character birthdays, only by day', () async { final service = _getService(); await service.init(AppLanguageType.english); - final birthdays = service.getCharacterBirthdays(day: 20); + final birthdays = service.characters.getCharacterBirthdays(day: 20); expect(birthdays.isNotEmpty, isTrue); for (final birthday in birthdays) { _checkBirthday(birthday); @@ -754,7 +754,7 @@ void main() { test('check character birthdays, by month and day', () async { final service = _getService(); await service.init(AppLanguageType.english); - final birthdays = service.getCharacterBirthdays(month: DateTime.november, day: 20); + final birthdays = service.characters.getCharacterBirthdays(month: DateTime.november, day: 20); expect(birthdays.length, 1); expect(birthdays.first.key, equals('keqing')); _checkBirthday(birthdays.first); @@ -763,10 +763,10 @@ void main() { test('check character birthdays, invalid month and day', () async { final service = _getService(); await service.init(AppLanguageType.english); - expect(() => service.getCharacterBirthdays(), throwsA(isA())); - expect(() => service.getCharacterBirthdays(month: -1), throwsA(isA())); - expect(() => service.getCharacterBirthdays(day: -1), throwsA(isA())); - expect(() => service.getCharacterBirthdays(month: DateTime.february, day: 31), throwsA(isA())); + expect(() => service.characters.getCharacterBirthdays(), throwsA(isA())); + expect(() => service.characters.getCharacterBirthdays(month: -1), throwsA(isA())); + expect(() => service.characters.getCharacterBirthdays(day: -1), throwsA(isA())); + expect(() => service.characters.getCharacterBirthdays(month: DateTime.february, day: 31), throwsA(isA())); }); }); @@ -776,7 +776,7 @@ void main() { for (final lang in languages) { await service.init(lang); - final debuffs = service.getElementDebuffs(); + final debuffs = service.elements.getElementDebuffs(); expect(debuffs.length, equals(4)); for (final debuff in debuffs) { expect(debuff.name, allOf([isNotNull, isNotEmpty])); @@ -791,7 +791,7 @@ void main() { for (final lang in languages) { await service.init(lang); - final reactions = service.getElementReactions(); + final reactions = service.elements.getElementReactions(); expect(reactions.length, equals(11)); for (final reaction in reactions) { expect(reaction.name, allOf([isNotNull, isNotEmpty])); @@ -812,7 +812,7 @@ void main() { for (final lang in languages) { await service.init(lang); - final resonances = service.getElementResonances(); + final resonances = service.elements.getElementResonances(); expect(resonances.length, equals(7)); for (final resonance in resonances) { expect(resonance.name, allOf([isNotNull, isNotEmpty])); @@ -841,11 +841,11 @@ void main() { final service = _getService(); await service.init(AppLanguageType.english); - final defaultTierList = service.getDefaultCharacterTierList(defaultColors); + final defaultTierList = service.characters.getDefaultCharacterTierList(defaultColors); expect(defaultTierList.length, equals(7)); final charCountInTierList = defaultTierList.expand((el) => el.items).length; - final charCount = service.getCharactersForCard().where((el) => !el.isComingSoon).length; + final charCount = service.characters.getCharactersForCard().where((el) => !el.isComingSoon).length; expect(charCountInTierList == charCount, isTrue); for (var i = 0; i < defaultColors.length; i++) { @@ -877,7 +877,7 @@ void main() { ]; for (final day in days) { - final materials = service.getCharacterAscensionMaterials(day); + final materials = service.characters.getCharacterAscensionMaterials(day); expect(materials, isNotEmpty); for (final material in materials) { checkKey(material.key); @@ -891,7 +891,7 @@ void main() { } if (day == DateTime.sunday) { - final allCharacters = service.getCharactersForCard(); + final allCharacters = service.characters.getCharactersForCard(); final notComingSoon = allCharacters.where((el) => !el.isComingSoon).length; final got = materials.expand((el) => el.characters).map((e) => e.key).toSet().length; expect(notComingSoon, equals(got)); @@ -907,7 +907,7 @@ void main() { await service.init(AppLanguageType.english); for (final type in types) { - final banners = service.getBannerHistory(type); + final banners = service.bannerHistory.getBannerHistory(type); expect(banners.length, banners.where((el) => el.type == type).length); for (final banner in banners) { checkItemKeyAndImage(banner.key, banner.image); @@ -935,7 +935,7 @@ void main() { final service = _getService(); await service.init(AppLanguageType.english); - final versions = service.getBannerHistoryVersions(SortDirectionType.asc); + final versions = service.bannerHistory.getBannerHistoryVersions(SortDirectionType.asc); expect(versions.length, versions.toSet().length); }); @@ -943,10 +943,10 @@ void main() { final service = _getService(); await service.init(AppLanguageType.english); - final versions = service.getBannerHistoryVersions(SortDirectionType.asc); + final versions = service.bannerHistory.getBannerHistoryVersions(SortDirectionType.asc); final validItemTypes = [ItemType.character, ItemType.weapon]; for (final version in versions) { - final banners = service.getBanners(version); + final banners = service.bannerHistory.getBanners(version); expect(banners.isNotEmpty, isTrue); for (final banner in banners) { expect(banner.version, version); @@ -968,21 +968,21 @@ void main() { test('check version, version does not have any banner', () async { final service = _getService(); await service.init(AppLanguageType.english); - final banners = service.getBanners(1.7); + final banners = service.bannerHistory.getBanners(1.7); expect(banners.isEmpty, isTrue); }); test('check version, invalid version', () async { final service = _getService(); await service.init(AppLanguageType.english); - expect(() => service.getBanners(0.1), throwsA(isA())); + expect(() => service.bannerHistory.getBanners(0.1), throwsA(isA())); }); test('check item release history', () async { final service = _getService(); await service.init(AppLanguageType.english); - final history = service.getItemReleaseHistory('keqing'); + final history = service.bannerHistory.getItemReleaseHistory('keqing'); expect(history.isNotEmpty, isTrue); for (final item in history) { @@ -994,7 +994,7 @@ void main() { test('check item release history, item does not exist', () async { final service = _getService(); await service.init(AppLanguageType.english); - expect(() => service.getItemReleaseHistory('the-item'), throwsA(isA())); + expect(() => service.bannerHistory.getItemReleaseHistory('the-item'), throwsA(isA())); }); }); @@ -1021,14 +1021,14 @@ void main() { case ChartType.topFourStarCharacterMostReruns: case ChartType.topFiveStarCharacterLeastReruns: case ChartType.topFourStarCharacterLeastReruns: - final char = service.getCharacter(item.key); + final char = service.characters.getCharacter(item.key); expect(char.rarity == expectedStars, isTrue); break; case ChartType.topFiveStarWeaponMostReruns: case ChartType.topFourStarWeaponMostReruns: case ChartType.topFiveStarWeaponLeastReruns: case ChartType.topFourStarWeaponLeastReruns: - final weapon = service.getWeapon(item.key); + final weapon = service.weapons.getWeapon(item.key); expect(weapon.rarity == expectedStars, isTrue); break; default: @@ -1047,14 +1047,14 @@ void main() { test('check birthdays', () async { final service = _getService(); await service.init(AppLanguageType.english); - final birthdays = service.getCharacterBirthdaysForCharts(); + final birthdays = service.characters.getCharacterBirthdaysForCharts(); expect(birthdays.isNotEmpty, isTrue); expect(birthdays.length, 12); final keys = birthdays.expand((el) => el.items).map((e) => e.key).toList(); expect(keys.length, keys.toSet().length); - final charCount = service.getCharactersForCard().where((el) => !el.key.startsWith('traveler') && !el.isComingSoon).length; + final charCount = service.characters.getCharactersForCard().where((el) => !el.key.startsWith('traveler') && !el.isComingSoon).length; expect(keys.length, charCount); final allMonths = List.generate(DateTime.monthsPerYear, (index) => index + 1); @@ -1069,10 +1069,10 @@ void main() { test('check elements', () async { final service = _getService(); await service.init(AppLanguageType.english); - final versions = service.getBannerHistoryVersions(SortDirectionType.asc); + final versions = service.bannerHistory.getBannerHistoryVersions(SortDirectionType.asc); final expectedLength = ElementType.values.length - 1; - final elements = service.getElementsForCharts(versions.first, versions.last); + final elements = service.bannerHistory.getElementsForCharts(versions.first, versions.last); expect(elements.length, expectedLength); expect(elements.map((el) => el.type).toSet().length, expectedLength); @@ -1088,13 +1088,13 @@ void main() { test('check elements, invalid from version', () async { final service = _getService(); await service.init(AppLanguageType.english); - expect(() => service.getElementsForCharts(-1, 2.1), throwsA(isA())); + expect(() => service.bannerHistory.getElementsForCharts(-1, 2.1), throwsA(isA())); }); test('check elements, invalid until version', () async { final service = _getService(); await service.init(AppLanguageType.english); - expect(() => service.getElementsForCharts(1, -1), throwsA(isA())); + expect(() => service.bannerHistory.getElementsForCharts(1, -1), throwsA(isA())); }); test('check item ascension stats', () async { @@ -1134,11 +1134,12 @@ void main() { test('check character regions', () async { final service = _getService(); await service.init(AppLanguageType.english); - final regions = service.getCharacterRegionsForCharts(); + final regions = service.characters.getCharacterRegionsForCharts(); expect(regions.isNotEmpty, isTrue); expect(regions.map((e) => e.regionType).toSet().length, RegionType.values.length - 1); - final characters = service.getCharactersForCard().where((el) => !el.isComingSoon && el.regionType != RegionType.anotherWorld).toList(); + final characters = + service.characters.getCharactersForCard().where((el) => !el.isComingSoon && el.regionType != RegionType.anotherWorld).toList(); for (final region in regions) { expect(region.regionType != RegionType.anotherWorld, isTrue); expect(region.quantity, characters.where((el) => el.regionType == region.regionType).length); @@ -1159,11 +1160,12 @@ void main() { test('check character genders', () async { final service = _getService(); await service.init(AppLanguageType.english); - final genders = service.getCharacterGendersForCharts(); + final genders = service.characters.getCharacterGendersForCharts(); expect(genders.isNotEmpty, isTrue); expect(genders.map((e) => e.regionType).toSet().length, RegionType.values.length - 1); - final characters = service.getCharactersForCard().where((el) => !el.isComingSoon && el.regionType != RegionType.anotherWorld).toList(); + final characters = + service.characters.getCharactersForCard().where((el) => !el.isComingSoon && el.regionType != RegionType.anotherWorld).toList(); for (final gender in genders) { _validateChartGenderModel(gender); @@ -1176,9 +1178,10 @@ void main() { final service = _getService(); await service.init(AppLanguageType.english); final regions = RegionType.values.where((el) => el != RegionType.anotherWorld).toList(); - final characters = service.getCharactersForCard().where((el) => !el.isComingSoon && el.regionType != RegionType.anotherWorld).toList(); + final characters = + service.characters.getCharactersForCard().where((el) => !el.isComingSoon && el.regionType != RegionType.anotherWorld).toList(); for (final region in regions) { - final gender = service.getCharacterGendersByRegionForCharts(region); + final gender = service.characters.getCharacterGendersByRegionForCharts(region); _validateChartGenderModel(gender); final expectedCount = characters.where((el) => el.regionType == region).length; @@ -1189,7 +1192,7 @@ void main() { test('check character gender by region, invalid region', () async { final service = _getService(); await service.init(AppLanguageType.english); - expect(() => service.getCharacterGendersByRegionForCharts(RegionType.anotherWorld), throwsA(isA())); + expect(() => service.characters.getCharacterGendersByRegionForCharts(RegionType.anotherWorld), throwsA(isA())); }); }); @@ -1198,9 +1201,10 @@ void main() { final service = _getService(); await service.init(AppLanguageType.english); final regions = RegionType.values.where((el) => el != RegionType.anotherWorld).toList(); - final characters = service.getCharactersForCard().where((el) => !el.isComingSoon && el.regionType != RegionType.anotherWorld).toList(); + final characters = + service.characters.getCharactersForCard().where((el) => !el.isComingSoon && el.regionType != RegionType.anotherWorld).toList(); for (final region in regions) { - final items = service.getCharactersForItemsByRegion(region); + final items = service.characters.getCharactersForItemsByRegion(region); final expectedCount = characters.where((el) => el.regionType == region).length; expect(items.length, expectedCount); @@ -1213,17 +1217,18 @@ void main() { test('check character for items by region, invalid region', () async { final service = _getService(); await service.init(AppLanguageType.english); - expect(() => service.getCharactersForItemsByRegion(RegionType.anotherWorld), throwsA(isA())); + expect(() => service.characters.getCharactersForItemsByRegion(RegionType.anotherWorld), throwsA(isA())); }); test('check characters for items by region and gender', () async { final service = _getService(); await service.init(AppLanguageType.english); final regions = RegionType.values.where((el) => el != RegionType.anotherWorld).toList(); - final characters = service.getCharactersForCard().where((el) => !el.isComingSoon && el.regionType != RegionType.anotherWorld).toList(); + final characters = + service.characters.getCharactersForCard().where((el) => !el.isComingSoon && el.regionType != RegionType.anotherWorld).toList(); for (final region in regions) { - final females = service.getCharactersForItemsByRegionAndGender(region, true); - final males = service.getCharactersForItemsByRegionAndGender(region, false); + final females = service.characters.getCharactersForItemsByRegionAndGender(region, true); + final males = service.characters.getCharactersForItemsByRegionAndGender(region, false); final items = males + females; final expectedCount = characters.where((el) => el.regionType == region).length; expect(items.length, expectedCount); @@ -1237,8 +1242,8 @@ void main() { test('check characters for items by region and gender, invalid region', () async { final service = _getService(); await service.init(AppLanguageType.english); - expect(() => service.getCharactersForItemsByRegionAndGender(RegionType.anotherWorld, true), throwsA(isA())); - expect(() => service.getCharactersForItemsByRegionAndGender(RegionType.anotherWorld, false), throwsA(isA())); + expect(() => service.characters.getCharactersForItemsByRegionAndGender(RegionType.anotherWorld, true), throwsA(isA())); + expect(() => service.characters.getCharactersForItemsByRegionAndGender(RegionType.anotherWorld, false), throwsA(isA())); }); test('check items ascension stats', () async { @@ -1246,8 +1251,8 @@ void main() { await service.init(AppLanguageType.english); final validForCharacters = getCharacterPossibleAscensionStats(); final validForWeapons = getWeaponPossibleAscensionStats(); - final characters = service.getCharactersForCard().where((el) => !el.isComingSoon).toList(); - final weapons = service.getWeaponsForCard().where((el) => !el.isComingSoon).toList(); + final characters = service.characters.getCharactersForCard().where((el) => !el.isComingSoon).toList(); + final weapons = service.weapons.getWeaponsForCard().where((el) => !el.isComingSoon).toList(); for (final stat in validForCharacters) { final items = service.getItemsAscensionStats(stat, ItemType.character);