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

Tests unitaires du plan pictural : modèle, format et brouillon annulable (LOT-69 TACHE-03, EX-DEC-040 à EX-DEC-044, EX-LVL-009). More...

#include <cmath>
#include <limits>
#include <string>
#include <gtest/gtest.h>
#include <nlohmann/json.hpp>
#include "Core/Levels/Level.h"
#include "Core/Levels/LevelDraft.h"
#include "Core/Levels/LevelLoader.h"
#include "Core/Levels/LevelWriter.h"
#include "Core/Levels/Plane.h"

Functions

 TEST (PlaneTest, ValeursParDefaut)
 Un plan par défaut est natif, solidaire du niveau, opaque et en arrière-plan.
 TEST (PlaneTest, DensitesValides)
 Seules les densités 4, 8 et 16 sont acceptées.
 TEST (PlaneTest, AddPlaneAjouteEnFinDeListe)
 addPlane ajoute en fin de liste ; l'ordre d'ajout est l'ordre de superposition.
 TEST (PlaneTest, RemovePlaneRetireAuRangDonne)
 removePlane retire au rang donné et reste sans effet hors bornes.
 TEST (PlaneTest, ChaqueMutateurEstAnnulableEtRefaisable)
 Chaque mutateur de plan est annulable et refaisable en un seul pas.
 TEST (PlaneTest, MutateurRefuseNEmpileRien)
 Un mutateur refusé ne modifie rien et n'empile aucun pas d'annulation.
 TEST (PlaneTest, ReordonnancementDesPlans)
 Le réordonnancement déplace le plan et renvoie son nouveau rang.
 TEST (PlaneTest, ChargementDesPlans)
 Les plans sont lus dans l'ordre déclaré, avec leurs valeurs par défaut.
 TEST (PlaneTest, ChampObsoleteDecorsIgnoreEtNonReecrit)
 Le champ obsolète decors est ignoré, jamais rejeté : un niveau personnel écrit avant le LOT-69 reste lisible (EX-LVL-005), et un simple charger-puis-enregistrer le migre.
 TEST (PlaneTest, NiveauSansPlanNEcritPasLeChamp)
 Un niveau sans plan reste valide et n'écrit pas le champ "planes".
 TEST (PlaneTest, RoundTripDesPlans)
 Le round-trip préserve les plans et omet tout champ à sa valeur par défaut.
 TEST (PlaneTest, DrapeauDeParallaxeDesactive)
 Le drapeau de parallaxe n'est écrit que lorsqu'il est désactivé.
 TEST (PlaneTest, DensiteInvalideRejetee)
 Une densité de plan invalide fait échouer le chargement.
 TEST (PlaneTest, TropDePlansRejete)
 Le nombre de plans est plafonné au chargement (garde-fou de coût).
 TEST (PlaneTest, PlanTropGrandRejete)
 Un plan dont la texture dépasserait la limite matérielle est refusé.

Detailed Description

Tests unitaires du plan pictural : modèle, format et brouillon annulable (LOT-69 TACHE-03, EX-DEC-040 à EX-DEC-044, EX-LVL-009).

Function Documentation

◆ TEST() [1/15]

TEST ( PlaneTest ,
AddPlaneAjouteEnFinDeListe  )

addPlane ajoute en fin de liste ; l'ordre d'ajout est l'ordre de superposition.

Cas de test : addPlane ajoute en fin de liste, préservant l'ordre.
Categorie : Unitaire · Plan
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : addPlane ajoute en fin de liste ; l'ordre d'ajout est l'ordre de superposition.

◆ TEST() [2/15]

TEST ( PlaneTest ,
ChampObsoleteDecorsIgnoreEtNonReecrit  )

Le champ obsolète decors est ignoré, jamais rejeté : un niveau personnel écrit avant le LOT-69 reste lisible (EX-LVL-005), et un simple charger-puis-enregistrer le migre.

Cas de test : Le champ obsolete decors est ignore, et disparait a la reecriture.
Categorie : Unitaire · Plan
Criticite : Critique
Etapes :
1. Charger un niveau portant encore le champ racine decors.
2. Reecrire le niveau charge.
Resultat attendu : Le chargement reussit, planes() est vide, et le JSON reecrit ne contient plus decors.

◆ TEST() [3/15]

TEST ( PlaneTest ,
ChaqueMutateurEstAnnulableEtRefaisable  )

Chaque mutateur de plan est annulable et refaisable en un seul pas.

