|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires du catalogue de skins (LOT-42, EX-EDIT-042, EX-EDIT-024). More...
#include <algorithm>#include <cstring>#include <filesystem>#include <fstream>#include <map>#include <optional>#include <string>#include <utility>#include <vector>#include <gtest/gtest.h>#include "Core/Levels/TileType.h"#include "Core/Levels/TileTypeName.h"#include "HMI/Graphics/SkinCatalog.h"#include "HMI/Graphics/TextureAtlas.h"#include "HMI/Graphics/TileAutotile.h"Functions | |
| TEST (SkinCatalogTest, AllerRetourDuNomDeMode) | |
| Le nom persiste d'un mode de skin fait l'aller-retour sans perte. | |
| TEST (SkinCatalogTest, AllerRetourLectureEcriture) | |
| Lecture, ecriture puis relecture rendent un catalogue identique. | |
| TEST (SkinCatalogTest, ResolutionDansUnJeuExistant) | |
| La resolution rend l'entree du jeu demande, avec son mode. | |
| TEST (SkinCatalogTest, JeuInexistantRetombeSurLeDefaut) | |
| Un jeu inexistant retombe sur le jeu par defaut. | |
| TEST (SkinCatalogTest, TypeNonSkinneNeResoudRien) | |
| Un type non skinne ne resout rien, sans erreur. | |
| TEST (SkinCatalogTest, JsonMalformeSignale) | |
| Un JSON malforme est signale sans exception. | |
| TEST (SkinCatalogTest, VersionInconnueRefusee) | |
| Une version de format inconnue est refusee, pas lue au mieux. | |
| TEST (SkinCatalogTest, TypeOuModeInconnuSignale) | |
| Un type de tuile ou un mode inconnu est signale. | |
| TEST (SkinCatalogTest, DefautInexistantSignale) | |
| Un jeu par defaut inexistant est signale. | |
| TEST (SkinCatalogTest, ModeAbsentVautSingle) | |
| Un mode absent vaut « single ». | |
| TEST (SkinCatalogTest, FichierAbsentSignale) | |
| Un fichier absent est signale comme tel, sans exception. | |
| TEST (SkinCatalogTest, EcritureSurDisqueRelisible) | |
| L'ecriture sur disque produit un fichier relisible. | |
| TEST (SkinCatalogTest, AssignationPuisRetrait) | |
| Assigner et retirer un skin modifie la resolution en consequence. | |
| TEST (SkinCatalogTest, OrdreDesJeuxStable) | |
| Les noms de jeux sont rendus dans un ordre stable. | |
| TEST (SkinCatalogTest, CatalogueLivreValide) | |
| Le catalogue livre avec le jeu se lit sans erreur. | |
| TEST (SkinCatalogTest, AssetsDuCatalogueLivreConformes) | |
| Chaque asset reference par le catalogue livre existe et respecte son contrat. | |
Tests unitaires du catalogue de skins (LOT-42, EX-EDIT-042, EX-EDIT-024).
| TEST | ( | SkinCatalogTest | , |
| AllerRetourDuNomDeMode | ) |
Le nom persiste d'un mode de skin fait l'aller-retour sans perte.
Cas de test : Le nom persiste d'un mode de skin fait l'aller-retour sans perte.
Categorie : Unitaire · Catalogue de skins
Criticite : Majeur
Etapes :
1. Convertir chaque mode en nom, puis le nom en mode.
Resultat attendu : Le mode d'origine est retrouve ; un nom inconnu est refuse.
| TEST | ( | SkinCatalogTest | , |
| AllerRetourLectureEcriture | ) |
Lecture, ecriture puis relecture rendent un catalogue identique.
Cas de test : Un catalogue fait l'aller-retour lecture -> ecriture -> lecture sans perte.
Categorie : Unitaire · Catalogue de skins
Criticite : Critique
Etapes :
1. Lire le catalogue de reference (deux jeux).
| TEST | ( | SkinCatalogTest | , |
| AssetsDuCatalogueLivreConformes | ) |
Chaque asset reference par le catalogue livre existe et respecte son contrat.
Cas de test : Chaque asset reference par le catalogue livre existe aux bonnes dimensions.
Categorie : Unitaire · Catalogue de skins
Criticite : Critique
Etapes :
1. Lire le catalogue livre et parcourir toutes les assignations de tous les jeux.
| TEST | ( | SkinCatalogTest | , |
| AssignationPuisRetrait | ) |
Assigner et retirer un skin modifie la resolution en consequence.
Cas de test : Assigner puis retirer un skin change la resolution du type concerne.
Categorie : Unitaire · Catalogue de skins
Criticite : Critique
Etapes :
1. Assigner un asset a Danger dans un catalogue vide, puis resoudre.
| TEST | ( | SkinCatalogTest | , |
| CatalogueLivreValide | ) |
Le catalogue livre avec le jeu se lit sans erreur.
Cas de test : Le fichier de skins livre avec le jeu se lit sans erreur.
Categorie : Unitaire · Catalogue de skins
Criticite : Critique
Etapes :
1. Lire Source/Elements/Assets/skins.json depuis les sources.
Resultat attendu : La lecture reussit et le jeu par defaut designe un jeu existant.
| TEST | ( | SkinCatalogTest | , |
| DefautInexistantSignale | ) |
Un jeu par defaut inexistant est signale.
Cas de test : Un jeu par defaut qui ne designe aucun jeu existant est signale.
Categorie : Unitaire · Catalogue de skins
Criticite : Majeur
Etapes :
1. Lire un catalogue dont le champ « defaut » cite un jeu absent de « jeux ».
Resultat attendu : La lecture echoue avec le code MalformedStructure.
| TEST | ( | SkinCatalogTest | , |
| EcritureSurDisqueRelisible | ) |
L'ecriture sur disque produit un fichier relisible.
Cas de test : Le catalogue ecrit sur disque est relu a l'identique.
Categorie : Unitaire · Catalogue de skins
Criticite : Critique
Etapes :
1. Ecrire le catalogue de reference dans un fichier temporaire.
| TEST | ( | SkinCatalogTest | , |
| FichierAbsentSignale | ) |
Un fichier absent est signale comme tel, sans exception.
Cas de test : Un fichier de skins absent est signale par un code dedie, sans exception.
Categorie : Unitaire · Catalogue de skins
Criticite : Majeur
Etapes :
1. Lire un chemin qui n'existe pas.
Resultat attendu : La lecture echoue avec le code FileNotFound, sans exception.
| TEST | ( | SkinCatalogTest | , |
| JeuInexistantRetombeSurLeDefaut | ) |
Un jeu inexistant retombe sur le jeu par defaut.
Cas de test : Un jeu inexistant retombe sur le jeu par defaut plutot que de ne rien rendre.
Categorie : Unitaire · Catalogue de skins
Criticite : Majeur
Etapes :
1. Resoudre Solid dans un jeu qui n'existe pas.
| TEST | ( | SkinCatalogTest | , |
| JsonMalformeSignale | ) |
Un JSON malforme est signale sans exception.
Cas de test : Un fichier de skins malforme est signale sans lever d'exception.
Categorie : Unitaire · Catalogue de skins
Criticite : Critique
Etapes :
1. Lire une chaine qui n'est pas du JSON, puis un JSON dont la racine est un tableau.
Resultat attendu : Les deux lectures echouent avec le code ParseError, sans exception.
| TEST | ( | SkinCatalogTest | , |
| ModeAbsentVautSingle | ) |
Un mode absent vaut « single ».
Cas de test : Une entree sans champ « mode » est lue en mode image unique.
Categorie : Unitaire · Catalogue de skins
Criticite : Mineur
Etapes :
1. Lire une entree ne portant que le champ « asset ».
Resultat attendu : Elle resout en mode Single.
| TEST | ( | SkinCatalogTest | , |
| OrdreDesJeuxStable | ) |
Les noms de jeux sont rendus dans un ordre stable.
Cas de test : Les noms de jeux sont rendus dans un ordre alphabetique stable.
Categorie : Unitaire · Catalogue de skins
Criticite : Mineur
Etapes :
1. Creer trois jeux dans un ordre quelconque.
Resultat attendu : setNames les rend tries, quel que soit l'ordre de creation.
| TEST | ( | SkinCatalogTest | , |
| ResolutionDansUnJeuExistant | ) |
La resolution rend l'entree du jeu demande, avec son mode.
Cas de test : La resolution rend l'asset et le mode assignes dans le jeu demande.
Categorie : Unitaire · Catalogue de skins
Criticite : Critique
Etapes :
1. Resoudre Solid et Block dans le jeu « foret », puis Solid dans « grotte ».
Resultat attendu : Chaque resolution rend l'asset et le mode ecrits dans le fichier.
| TEST | ( | SkinCatalogTest | , |
| TypeNonSkinneNeResoudRien | ) |
Un type non skinne ne resout rien, sans erreur.
Cas de test : Un type de tuile sans skin assigne ne resout aucune entree.
Categorie : Unitaire · Catalogue de skins
Criticite : Critique
Etapes :
1. Resoudre un type absent du jeu « foret », puis un type absent de « grotte ».
Resultat attendu : Les deux resolutions rendent une absence d'entree, sans exception.
| TEST | ( | SkinCatalogTest | , |
| TypeOuModeInconnuSignale | ) |
Un type de tuile ou un mode inconnu est signale.
Cas de test : Un type de tuile ou un mode de skin inconnu est signale a la lecture.
Categorie : Unitaire · Catalogue de skins
Criticite : Majeur
Etapes :
1. Lire un catalogue citant un type de tuile inexistant.
| TEST | ( | SkinCatalogTest | , |
| VersionInconnueRefusee | ) |
Une version de format inconnue est refusee, pas lue au mieux.
Cas de test : Une version de format superieure a celle geree est refusee explicitement.
Categorie : Unitaire · Catalogue de skins
Criticite : Critique
Etapes :
1. Lire un catalogue dont la version vaut celle geree, puis une superieure.
Resultat attendu : La premiere est acceptee ; la seconde echoue avec le code UnsupportedVersion.