Skip to content

Commit

Permalink
[Tests] Minor sanity checks
Browse files Browse the repository at this point in the history
  • Loading branch information
Wolfteam committed Sep 1, 2022
1 parent bd39e5f commit 27ed1e0
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 5 deletions.
29 changes: 27 additions & 2 deletions test/common.dart
Expand Up @@ -108,20 +108,45 @@ void checkItemAscensionMaterialFileModel(MaterialFileService materialFileService
}
}

void checkCharacterFileAscensionMaterialModel(MaterialFileService materialFileService, List<CharacterFileAscensionMaterialModel> all) {
void checkCharacterFileAscensionMaterialModel(
MaterialFileService materialFileService,
List<CharacterFileAscensionMaterialModel> all, {
bool checkMaterialType = true,
}) {
expect(all, isNotEmpty);
for (final ascMaterial in all) {
expect(ascMaterial.rank, allOf([greaterThanOrEqualTo(1), lessThanOrEqualTo(6)]));
expect(ascMaterial.level, allOf([greaterThanOrEqualTo(20), lessThanOrEqualTo(80)]));
checkItemAscensionMaterialFileModel(materialFileService, ascMaterial.materials);
if (checkMaterialType) {
expect(ascMaterial.materials.where((el) => el.type == MaterialType.jewels).length, 1);
expect(ascMaterial.materials.where((el) => el.type == MaterialType.local).length, 1);
expect(ascMaterial.materials.where((el) => el.type == MaterialType.common).length, 1);
expect(ascMaterial.materials.where((el) => el.type == MaterialType.currency).length, 1);
}
}
}

void checkCharacterFileTalentAscensionMaterialModel(MaterialFileService materialFileService, List<CharacterFileTalentAscensionMaterialModel> all) {
void checkCharacterFileTalentAscensionMaterialModel(
MaterialFileService materialFileService,
List<CharacterFileTalentAscensionMaterialModel> all, {
bool checkMaterialTypeAndLength = true,
}) {
expect(all, isNotEmpty);
for (final ascMaterial in all) {
expect(ascMaterial.level, inInclusiveRange(2, 10));
checkItemAscensionMaterialFileModel(materialFileService, ascMaterial.materials);

if (checkMaterialTypeAndLength) {
final expectedLengthForTalents = ascMaterial.level == 10
? 3
: ascMaterial.level >= 7
? 2
: 1;
expect(ascMaterial.materials.where((el) => el.type == MaterialType.talents).length, expectedLengthForTalents);
expect(ascMaterial.materials.where((el) => el.type == MaterialType.common).length, 1);
expect(ascMaterial.materials.where((el) => el.type == MaterialType.currency).length, 1);
}
}
}

Expand Down
10 changes: 7 additions & 3 deletions test/infrastructure/file/character_file_service_test.dart
Expand Up @@ -123,13 +123,17 @@ void main() {
expect(detail.stats, isNotEmpty);
}

checkCharacterFileAscensionMaterialModel(_service.materials, detail.ascensionMaterials);
checkCharacterFileAscensionMaterialModel(_service.materials, detail.ascensionMaterials, checkMaterialType: !detail.isComingSoon);
if (!isTraveler) {
checkCharacterFileTalentAscensionMaterialModel(_service.materials, detail.talentAscensionMaterials);
checkCharacterFileTalentAscensionMaterialModel(
_service.materials,
detail.talentAscensionMaterials,
checkMaterialTypeAndLength: !detail.isComingSoon,
);
} else {
for (final ascMaterial in detail.multiTalentAscensionMaterials!) {
expect(ascMaterial.number, inInclusiveRange(1, 3));
checkCharacterFileTalentAscensionMaterialModel(_service.materials, ascMaterial.materials);
checkCharacterFileTalentAscensionMaterialModel(_service.materials, ascMaterial.materials, checkMaterialTypeAndLength: !detail.isComingSoon);
}
}

Expand Down
6 changes: 6 additions & 0 deletions test/infrastructure/file/weapon_file_service_test.dart
Expand Up @@ -49,6 +49,12 @@ void main() {
checkItemAscensionMaterialFileModel(service.materials, ascMaterial.materials);
final expectedLength = i == 0 && detail.rarity == 1 ? 3 : 4;
expect(ascMaterial.materials.length, expectedLength);
expect(ascMaterial.materials.where((el) => el.type == MaterialType.weaponPrimary).length, 1);
expect(ascMaterial.materials.where((el) => el.type == MaterialType.weapon).length, 1);
expect(ascMaterial.materials.where((el) => el.type == MaterialType.common).length, 1);
if (expectedLength > 3) {
expect(ascMaterial.materials.where((el) => el.type == MaterialType.currency).length, 1);
}
}

final ascensionNumber = detail.stats.where((el) => el.isAnAscension).length;
Expand Down

0 comments on commit 27ed1e0

Please sign in to comment.