|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires de la sérialisation de niveau (round-trip avec LevelLoader, EX-EDIT-011). More...
#include <filesystem>#include <string>#include <vector>#include <gtest/gtest.h>#include "Core/Levels/GridPosition.h"#include "Core/Levels/LevelLoader.h"#include "Core/Levels/LevelWriter.h"#include "Core/Levels/TileType.h"Functions | |
| TEST (LevelWriterTest, PlaqueDePressionSurvitAuRoundTrip) | |
| Une plaque de pression survit au round-trip (sérialisation puis rechargement), TileType et liaison préservés (EX-GP-025). | |
| TEST (LevelWriterTest, CleEtPorteVerrouilleeSurvitAuRoundTrip) | |
| Une clé et une porte verrouillée survivent au round-trip (sérialisation puis rechargement), TileType et liaison préservés (EX-GP-023). | |
| TEST (LevelWriterTest, BlocPoussableSurvitAuRoundTrip) | |
| Un bloc poussable survit au round-trip (sérialisation puis rechargement), TileType préservé (EX-GP-022). | |
| TEST (LevelWriterTest, FondEtJeuDeSkinsSurviventAuRoundTrip) | |
| Le fond et le jeu de skins survivent au round-trip (sérialisation puis rechargement, EX-REN-044, EX-EDIT-024). | |
| TEST (LevelWriterTest, SansFondNiJeuDeSkinsLesClesSontOmisesDuJson) | |
| Un niveau sans fond ni jeu de skins n'écrit ni l'une ni l'autre clé dans le JSON produit (EX-REN-044, EX-EDIT-024) ; le champ "version", lui, est toujours écrit. | |
| TEST (LevelWriterTest, InterrupteurNonRelieRegenereUnIdentifiant) | |
| Un interrupteur non relié à une porte est tout de même sérialisé, avec un identifiant. | |
| TEST (LevelWriterTest, SaveToFileEcritUnFichierRechargeable) | |
| saveToFile écrit un fichier qui se recharge à l'identique (round-trip disque). | |
| TEST (LevelWriterTest, SaveToFileVersDossierInexistantEchoueProprement) | |
| saveToFile vers un dossier inexistant échoue proprement (récupérable, EX-NFR-040). | |
| TEST (LevelWriterTest, ChacunDesTroisModesDeCadrageSurvitAuRoundTrip) | |
| Chacun des trois modes de cadrage, avec une taille de salle personnalisée pour le mode par salle, survit à un aller-retour JSON à l'identique (EX-LVL-006). | |
| TEST (LevelWriterTest, ZonesDeCameraSurviventAuRoundTrip) | |
| Des zones de caméra dessinées à la main survivent à un aller-retour JSON, dans le même ordre (EX-LVL-007). | |
| TEST (LevelWriterTest, CadrageIdentiqueAuRepliResteOmisDuJson) | |
| Un niveau dont le cadrage résolu coïncide avec la règle de repli est réécrit sans le champ "cameraFraming" : aucune régression de round-trip pour les niveaux jamais retouchés sur ce point (EX-LVL-006). | |
Tests unitaires de la sérialisation de niveau (round-trip avec LevelLoader, EX-EDIT-011).
| TEST | ( | LevelWriterTest | , |
| BlocPoussableSurvitAuRoundTrip | ) |
Un bloc poussable survit au round-trip (sérialisation puis rechargement), TileType préservé (EX-GP-022).
Cas de test : Un bloc poussable survit au round-trip.
Categorie : Unitaire · Level Writer
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 survit au round-trip : TileType préservé.
| TEST | ( | LevelWriterTest | , |
| CadrageIdentiqueAuRepliResteOmisDuJson | ) |
Un niveau dont le cadrage résolu coïncide avec la règle de repli est réécrit sans le champ "cameraFraming" : aucune régression de round-trip pour les niveaux jamais retouchés sur ce point (EX-LVL-006).
Cas de test : Un cadrage identique au repli reste omis du JSON écrit.
Categorie : Unitaire · Level Writer
Criticite : Majeur
Etapes :
1. Charger un petit niveau sans champ cameraFraming (repli : niveau entier).
| TEST | ( | LevelWriterTest | , |
| ChacunDesTroisModesDeCadrageSurvitAuRoundTrip | ) |
Chacun des trois modes de cadrage, avec une taille de salle personnalisée pour le mode par salle, survit à un aller-retour JSON à l'identique (EX-LVL-006).
Cas de test : Chacun des trois modes de cadrage survit au round-trip.
Categorie : Unitaire · Level Writer
Criticite : Majeur
Etapes :
1. Charger un niveau déclarant chacun des trois modes de cadrage.
2. Sérialiser puis recharger.
Resultat attendu : Le cadrage résolu du niveau rechargé est identique à celui du niveau d'origine, y compris la taille de salle personnalisée du mode par salle.
| TEST | ( | LevelWriterTest | , |
| CleEtPorteVerrouilleeSurvitAuRoundTrip | ) |
Une clé et une porte verrouillée survivent au round-trip (sérialisation puis rechargement), TileType et liaison préservés (EX-GP-023).
Cas de test : Une clé et une porte verrouillée survivent au round-trip.
Categorie : Unitaire · Level Writer
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La clé et la porte verrouillée survivent au round-trip : TileType et liaison préservés.
| TEST | ( | LevelWriterTest | , |
| FondEtJeuDeSkinsSurviventAuRoundTrip | ) |
Le fond et le jeu de skins survivent au round-trip (sérialisation puis rechargement, EX-REN-044, EX-EDIT-024).
Cas de test : Le fond et le jeu de skins survivent au round-trip.
Categorie : Unitaire · Level Writer
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Le fond et le jeu de skins survivent au round-trip.
| TEST | ( | LevelWriterTest | , |
| InterrupteurNonRelieRegenereUnIdentifiant | ) |
Un interrupteur non relié à une porte est tout de même sérialisé, avec un identifiant.
Cas de test : Un interrupteur non relié à une porte est tout de même sérialisé, avec un identifiant.
Categorie : Unitaire · Level Writer
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un interrupteur non relié à une porte est tout de même sérialisé, avec un identifiant.
| TEST | ( | LevelWriterTest | , |
| PlaqueDePressionSurvitAuRoundTrip | ) |
Une plaque de pression survit au round-trip (sérialisation puis rechargement), TileType et liaison préservés (EX-GP-025).
Cas de test : Une plaque de pression survit au round-trip.
Categorie : Unitaire · Level Writer
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 survit au round-trip : TileType et liaison préservés.
| TEST | ( | LevelWriterTest | , |
| SansFondNiJeuDeSkinsLesClesSontOmisesDuJson | ) |
Un niveau sans fond ni jeu de skins n'écrit ni l'une ni l'autre clé dans le JSON produit (EX-REN-044, EX-EDIT-024) ; le champ "version", lui, est toujours écrit.
Cas de test : Sans fond ni jeu de skins, les cles sont absentes du JSON produit.
Categorie : Unitaire · Level Writer
Criticite : Mineur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Sans fond ni jeu de skins, les cles sont absentes du JSON produit.
| TEST | ( | LevelWriterTest | , |
| SaveToFileEcritUnFichierRechargeable | ) |
saveToFile écrit un fichier qui se recharge à l'identique (round-trip disque).
Cas de test : saveToFile écrit un fichier qui se recharge à l'identique (round-trip disque).
Categorie : Unitaire · Level Writer
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : saveToFile écrit un fichier qui se recharge à l'identique (round-trip disque).
| TEST | ( | LevelWriterTest | , |
| SaveToFileVersDossierInexistantEchoueProprement | ) |
saveToFile vers un dossier inexistant échoue proprement (récupérable, EX-NFR-040).
Cas de test : saveToFile vers un dossier inexistant échoue proprement (récupérable, EX-NFR-040).
Categorie : Unitaire · Level Writer
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : saveToFile vers un dossier inexistant échoue proprement (récupérable, EX-NFR-040).
| TEST | ( | LevelWriterTest | , |
| ZonesDeCameraSurviventAuRoundTrip | ) |
Des zones de caméra dessinées à la main survivent à un aller-retour JSON, dans le même ordre (EX-LVL-007).
Cas de test : Les zones de caméra dessinées à la main survivent au round-trip.
Categorie : Unitaire · Level Writer
Criticite : Majeur
Etapes :
1. Charger un niveau déclarant deux zones de caméra.
2. Sérialiser puis recharger.
Resultat attendu : Les zones rechargées sont identiques, dans le même ordre.