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

Tests unitaires de la détection d'événements de jeu (LOT-60, EX-REN-047). More...

#include <algorithm>
#include <optional>
#include <vector>
#include <gtest/gtest.h>
#include "HMI/Game/GameEvents.h"

Functions

 TEST (GameEventsTest, InterrupteurBasculeProduitSwitchToggled)
 Un interrupteur (non continu) qui bascule produit SwitchToggled.
 TEST (GameEventsTest, PlaquePresseeProduitPressurePlatePressed)
 Une plaque de pression enfoncee produit PressurePlatePressed, pas SwitchToggled.
 TEST (GameEventsTest, PlaqueRelacheeProduitPressurePlateReleased)
 Une plaque de pression relachee produit PressurePlateReleased.
 TEST (GameEventsTest, MecanismeStableNeProduitRien)
 Un mecanisme dont l'etat ne change pas ne produit aucun evenement.
 TEST (GameEventsTest, SeulLeMecanismeQuiChangeProduitUnEvenement)
 Seul le mecanisme qui transitionne produit un evenement, les autres restent muets.
 TEST (GameEventsTest, TaillesIncoherentesNIgnorentSansPlanter)
 Une taille incoherente entre les vecteurs ignore l'index en trop sans planter.
 TEST (GameEventsTest, IssueEnCoursNeProduitRien)
 L'issue Playing ne produit aucun evenement.
 TEST (GameEventsTest, IssueGagneeProduitExitReached)
 L'issue Won produit ExitReached.
 TEST (GameEventsTest, IssuePerdueProduitDied)
 L'issue Lost produit Died.

Detailed Description

Tests unitaires de la détection d'événements de jeu (LOT-60, EX-REN-047).

Function Documentation

◆ TEST() [1/9]

TEST ( GameEventsTest ,
InterrupteurBasculeProduitSwitchToggled  )

Un interrupteur (non continu) qui bascule produit SwitchToggled.

Cas de test : Un interrupteur bascule produit l'evenement SwitchToggled.
Categorie : Unitaire · Detection d'evenements
Criticite : Critique
Etapes :
1. Un mecanisme non continu passe de ferme a ouvert.
Resultat attendu : La liste contient exactement un evenement : SwitchToggled.

◆ TEST() [2/9]

TEST ( GameEventsTest ,
IssueEnCoursNeProduitRien  )

L'issue Playing ne produit aucun evenement.

Cas de test : Une partie en cours ne produit aucun evenement d'issue.
Categorie : Unitaire · Detection d'evenements
Criticite : Majeur
Etapes :
1. Traduire core::LevelOutcome::Playing.
Resultat attendu : std::nullopt.

◆ TEST() [3/9]

TEST ( GameEventsTest ,
IssueGagneeProduitExitReached  )

L'issue Won produit ExitReached.

Cas de test : Une issue gagnee produit l'evenement ExitReached.
Categorie : Unitaire · Detection d'evenements
Criticite : Critique
Etapes :
1. Traduire core::LevelOutcome::Won.
Resultat attendu : GameEvent::ExitReached.

◆ TEST() [4/9]

TEST ( GameEventsTest ,
IssuePerdueProduitDied  )

L'issue Lost produit Died.

Cas de test : Une issue perdue produit l'evenement Died.
Categorie : Unitaire · Detection d'evenements
Criticite : Critique
Etapes :
1. Traduire core::LevelOutcome::Lost.
Resultat attendu : GameEvent::Died.

◆ TEST() [5/9]

TEST ( GameEventsTest ,
MecanismeStableNeProduitRien  )

Un mecanisme dont l'etat ne change pas ne produit aucun evenement.

Cas de test : Un mecanisme stable ne produit aucun evenement.
Categorie : Unitaire · Detection d'evenements
Criticite : Majeur
Etapes :
1. previous et current identiques pour un jeu de mecanismes.
Resultat attendu : La liste d'evenements est vide.

◆ TEST() [6/9]

TEST ( GameEventsTest ,
PlaquePresseeProduitPressurePlatePressed  )

Une plaque de pression enfoncee produit PressurePlatePressed, pas SwitchToggled.

Cas de test : Une plaque de pression enfoncee produit PressurePlatePressed.
Categorie : Unitaire · Detection d'evenements
Criticite : Critique
Etapes :
1. Un mecanisme continu passe de ferme a ouvert.
Resultat attendu : La liste contient exactement un evenement : PressurePlatePressed.

◆ TEST() [7/9]

TEST ( GameEventsTest ,
PlaqueRelacheeProduitPressurePlateReleased  )

Une plaque de pression relachee produit PressurePlateReleased.

Cas de test : Une plaque de pression relachee produit PressurePlateReleased.
Categorie : Unitaire · Detection d'evenements
Criticite : Majeur
Etapes :
1. Un mecanisme continu passe d'ouvert a ferme.
Resultat attendu : La liste contient exactement un evenement : PressurePlateReleased.

◆ TEST() [8/9]

TEST ( GameEventsTest ,
SeulLeMecanismeQuiChangeProduitUnEvenement  )

Seul le mecanisme qui transitionne produit un evenement, les autres restent muets.

Cas de test : Un seul mecanisme sur plusieurs qui change produit un seul evenement.
Categorie : Unitaire · Detection d'evenements
Criticite : Majeur
Etapes :
1. Trois mecanismes, un seul change d'etat.
Resultat attendu : Exactement un evenement, correspondant au mecanisme qui a change.

◆ TEST() [9/9]

TEST ( GameEventsTest ,
TaillesIncoherentesNIgnorentSansPlanter  )

Une taille incoherente entre les vecteurs ignore l'index en trop sans planter.

Cas de test : Des vecteurs de tailles differentes ne provoquent aucun acces hors bornes.
Categorie : Unitaire · Detection d'evenements
Criticite : Mineur
Etapes :
1. previous a 2 elements, current en a 3, isContinuous en a 2.
Resultat attendu : Aucun plantage ; seuls les index communs aux trois vecteurs sont consideres.