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

Tests des especes, historiques et classes provisoires (LOT-36). More...

#include <algorithm>
#include <array>
#include <filesystem>
#include <fstream>
#include <set>
#include <string>
#include <vector>
#include <gtest/gtest.h>
#include "Core/Rpg/CharacterOptions.h"
#include "Core/Rpg/CharacterSheet.h"
#include "Core/Rpg/RpgEnumNames.h"

Functions

 TEST (CharacterOptionsTest, LesTroisCataloguesChargent)
 Les trois catalogues chargent sans une erreur.
 TEST (CharacterOptionsTest, LesEspecesConcordentAvecLesLivres)
 Sept especes concordent avec les valeurs recopiees des livres.
 TEST (CharacterOptionsTest, LAugmentationSAppliqueEtResteBornee)
 Une augmentation d'espece s'applique a une valeur de caracteristique.
 TEST (CharacterOptionsTest, LesClassesConcordentAvecLeLivre)
 Les quatre classes concordent avec la table du Player's Guide.
 TEST (CharacterOptionsTest, LaProgressionVientDeLaDonnee)
 La progression du niveau 1 au niveau 5 vient de la DONNEE, pas du C++.
 TEST (CharacterOptionsTest, LesMecanismesExigesSontAnnonces)
 Les mecanismes exiges par les donnees sont listes au chargement (EX-CNT-031).
 TEST (CharacterOptionsTest, LesClassesProvisoiresNeSontReferenceesParRien)
 Les quatre classes sont marquees provisoires, et rien de definitif ne les reference.
 TEST (CharacterOptionsTest, UnDossierAbsentEstSignale)
 Un dossier absent est signale, jamais confondu avec un catalogue vide.
 TEST (CharacterOptionsTest, LesHistoriquesCitentDesCompetencesQuiExistent)
 Chaque historique accorde des competences que le catalogue du LOT-43 connait.

Detailed Description

Tests des especes, historiques et classes provisoires (LOT-36).

L'acceptation du lot tient en quatre phrases, et chacune a son cas ici : trois classes chargent et donnent les bons modificateurs ; la progression du niveau 1 au niveau 5 ne fait intervenir AUCUNE valeur codee en C++ ; tout mecanisme absent du moteur est liste au chargement ; les quatre classes provisoires portent leur marque et aucune donnee definitive ne les reference.

Function Documentation

◆ TEST() [1/9]

TEST ( CharacterOptionsTest ,
LaProgressionVientDeLaDonnee  )

La progression du niveau 1 au niveau 5 vient de la DONNEE, pas du C++.

Cas de test : Le bonus de maitrise des niveaux 1 a 5 est lu dans la table livree.
Categorie : Unitaire · Options de personnage
Criticite : Critique
Etapes :
1. Lire le bonus de maitrise des niveaux 1 a 5 de chaque classe dans sa table.

  1. Le comparer aux valeurs de la table du livre.
    Resultat attendu : +2 du niveau 1 au 4, +3 au niveau 5, pour les quatre classes ; les vingt niveaux sont presents et se suivent sans trou.

◆ TEST() [2/9]

TEST ( CharacterOptionsTest ,
LAugmentationSAppliqueEtResteBornee  )

Une augmentation d'espece s'applique a une valeur de caracteristique.

Cas de test : L'augmentation d'une espece s'applique et reste bornee a 20.
Categorie : Unitaire · Options de personnage
Criticite : Majeur
Etapes :
1. Appliquer l'augmentation du nain a une Constitution de 14, puis de 19.
Resultat attendu : 16, puis 20 — le plafond n'est pas franchi.

◆ TEST() [3/9]

TEST ( CharacterOptionsTest ,
LesClassesConcordentAvecLeLivre  )

Les quatre classes concordent avec la table du Player's Guide.

Cas de test : Les classes simplifiees portent le de de vie et les sauvegardes du livre.
Categorie : Unitaire · Options de personnage
Criticite : Critique
Etapes :
1. Pour les quatre classes, comparer de de vie, caracteristique principale et jets de sauvegarde a la table << New Simplified Classes >> de la page 57.
Resultat attendu : Les trois valeurs coincident, et chaque classe porte exactement deux sauvegardes.

◆ TEST() [4/9]

TEST ( CharacterOptionsTest ,
LesClassesProvisoiresNeSontReferenceesParRien  )

Les quatre classes sont marquees provisoires, et rien de definitif ne les reference.

Cas de test : Les classes provisoires portent leur marque et ne sont referencees par aucune donnee definitive.
Categorie : Unitaire · Options de personnage
Criticite : Critique
Etapes :
1. Verifier que les quatre classes portent status.provisoire et un critere de retrait.

  1. Balayer tous les fichiers de Source/Elements/Rpg/ et chercher leur identifiant.
    Resultat attendu : Aucune donnee definitive ne les cite : le jour du retrait, supprimer ces quatre fichiers ne casse rien.

◆ TEST() [5/9]

TEST ( CharacterOptionsTest ,
LesEspecesConcordentAvecLesLivres  )

Sept especes concordent avec les valeurs recopiees des livres.

Cas de test : Les especes livrees portent les valeurs des livres dont elles sont tirees.
Categorie : Unitaire · Options de personnage
Criticite : Critique
Etapes :
1. Pour sept especes des trois livres, comparer provenance, taille, vitesse et augmentation de caracteristique aux valeurs lues sur les documents.
Resultat attendu : Les quatre valeurs coincident pour chacune.

◆ TEST() [6/9]

TEST ( CharacterOptionsTest ,
LesHistoriquesCitentDesCompetencesQuiExistent  )

Chaque historique accorde des competences que le catalogue du LOT-43 connait.

Cas de test : Les competences citees par un historique existent au catalogue.
Categorie : Unitaire · Options de personnage
Criticite : Majeur
Etapes :
1. Pour chaque historique, verifier que le fichier de chaque competence citee existe dans Source/Elements/Rpg/skills/.
Resultat attendu : Toutes existent : une competence inventee ferait refuser une maitrise sans que rien ne dise pourquoi.

◆ TEST() [7/9]

TEST ( CharacterOptionsTest ,
LesMecanismesExigesSontAnnonces  )

Les mecanismes exiges par les donnees sont listes au chargement (EX-CNT-031).

Cas de test : Une espece qui exige un mecanisme absent le declare au chargement.
Categorie : Unitaire · Options de personnage
Criticite : Majeur
Etapes :
1. Collecter les mecanismesRequis des especes chargees.
Resultat attendu : L'augmentation de caracteristique au choix du joueur y figure : les especes de Tanares la laissent au joueur, et la table du schema ne sait pas la porter.

◆ TEST() [8/9]

TEST ( CharacterOptionsTest ,
LesTroisCataloguesChargent  )

Les trois catalogues chargent sans une erreur.

Cas de test : Les especes, historiques et classes livres se chargent tous.
Categorie : Unitaire · Options de personnage
Criticite : Critique
Etapes :
1. Charger species/, backgrounds/ et classes/.
Resultat attendu : Aucune erreur ; chaque entree a un identifiant unique, un nom et une provenance.

◆ TEST() [9/9]

TEST ( CharacterOptionsTest ,
UnDossierAbsentEstSignale  )

Un dossier absent est signale, jamais confondu avec un catalogue vide.

Cas de test : Charger un dossier d'options inexistant produit une erreur nommee.
Categorie : Unitaire · Options de personnage
Criticite : Majeur
Etapes :
1. Charger trois chemins qui n'existent pas.
Resultat attendu : Trois erreurs nommant les chemins, aucune entree, aucune exception.