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

Tests unitaires des opérations fichiers sur les assets (LOT-43 TACHE-02). More...

#include <cstdint>
#include <filesystem>
#include <fstream>
#include <string>
#include <system_error>
#include <gtest/gtest.h>
#include "HMI/Editor/AssetFileOperations.h"
#include "HMI/Graphics/AssetContract.h"
#include "HMI/Graphics/TextureAtlas.h"

Functions

 TEST_F (AssetFileOps, ImporteUnAssetConforme)
 Importer un asset conforme le copie dans le dossier géré, en laissant l'original en place : l'auteur importe depuis son dossier de travail, qui ne doit pas se vider au fur et à mesure des imports.
 TEST_F (AssetFileOps, RefuseUnAssetNonConforme)
 Un asset non conforme au contrat de sa famille est refusé, le message nomme le fichier, et rien n'est copié : un asset aux mauvaises dimensions accepté ne se manifesterait qu'au rendu, longtemps après l'import, sous forme de tuiles décalées.
 TEST_F (AssetFileOps, RefuseUneCollisionAlImport)
 Importer un second fichier de même nom est refusé plutôt qu'écrasant : deux fichiers homonymes venus de dossiers différents sont un cas courant, et l'asset déjà référencé par des niveaux ne doit pas être remplacé à l'insu de l'auteur.
 TEST_F (AssetFileOps, RenommeEtConserveLExtension)
 Renommer conserve l'extension d'origine et déplace le fichier : l'auteur saisit un nom, pas un nom de fichier.
 TEST_F (AssetFileOps, RefuseUnNomInvalideAuRenommage)
 Un nom invalide au renommage (barre oblique, qui sortirait du dossier géré) est refusé sans rien changer : le fichier d'origine reste en place, l'opération est tout ou rien.
 TEST_F (AssetFileOps, DupliqueSousUnNomUnique)
 Dupliquer deux fois le même asset produit deux copies distinctes : le nom est rendu unique à chaque appel, sinon la seconde duplication écraserait la première — le geste courant pour décliner une variante de skin.
 TEST_F (AssetFileOps, SupprimeLeFichier)
 Supprimer retire effectivement l'asset du disque et le signale par un résultat favorable — la grille du panneau se fie à ce résultat pour retirer la vignette.
 TEST_F (AssetFileOps, OperationSurFichierAbsentEchoueProprement)
 Renommer, dupliquer ou supprimer un fichier absent échoue par un résultat récupérable, jamais par une exception : le fichier a pu disparaître entre le balayage et le clic (suppression externe, rechargement à chaud), et l'éditeur doit le signaler sans s'interrompre.

Detailed Description

Tests unitaires des opérations fichiers sur les assets (LOT-43 TACHE-02).

Function Documentation

◆ TEST_F() [1/8]

TEST_F ( AssetFileOps ,
DupliqueSousUnNomUnique  )

Dupliquer deux fois le même asset produit deux copies distinctes : le nom est rendu unique à chaque appel, sinon la seconde duplication écraserait la première — le geste courant pour décliner une variante de skin.

Cas de test : Dupliquer deux fois le même asset produit deux copies distinctes.
Categorie : Unitaire · Opérations sur fichiers d'assets
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST_F() [2/8]

TEST_F ( AssetFileOps ,
ImporteUnAssetConforme  )

Importer un asset conforme le copie dans le dossier géré, en laissant l'original en place : l'auteur importe depuis son dossier de travail, qui ne doit pas se vider au fur et à mesure des imports.

Cas de test : Importer un asset conforme le copie sans déplacer l'original.
Categorie : Unitaire · Opérations sur fichiers d'assets
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST_F() [3/8]

TEST_F ( AssetFileOps ,
OperationSurFichierAbsentEchoueProprement  )

Renommer, dupliquer ou supprimer un fichier absent échoue par un résultat récupérable, jamais par une exception : le fichier a pu disparaître entre le balayage et le clic (suppression externe, rechargement à chaud), et l'éditeur doit le signaler sans s'interrompre.

Cas de test : Renommer, dupliquer ou supprimer un fichier absent échoue proprement.
Categorie : Unitaire · Opérations sur fichiers d'assets
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST_F() [4/8]

TEST_F ( AssetFileOps ,
RefuseUnAssetNonConforme  )

Un asset non conforme au contrat de sa famille est refusé, le message nomme le fichier, et rien n'est copié : un asset aux mauvaises dimensions accepté ne se manifesterait qu'au rendu, longtemps après l'import, sous forme de tuiles décalées.

Cas de test : Un asset non conforme est refusé en nommant le fichier, sans rien copier.
Categorie : Unitaire · Opérations sur fichiers d'assets
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST_F() [5/8]

TEST_F ( AssetFileOps ,
RefuseUneCollisionAlImport  )

Importer un second fichier de même nom est refusé plutôt qu'écrasant : deux fichiers homonymes venus de dossiers différents sont un cas courant, et l'asset déjà référencé par des niveaux ne doit pas être remplacé à l'insu de l'auteur.

Cas de test : Importer un second fichier de même nom est refusé, sans écraser le premier.
Categorie : Unitaire · Opérations sur fichiers d'assets
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST_F() [6/8]

TEST_F ( AssetFileOps ,
RefuseUnNomInvalideAuRenommage  )

Un nom invalide au renommage (barre oblique, qui sortirait du dossier géré) est refusé sans rien changer : le fichier d'origine reste en place, l'opération est tout ou rien.

Cas de test : Un nom invalide au renommage est refusé sans rien changer.
Categorie : Unitaire · Opérations sur fichiers d'assets
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST_F() [7/8]

TEST_F ( AssetFileOps ,
RenommeEtConserveLExtension  )

Renommer conserve l'extension d'origine et déplace le fichier : l'auteur saisit un nom, pas un nom de fichier.

Perdre l'extension rendrait l'asset invisible au balayage, qui ne retient que les images. Cas de test : Renommer un asset conserve son extension et déplace le fichier.
Categorie : Unitaire · Opérations sur fichiers d'assets
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST_F() [8/8]

TEST_F ( AssetFileOps ,
SupprimeLeFichier  )

Supprimer retire effectivement l'asset du disque et le signale par un résultat favorable — la grille du panneau se fie à ce résultat pour retirer la vignette.

Cas de test : Supprimer retire effectivement l'asset du disque.
Categorie : Unitaire · Opérations sur fichiers d'assets
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.