JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
test_level_file_operations.cpp File Reference
#include <cstdint>
#include <filesystem>
#include <fstream>
#include <string>
#include <system_error>
#include <vector>
#include <gtest/gtest.h>
#include "HMI/Editor/LevelFileOperations.h"

Functions

 TEST_F (LevelFileOps, CreeUnNiveauValide)
 Créer un niveau écrit sur disque un fichier valide et l'expose immédiatement dans la liste : la création part d'un core::LevelDraft vide passé par la validation, jamais d'un fichier vide qui échouerait au premier chargement.
 TEST_F (LevelFileOps, FichierDeSequenceExcluDeLaListe)
 Un fichier de séquence de contenu (sequence-*.json, LOT-59 TACHE-04) partageant le dossier des niveaux n'est pas un niveau et ne doit jamais apparaître dans la liste : il ne se chargerait pas comme tel si l'utilisateur tentait de l'ouvrir depuis ce panneau.
 TEST_F (LevelFileOps, RefuseNomInvalideEtCollision)
 Un nom invalide (barre oblique, qui s'échapperait du dossier des niveaux) et un nom déjà pris sont refusés par un résultat récupérable, jamais par une exception ni par un écrasement silencieux du niveau existant.
 TEST_F (LevelFileOps, RenommeEtDeplaceLeFichier)
 Renommer déplace le fichier : l'ancien chemin disparaît et le nouveau existe.
 TEST_F (LevelFileOps, DupliqueSousUnNomUnique)
 Dupliquer deux fois le même niveau produit deux copies distinctes : le nom de la copie est rendu unique à chaque appel, sinon la seconde duplication écraserait la première.
 TEST_F (LevelFileOps, SupprimeLeFichier)
 Supprimer retire effectivement le fichier du disque et le signale par un résultat favorable — le panneau se fie à ce résultat pour retirer la ligne de sa liste.

Function Documentation

◆ TEST_F() [1/6]

TEST_F ( LevelFileOps ,
CreeUnNiveauValide  )

Créer un niveau écrit sur disque un fichier valide et l'expose immédiatement dans la liste : la création part d'un core::LevelDraft vide passé par la validation, jamais d'un fichier vide qui échouerait au premier chargement.

Cas de test : Créer un niveau écrit un fichier valide, immédiatement listé.
Categorie : Unitaire · Opérations sur fichiers de niveau
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST_F() [2/6]

TEST_F ( LevelFileOps ,
DupliqueSousUnNomUnique  )

Dupliquer deux fois le même niveau produit deux copies distinctes : le nom de la copie est rendu unique à chaque appel, sinon la seconde duplication écraserait la première.

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

◆ TEST_F() [3/6]

TEST_F ( LevelFileOps ,
FichierDeSequenceExcluDeLaListe  )

Un fichier de séquence de contenu (sequence-*.json, LOT-59 TACHE-04) partageant le dossier des niveaux n'est pas un niveau et ne doit jamais apparaître dans la liste : il ne se chargerait pas comme tel si l'utilisateur tentait de l'ouvrir depuis ce panneau.

Cas de test : Un fichier de séquence n'apparaît jamais dans la liste des niveaux.
Categorie : Unitaire · Opérations sur fichiers de niveau
Criticite : Majeur
Etapes :
1. Créer un niveau valide, puis écrire à côté un fichier sequence-demo.json quelconque.
2. Lister le dossier.
Resultat attendu : Seul le niveau valide apparaît dans la liste ; le fichier de séquence en est exclu.

◆ TEST_F() [4/6]

TEST_F ( LevelFileOps ,
RefuseNomInvalideEtCollision  )

Un nom invalide (barre oblique, qui s'échapperait du dossier des niveaux) et un nom déjà pris sont refusés par un résultat récupérable, jamais par une exception ni par un écrasement silencieux du niveau existant.

Cas de test : Un nom invalide ou déjà pris est refusé, sans écraser le niveau existant.
Categorie : Unitaire · Opérations sur fichiers de niveau
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST_F() [5/6]

TEST_F ( LevelFileOps ,
RenommeEtDeplaceLeFichier  )

Renommer déplace le fichier : l'ancien chemin disparaît et le nouveau existe.

Une copie qui laisserait l'ancien en place produirait deux niveaux là où l'auteur en attend un. Cas de test : Renommer déplace le fichier : l'ancien chemin disparaît, le nouveau existe.
Categorie : Unitaire · Opérations sur fichiers de niveau
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST_F() [6/6]

TEST_F ( LevelFileOps ,
SupprimeLeFichier  )

Supprimer retire effectivement le fichier du disque et le signale par un résultat favorable — le panneau se fie à ce résultat pour retirer la ligne de sa liste.

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