|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires de core::FileLogSink. More...
#include <cstdint>#include <fstream>#include <sstream>#include <string>#include <system_error>#include <gtest/gtest.h>#include "Core/Diagnostics/FileLogSink.h"Functions | |
| TEST_F (FileLogSinkTest, EcritureEstPersisteeImmediatement) | |
| Écrire un message via FileLogSink::write le persiste immédiatement dans le fichier, lisible sans fermer le sink au préalable (flush immédiat). | |
| TEST_F (FileLogSinkTest, MessagesSuccessifsUneLigneChacunOrdrePreserve) | |
| Plusieurs messages écrits successivement apparaissent dans le fichier, une ligne chacun, dans l'ordre d'écriture. | |
| TEST_F (FileLogSinkTest, CreeLesDossiersParentsManquants) | |
| Construire un FileLogSink sur un chemin dont les dossiers parents n'existent pas encore les crée, plutôt que d'échouer. | |
| TEST_F (FileLogSinkTest, EcraseParDefautCompleteAvecAppend) | |
| Par défaut, construire un FileLogSink sur un fichier déjà existant l'écrase (pas d'ajout à la suite) ; avec append = true, il complète le fichier existant. | |
| TEST_F (FileLogSinkTest, CheminInvalideSinkFermeEtWriteSilencieux) | |
| Un chemin impossible à ouvrir (dossier parent qui ne peut pas être créé) laisse le sink fermé (isOpen() == false) sans lever d'exception ; write() devient alors un no-op silencieux — journaliser ne doit jamais faire échouer l'appelant. | |
Tests unitaires de core::FileLogSink.
| TEST_F | ( | FileLogSinkTest | , |
| CheminInvalideSinkFermeEtWriteSilencieux | ) |
Un chemin impossible à ouvrir (dossier parent qui ne peut pas être créé) laisse le sink fermé (isOpen() == false) sans lever d'exception ; write() devient alors un no-op silencieux — journaliser ne doit jamais faire échouer l'appelant.
Cas de test : FileLogSink : chemin invalide, sink fermé, write() silencieux.
Categorie : Unitaire · Diagnostics
Criticite : Mineur
Etapes :
1. Construire un FileLogSink dont un segment du chemin est en réalité un fichier existant (impossible à traverser comme dossier).
2. Appeler write().
Resultat attendu : isOpen() == false ; write() ne lève rien et ne crée aucun fichier.
| TEST_F | ( | FileLogSinkTest | , |
| CreeLesDossiersParentsManquants | ) |
Construire un FileLogSink sur un chemin dont les dossiers parents n'existent pas encore les crée, plutôt que d'échouer.
Cas de test : FileLogSink : crée les dossiers parents manquants.
Categorie : Unitaire · Diagnostics
Criticite : Mineur
Etapes :
1. Construire un FileLogSink sur dir/sous/dossier/session.log (dossiers inexistants).
2. Écrire un message.
Resultat attendu : Le sink s'ouvre correctement et le fichier contient le message.
| TEST_F | ( | FileLogSinkTest | , |
| EcraseParDefautCompleteAvecAppend | ) |
Par défaut, construire un FileLogSink sur un fichier déjà existant l'écrase (pas d'ajout à la suite) ; avec append = true, il complète le fichier existant.
Cas de test : FileLogSink : écrase par défaut, complète avec append = true.
Categorie : Unitaire · Diagnostics
Criticite : Mineur
Etapes :
1. Écrire un fichier avec un premier sink.
2. Rouvrir sur le même chemin sans append, puis avec append = true.
Resultat attendu : Sans append, l'ancien contenu disparaît ; avec append, il est conservé et complété.
| TEST_F | ( | FileLogSinkTest | , |
| EcritureEstPersisteeImmediatement | ) |
Écrire un message via FileLogSink::write le persiste immédiatement dans le fichier, lisible sans fermer le sink au préalable (flush immédiat).
Cas de test : FileLogSink : écriture persistée immédiatement (flush).
Categorie : Unitaire · Diagnostics
Criticite : Majeur
Etapes :
1. Construire un FileLogSink sur un chemin dans un dossier temporaire.
2. Écrire un message.
3. Relire le fichier sans détruire le sink.
Resultat attendu : Le fichier contient le message écrit.
| TEST_F | ( | FileLogSinkTest | , |
| MessagesSuccessifsUneLigneChacunOrdrePreserve | ) |
Plusieurs messages écrits successivement apparaissent dans le fichier, une ligne chacun, dans l'ordre d'écriture.
Cas de test : FileLogSink : plusieurs messages, une ligne chacun, ordre préservé.
Categorie : Unitaire · Diagnostics
Criticite : Majeur
Etapes :
1. Construire un FileLogSink.
2. Écrire trois messages successifs.
3. Relire le fichier.
Resultat attendu : Trois lignes, dans l'ordre d'écriture.