JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
test_level_loader.cpp File Reference

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).

Detailed Description

Tests unitaires du chargement de niveau (format JSON, erreurs récupérables).

Function Documentation

◆ TEST() [1/11]

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.

  1. Charger un grand niveau (dépasse une salle) sans champ cameraFraming.
    Resultat attendu : Le petit niveau résout en mode niveau entier ; le grand résout en mode par salle, avec une taille de salle par défaut (absente, pas explicitement 24×14).

◆ TEST() [2/11]

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() [3/11]

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() [4/11]

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() [5/11]

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() [6/11]

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() [7/11]

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.

  1. Vérifier le cadrage résolu.
    Resultat attendu : Le mode et la taille de salle déclarés sont restitués sans modification.

◆ TEST() [8/11]

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() [9/11]

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() [10/11]

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() [11/11]

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.