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

Tests unitaires de la détection des références à un asset (LOT-43 TACHE-02). More...

#include <string>
#include <vector>
#include <gtest/gtest.h>
#include "Core/Levels/TileType.h"
#include "HMI/Editor/AssetReferences.h"
#include "HMI/Graphics/SkinCatalog.h"

Functions

 TEST (AssetReferencesTest, AssetCiteParUnJeuEstTrouve)
 Un asset cité par un jeu de skins est retrouvé, avec le nom du jeu qui le cite : c'est ce qui permet d'avertir avant de supprimer ou renommer un fichier encore utilisé.
 TEST (AssetReferencesTest, AssetCiteParPlusieursJeuxEtTypesEstTrouveAChaqueFois)
 Chaque citation compte séparément : un même fichier utilisé par deux types dans un jeu et par un troisième dans un autre donne trois références.
 TEST (AssetReferencesTest, AssetNonReferenceNeDonneAucuneReference)
 Un asset que rien ne cite ne donne aucune référence : c'est le cas où la suppression est sans danger, et où aucun avertissement ne doit venir déranger l'auteur.
 TEST (AssetReferencesTest, NomProcheMaisDifferentNeDeclenchePasDeFauxPositif)
 La comparaison porte sur le nom entier, pas sur un préfixe : stone2.png ne compte pas comme une référence à stone.png.
 TEST (AssetReferencesTest, DescribeReferencesEstVideSansReference)
 Sans référence, le message descriptif est vide — pas une phrase du genre « utilisé par (rien) » que l'appelant devrait ensuite filtrer : une chaîne vide se teste directement.
 TEST (AssetReferencesTest, DescribeReferencesNommeLesJeuxEtLesTypes)
 Le message nomme les jeux et les types concernés, pas seulement leur nombre : c'est ce qui permet à l'auteur d'aller corriger les usages avant de confirmer une suppression.

Detailed Description

Tests unitaires de la détection des références à un asset (LOT-43 TACHE-02).

Function Documentation

◆ TEST() [1/6]

TEST ( AssetReferencesTest ,
AssetCiteParPlusieursJeuxEtTypesEstTrouveAChaqueFois  )

Chaque citation compte séparément : un même fichier utilisé par deux types dans un jeu et par un troisième dans un autre donne trois références.

L'avertissement doit énumérer tout ce qui casserait, pas seulement le premier usage rencontré. Cas de test : Un asset cité par plusieurs jeux et types donne une référence par citation.
Categorie : Unitaire · Références d'assets
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST() [2/6]

TEST ( AssetReferencesTest ,
AssetCiteParUnJeuEstTrouve  )

Un asset cité par un jeu de skins est retrouvé, avec le nom du jeu qui le cite : c'est ce qui permet d'avertir avant de supprimer ou renommer un fichier encore utilisé.

Cas de test : Un asset cité par un jeu de skins est retrouvé, avec le nom du jeu.
Categorie : Unitaire · Références d'assets
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST() [3/6]

TEST ( AssetReferencesTest ,
AssetNonReferenceNeDonneAucuneReference  )

Un asset que rien ne cite ne donne aucune référence : c'est le cas où la suppression est sans danger, et où aucun avertissement ne doit venir déranger l'auteur.

Cas de test : Un asset non référencé ne donne aucune référence.
Categorie : Unitaire · Références d'assets
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST() [4/6]

TEST ( AssetReferencesTest ,
DescribeReferencesEstVideSansReference  )

Sans référence, le message descriptif est vide — pas une phrase du genre « utilisé par (rien) » que l'appelant devrait ensuite filtrer : une chaîne vide se teste directement.

Cas de test : Sans référence, le message descriptif est vide.
Categorie : Unitaire · Références d'assets
Criticite : Mineur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST() [5/6]

TEST ( AssetReferencesTest ,
DescribeReferencesNommeLesJeuxEtLesTypes  )

Le message nomme les jeux et les types concernés, pas seulement leur nombre : c'est ce qui permet à l'auteur d'aller corriger les usages avant de confirmer une suppression.

Cas de test : Le message descriptif nomme les jeux de skins et les types concernés.
Categorie : Unitaire · Références d'assets
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST() [6/6]

TEST ( AssetReferencesTest ,
NomProcheMaisDifferentNeDeclenchePasDeFauxPositif  )

La comparaison porte sur le nom entier, pas sur un préfixe : stone2.png ne compte pas comme une référence à stone.png.

Un faux positif ferait renoncer à une suppression pourtant sans risque, et userait la confiance dans l'avertissement. Cas de test : Un nom proche mais différent ne déclenche pas de fausse référence.
Categorie : Unitaire · Références d'assets
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.