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

Tests des enumerations RPG et de leur coincidence avec les schemas (LOT-32, EX-CNT-011). More...

#include <filesystem>
#include <optional>
#include <set>
#include <string>
#include <string_view>
#include <vector>
#include <gtest/gtest.h>
#include "Core/Data/JsonDocument.h"
#include "Core/Rpg/RpgEnumNames.h"
#include "Core/Rpg/RpgEnums.h"

Functions

 TEST (RpgEnumsTest, AllerRetourSurToutesLesValeurs)
 Chaque valeur des trois enumerations fait l'aller-retour par son nom sans perte.
 TEST (RpgEnumsTest, LesNomsSontUniques)
 Deux valeurs distinctes ne partagent jamais le meme nom.
 TEST (RpgEnumsTest, UnNomInconnuEstRefuse)
 Un nom inconnu est refuse, jamais devine.
 TEST (RpgEnumsTest, LesEnumerationsCoincidentAvecLesSchemas)
 Les enumerations du C++ et celles des schemas sont identiques (EX-CNT-011).
 TEST (RpgEnumsTest, LesEnsemblesFermesOntLeurCardinal)
 Les ensembles fermes ont le cardinal que les regles leur donnent.

Detailed Description

Tests des enumerations RPG et de leur coincidence avec les schemas (LOT-32, EX-CNT-011).

Function Documentation

◆ TEST() [1/5]

TEST ( RpgEnumsTest ,
AllerRetourSurToutesLesValeurs  )

Chaque valeur des trois enumerations fait l'aller-retour par son nom sans perte.

Cas de test : Chaque valeur des enumerations RPG fait l'aller-retour par son nom sans perte.
Categorie : Unitaire · Enumerations RPG
Criticite : Critique
Etapes :
1. Pour chaque type de degats, condition et ecole de magie, convertir en nom puis reconvertir en valeur.
Resultat attendu : La valeur d'origine est retrouvee a chaque fois.

◆ TEST() [2/5]

TEST ( RpgEnumsTest ,
LesEnsemblesFermesOntLeurCardinal  )

Les ensembles fermes ont le cardinal que les regles leur donnent.

Cas de test : Les enumerations fermees du RPG ont le nombre de valeurs fixe par les regles.
Categorie : Unitaire · Enumerations RPG
Criticite : Majeur
Etapes :
1. Compter les types de degats, les conditions et les ecoles de magie.
Resultat attendu : 13, 15 et 8 respectivement.

◆ TEST() [3/5]

TEST ( RpgEnumsTest ,
LesEnumerationsCoincidentAvecLesSchemas  )

Les enumerations du C++ et celles des schemas sont identiques (EX-CNT-011).

Cas de test : Les enumerations partagees entre le C++ et les schemas JSON sont identiques.
Categorie : Unitaire · Enumerations RPG
Criticite : Critique
Etapes :
1. Lire les enumerations damageType, conditionRef et magicSchool de common.schema.json.

  1. Les comparer aux noms produits par core::DamageType, core::Condition et core::MagicSchool.
    Resultat attendu : Les trois paires d'ensembles sont egales ; ajouter une valeur d'un seul cote fait echouer ce test.

◆ TEST() [4/5]

TEST ( RpgEnumsTest ,
LesNomsSontUniques  )

Deux valeurs distinctes ne partagent jamais le meme nom.

Cas de test : Deux valeurs distinctes d'une enumeration RPG ne portent jamais le meme nom.
Categorie : Unitaire · Enumerations RPG
Criticite : Critique
Etapes :
1. Collecter les noms de chaque enumeration dans un ensemble.
Resultat attendu : Chaque ensemble contient autant d'elements que l'enumeration a de valeurs.

◆ TEST() [5/5]

TEST ( RpgEnumsTest ,
UnNomInconnuEstRefuse  )

Un nom inconnu est refuse, jamais devine.

Cas de test : Un nom d'enumeration RPG inconnu est refuse au lieu d'etre devine.
Categorie : Unitaire · Enumerations RPG
Criticite : Majeur
Etapes :
1. Analyser une chaine vide, un terme francais, et un nom de casse differente.
Resultat attendu : Les trois analyses echouent, sans exception.