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

Tests unitaires du contrat de dimensions des assets graphiques (LOT-40, EX-REN-007). More...

#include <gtest/gtest.h>
#include "HMI/Graphics/AssetContract.h"
#include "HMI/Graphics/TextureAtlas.h"

Functions

 TEST (AssetContractTest, SkinDeTuileConformeAccepte)
 Un skin de tuile exactement à la taille d'une case est accepté.
 TEST (AssetContractTest, SkinDeTuileNonConformeRefuseAvecMessage)
 Un skin de tuile aux mauvaises dimensions est refusé, avec un message nommant le fichier, la dimension trouvée et la dimension attendue.
 TEST (AssetContractTest, SkinDeTuileAnimeSpritesheetHorizontaleAcceptee)
 Un skin de tuile ANIME (LOT-46) est une spritesheet horizontale sur un seul rang : plusieurs cases de large, une case de haut.
 TEST (AssetContractTest, SkinDeTuileSurPlusieursRangsRefuse)
 Un skin de tuile de plus d'un rang (hauteur multiple de la case, mais pas exactement une case) reste refusé : la spritesheet animée n'a jamais qu'un seul rang (LOT-46).
 TEST (AssetContractTest, PlancheARaccordsExigeQuatreCasesMinimum)
 Une planche à raccords doit être un multiple de la taille de tuile et compter au moins 4x4 cases.
 TEST (AssetContractTest, FondDeNiveauSansContrainteDeGrille)
 Un fond de niveau accepte n'importe quelles dimensions strictement positives : il est étiré au rendu et n'est jamais découpé en grille.
 TEST (AssetContractTest, SpritesheetPersonnageMultipleDeCase)
 Une spritesheet de personnage doit se découper en cases entières.
 TEST (AssetContractTest, AtlasLivreConforme)
 L'atlas historique reste conforme à son propre contrat : la validation introduite par ce lot ne peut pas refuser l'asset déjà livré.
 TEST (AssetContractTest, ToutesLesFamillesSontNommees)
 Chaque famille d'asset porte un nom lisible, repris dans les messages d'erreur.

Detailed Description

Tests unitaires du contrat de dimensions des assets graphiques (LOT-40, EX-REN-007).

Function Documentation

◆ TEST() [1/9]

TEST ( AssetContractTest ,
AtlasLivreConforme  )

L'atlas historique reste conforme à son propre contrat : la validation introduite par ce lot ne peut pas refuser l'asset déjà livré.

Cas de test : L'atlas historique reste conforme au contrat de sa famille.
Categorie : Unitaire · Asset Contract
Criticite : Critique
Etapes :
1. Valider les dimensions de la grille d'atlas livree.
Resultat attendu : La validation reussit.

◆ TEST() [2/9]

TEST ( AssetContractTest ,
FondDeNiveauSansContrainteDeGrille  )

Un fond de niveau accepte n'importe quelles dimensions strictement positives : il est étiré au rendu et n'est jamais découpé en grille.

Cas de test : Un fond de niveau accepte toute dimension strictement positive.
Categorie : Unitaire · Asset Contract
Criticite : Mineur
Etapes :
1. Valider un fond aux dimensions quelconques, puis un fond de largeur nulle.
Resultat attendu : Le premier est accepte, le second refuse.

◆ TEST() [3/9]

TEST ( AssetContractTest ,
PlancheARaccordsExigeQuatreCasesMinimum  )

Une planche à raccords doit être un multiple de la taille de tuile et compter au moins 4x4 cases.

Cas de test : Une planche a raccords exige un multiple de case et au moins 4x4 cases.
Categorie : Unitaire · Asset Contract
Criticite : Majeur
Etapes :
1. Valider une planche 4x4 cases, puis 3x4 cases, puis un multiple rompu.
Resultat attendu : Seule la planche 4x4 cases est acceptee.

◆ TEST() [4/9]

TEST ( AssetContractTest ,
SkinDeTuileAnimeSpritesheetHorizontaleAcceptee  )

Un skin de tuile ANIME (LOT-46) est une spritesheet horizontale sur un seul rang : plusieurs cases de large, une case de haut.

La cohérence fine (nombre d'images, indices référencés par les clips) relève de hmi::AnimationCatalog::validateAgainstTexture. Cas de test : Une spritesheet animee (plusieurs cases de large, une case de haut) est acceptee.
Categorie : Unitaire · Asset Contract
Criticite : Majeur
Etapes :
1. Valider un skin de tuile de 64x16 px (4 images).
Resultat attendu : La validation reussit.

◆ TEST() [5/9]

TEST ( AssetContractTest ,
SkinDeTuileConformeAccepte  )

Un skin de tuile exactement à la taille d'une case est accepté.

Cas de test : Un skin de tuile de 16x16 px est accepte.
Categorie : Unitaire · Asset Contract
Criticite : Majeur
Etapes :
1. Valider un asset de la famille « skin de tuile » aux dimensions d'une case.
Resultat attendu : La validation reussit et le message est vide.

◆ TEST() [6/9]

TEST ( AssetContractTest ,
SkinDeTuileNonConformeRefuseAvecMessage  )

Un skin de tuile aux mauvaises dimensions est refusé, avec un message nommant le fichier, la dimension trouvée et la dimension attendue.

Cas de test : Un skin de tuile non conforme est refuse avec un message exploitable.
Categorie : Unitaire · Asset Contract
Criticite : Critique
Etapes :
1. Valider un skin de tuile de 24x16 px.
2. Inspecter le message d'erreur.
Resultat attendu : La validation echoue et le message nomme le fichier, le trouve et l'attendu.

◆ TEST() [7/9]

TEST ( AssetContractTest ,
SkinDeTuileSurPlusieursRangsRefuse  )

Un skin de tuile de plus d'un rang (hauteur multiple de la case, mais pas exactement une case) reste refusé : la spritesheet animée n'a jamais qu'un seul rang (LOT-46).

Cas de test : Une image sur plusieurs rangs (hauteur non conforme) est refusee.
Categorie : Unitaire · Asset Contract
Criticite : Majeur
Etapes :
1. Valider un skin de tuile de 16x32 px.
Resultat attendu : La validation echoue.

◆ TEST() [8/9]

TEST ( AssetContractTest ,
SpritesheetPersonnageMultipleDeCase  )

Une spritesheet de personnage doit se découper en cases entières.

Cas de test : Une spritesheet de personnage doit se decouper en cases entieres.
Categorie : Unitaire · Asset Contract
Criticite : Majeur
Etapes :
1. Valider une spritesheet multiple de la case, puis une spritesheet decalee.
Resultat attendu : Seule la spritesheet multiple de la case est acceptee.

◆ TEST() [9/9]

TEST ( AssetContractTest ,
ToutesLesFamillesSontNommees  )

Chaque famille d'asset porte un nom lisible, repris dans les messages d'erreur.

Cas de test : Chaque famille d'asset porte un nom lisible non vide.
Categorie : Unitaire · Asset Contract
Criticite : Mineur
Etapes :
1. Nommer chaque famille declaree.
Resultat attendu : Aucun nom n'est vide ni « Inconnu ».