Cas de test : Chaque mutateur de plan est annulable et refaisable en un pas.
Categorie : Unitaire · Plan
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Chaque mutateur de plan est annulable et refaisable en un seul pas.

◆ TEST() [4/15]

TEST ( PlaneTest ,
ChargementDesPlans  )

Les plans sont lus dans l'ordre déclaré, avec leurs valeurs par défaut.

Cas de test : Les plans sont lus dans l'ordre déclaré, avec leurs défauts.
Categorie : Unitaire · Plan
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Les plans sont lus dans l'ordre déclaré, avec leurs valeurs par défaut.

◆ TEST() [5/15]

TEST ( PlaneTest ,
DensiteInvalideRejetee  )

Une densité de plan invalide fait échouer le chargement.

Cas de test : Une densité de plan invalide fait échouer le chargement.
Categorie : Unitaire · Plan
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Une densité de plan invalide fait échouer le chargement.

◆ TEST() [6/15]

TEST ( PlaneTest ,
DensitesValides  )

Seules les densités 4, 8 et 16 sont acceptées.

Cas de test : Seules les densités 4, 8 et 16 sont acceptées.
Categorie : Unitaire · Plan
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Seules les densités 4, 8 et 16 sont acceptées.

◆ TEST() [7/15]

TEST ( PlaneTest ,
DrapeauDeParallaxeDesactive  )

Le drapeau de parallaxe n'est écrit que lorsqu'il est désactivé.

Cas de test : Le drapeau de parallaxe n'est écrit que désactivé.
Categorie : Unitaire · Plan
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Le drapeau de parallaxe n'est écrit que lorsqu'il est désactivé.

◆ TEST() [8/15]

TEST ( PlaneTest ,
MutateurRefuseNEmpileRien  )

Un mutateur refusé ne modifie rien et n'empile aucun pas d'annulation.

Cas de test : Un mutateur refusé n'empile aucun pas d'annulation.
Categorie : Unitaire · Plan
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un mutateur refusé ne modifie rien et n'empile aucun pas d'annulation.

◆ TEST() [9/15]

TEST ( PlaneTest ,
NiveauSansPlanNEcritPasLeChamp  )

Un niveau sans plan reste valide et n'écrit pas le champ "planes".

Cas de test : Un niveau sans plan n'écrit pas le champ planes.
Categorie : Unitaire · Plan
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 plan reste valide et n'écrit pas le champ "planes".

◆ TEST() [10/15]

TEST ( PlaneTest ,
PlanTropGrandRejete  )

Un plan dont la texture dépasserait la limite matérielle est refusé.

Cas de test : Un plan dépassant la limite de texture est refusé.
Categorie : Unitaire · Plan
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un plan dont la texture dépasserait la limite matérielle est refusé.

◆ TEST() [11/15]

TEST ( PlaneTest ,
RemovePlaneRetireAuRangDonne  )

removePlane retire au rang donné et reste sans effet hors bornes.

Cas de test : removePlane retire au rang donné, sans effet hors bornes.
Categorie : Unitaire · Plan
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : removePlane retire au rang donné et reste sans effet hors bornes.

◆ TEST() [12/15]

TEST ( PlaneTest ,
ReordonnancementDesPlans  )

Le réordonnancement déplace le plan et renvoie son nouveau rang.

Cas de test : Le réordonnancement déplace le plan et renvoie son nouveau rang.
Categorie : Unitaire · Plan
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Le réordonnancement déplace le plan et renvoie son nouveau rang.

◆ TEST() [13/15]

TEST ( PlaneTest ,
RoundTripDesPlans  )

Le round-trip préserve les plans et omet tout champ à sa valeur par défaut.

Cas de test : Le round-trip préserve les plans et omet les défauts.
Categorie : Unitaire · Plan
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Le round-trip préserve les plans et omet tout champ à sa valeur par défaut.

◆ TEST() [14/15]

TEST ( PlaneTest ,
TropDePlansRejete  )

Le nombre de plans est plafonné au chargement (garde-fou de coût).

Cas de test : Le nombre de plans est plafonné au chargement.
Categorie : Unitaire · Plan
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Le nombre de plans est plafonné au chargement (garde-fou de coût).

◆ TEST() [15/15]

TEST ( PlaneTest ,
ValeursParDefaut  )

Un plan par défaut est natif, solidaire du niveau, opaque et en arrière-plan.

Cas de test : Un plan par défaut est natif, solidaire, opaque et derrière.
Categorie : Unitaire · Plan
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un plan par défaut est natif, solidaire du niveau, opaque et en arrière-plan.