|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires du chargement de niveau (format JSON, erreurs récupérables). More...
#include <filesystem>#include <vector>#include <gtest/gtest.h>#include "Core/Levels/CameraFraming.h"#include "Core/Levels/GridPosition.h"#include "Core/Levels/LevelLoader.h"#include "Core/Levels/TileType.h"Functions | |
| TEST (LevelLoaderTest, ChargeUnNiveauValide) | |
| Un niveau valide est chargé avec ses dimensions, tuiles, entrée/sortie et mécanismes. | |
| TEST (LevelLoaderTest, NiveauSansVersionSeChargeSansErreur) | |
| Un niveau sans champ "version" se charge sans erreur ni avertissement, comme la version initiale du format (EX-LVL-005, rétrocompatibilité des niveaux antérieurs à ce champ). | |
| TEST (LevelLoaderTest, VersionSuperieureALaVersionGereeEchoueProprement) | |
| Un niveau dont la version dépasse celle gérée échoue avec une erreur exploitable (EX-LVL-005), pas une lecture au mieux. | |
| TEST (LevelLoaderTest, ChargeLeFondEtLeJeuDeSkins) | |
| Un niveau désignant un fond et un jeu de skins restitue les deux chaînes ; sans eux, elles sont absentes (EX-REN-044, EX-EDIT-024). | |
| TEST (LevelLoaderTest, SansFondNiJeuDeSkinsLesDeuxChampsSontAbsents) | |
| Un niveau sans fond ni jeu de skins désignés n'en restitue aucun (état normal, pas une anomalie, EX-REN-044). | |
| TEST (LevelLoaderTest, ModeDeCadrageDeclareExplicitementEstRestitue) | |
| Un niveau déclarant un mode de cadrage explicite le restitue tel quel, y compris une taille de salle personnalisée pour le mode par salle (EX-LVL-006). | |
| TEST (LevelLoaderTest, ZonesDeCameraDeclareesSontRestitueesDansLOrdre) | |
| Un niveau déclarant des zones de caméra dessinées à la main (mode par salle) les restitue dans l'ordre exact du fichier (EX-LVL-007). | |
| TEST (LevelLoaderTest, AbsenceDeCameraFramingReproduitLaRegleHistorique) | |
| Un niveau sans champ cameraFraming reproduit exactement la règle historique : niveau entier s'il tient dans une salle de taille par défaut, par salle sinon (EX-LVL-006, critère d'acceptation numéro un du lot). | |
| TEST (LevelLoaderTest, CadrageInvalideEchoueAvecErreurExploitable) | |
| Un cadrage invalide (mode inconnu, taille de salle nulle ou supérieure au niveau, paramètre étranger au mode) échoue avec une erreur nommant le champ fautif (EX-LVL-004). | |
| TEST (LevelLoaderTest, ChargeUnePlaqueDePression) | |
| Une plaque de pression se charge comme un interrupteur : même règle d'identifiant, même résolution de liaison vers une porte (EX-GP-025). | |
| TEST (LevelLoaderTest, ChargeUnBlocPoussable) | |
| Un bloc poussable se charge comme une simple tuile, sans identifiant ni liaison (EX-GP-022). | |
Tests unitaires du chargement de niveau (format JSON, erreurs récupérables).
| TEST | ( | LevelLoaderTest | , |
| AbsenceDeCameraFramingReproduitLaRegleHistorique | ) |
Un niveau sans champ cameraFraming reproduit exactement la règle historique : niveau entier s'il tient dans une salle de taille par défaut, par salle sinon (EX-LVL-006, critère d'acceptation numéro un du lot).
Cas de test : L'absence de cameraFraming reproduit la règle historique.
Categorie : Unitaire · Level Loader
Criticite : Critique
Etapes :
1. Charger un petit niveau (tient dans une salle) sans champ cameraFraming.
| TEST | ( | LevelLoaderTest | , |
| CadrageInvalideEchoueAvecErreurExploitable | ) |
Un cadrage invalide (mode inconnu, taille de salle nulle ou supérieure au niveau, paramètre étranger au mode) échoue avec une erreur nommant le champ fautif (EX-LVL-004).
Cas de test : Un cadrage invalide échoue avec une erreur exploitable.
Categorie : Unitaire · Level Loader
Criticite : Majeur
Etapes :
1. Charger successivement un niveau par variante d'erreur (mode inconnu, taille nulle, taille supérieure au niveau, paramètre étranger au mode).
Resultat attendu : Chaque variante échoue avec LevelValidationError::InvalidCameraFraming.
| TEST | ( | LevelLoaderTest | , |
| ChargeLeFondEtLeJeuDeSkins | ) |
Un niveau désignant un fond et un jeu de skins restitue les deux chaînes ; sans eux, elles sont absentes (EX-REN-044, EX-EDIT-024).
Cas de test : Un niveau designant un fond et un jeu de skins restitue les deux champs.
Categorie : Unitaire · Level Loader
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un niveau designant un fond et un jeu de skins restitue les deux champs.
| TEST | ( | LevelLoaderTest | , |
| ChargeUnBlocPoussable | ) |
Un bloc poussable se charge comme une simple tuile, sans identifiant ni liaison (EX-GP-022).
Cas de test : Un bloc poussable se charge comme une simple tuile, sans identifiant ni liaison.
Categorie : Unitaire · Level Loader
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un bloc poussable se charge comme une simple tuile, sans identifiant ni liaison.
| TEST | ( | LevelLoaderTest | , |
| ChargeUnePlaqueDePression | ) |
Une plaque de pression se charge comme un interrupteur : même règle d'identifiant, même résolution de liaison vers une porte (EX-GP-025).
Cas de test : Une plaque de pression se charge comme un interrupteur.
Categorie : Unitaire · Level Loader
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Une plaque de pression se charge comme un interrupteur : même règle d'identifiant, même résolution de liaison vers une porte.
| TEST | ( | LevelLoaderTest | , |
| ChargeUnNiveauValide | ) |
Un niveau valide est chargé avec ses dimensions, tuiles, entrée/sortie et mécanismes.
Cas de test : Un niveau valide est chargé avec ses dimensions, tuiles, entrée/sortie et mécanismes.
Categorie : Unitaire · Level Loader
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un niveau valide est chargé avec ses dimensions, tuiles, entrée/sortie et mécanismes.
| TEST | ( | LevelLoaderTest | , |
| ModeDeCadrageDeclareExplicitementEstRestitue | ) |
Un niveau déclarant un mode de cadrage explicite le restitue tel quel, y compris une taille de salle personnalisée pour le mode par salle (EX-LVL-006).
Cas de test : Un mode de cadrage déclaré explicitement est restitué tel quel.
Categorie : Unitaire · Level Loader
Criticite : Majeur
Etapes :
1. Charger un niveau déclarant le mode par salle avec une taille personnalisée.
| TEST | ( | LevelLoaderTest | , |
| NiveauSansVersionSeChargeSansErreur | ) |
Un niveau sans champ "version" se charge sans erreur ni avertissement, comme la version initiale du format (EX-LVL-005, rétrocompatibilité des niveaux antérieurs à ce champ).
Cas de test : Un niveau sans champ version se charge sans erreur.
Categorie : Unitaire · Level Loader
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un niveau sans champ version se charge sans erreur.
| TEST | ( | LevelLoaderTest | , |
| SansFondNiJeuDeSkinsLesDeuxChampsSontAbsents | ) |
Un niveau sans fond ni jeu de skins désignés n'en restitue aucun (état normal, pas une anomalie, EX-REN-044).
Cas de test : Un niveau sans fond ni jeu de skins n'en restitue aucun.
Categorie : Unitaire · Level Loader
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un niveau sans fond ni jeu de skins n'en restitue aucun.
| TEST | ( | LevelLoaderTest | , |
| VersionSuperieureALaVersionGereeEchoueProprement | ) |
Un niveau dont la version dépasse celle gérée échoue avec une erreur exploitable (EX-LVL-005), pas une lecture au mieux.
Cas de test : Un niveau dont la version depasse celle geree echoue proprement.
Categorie : Unitaire · Level Loader
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un niveau dont la version depasse celle geree echoue proprement.
| TEST | ( | LevelLoaderTest | , |
| ZonesDeCameraDeclareesSontRestitueesDansLOrdre | ) |
Un niveau déclarant des zones de caméra dessinées à la main (mode par salle) les restitue dans l'ordre exact du fichier (EX-LVL-007).
Cas de test : Les zones de caméra dessinées à la main sont restituées dans l'ordre du fichier.
Categorie : Unitaire · Level Loader
Criticite : Majeur
Etapes :
1. Charger un niveau déclarant deux zones de caméra.
2. Vérifier leur nombre, leur ordre et leurs bornes.
Resultat attendu : Les deux zones sont restituées dans l'ordre exact du fichier, avec leurs bornes exactes.