|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires des mécanismes interrupteur↔porte (MechanismController). More...
#include <utility>#include <vector>#include <gtest/gtest.h>#include "Core/Gameplay/MechanismController.h"#include "Core/Levels/GridPosition.h"#include "Core/Levels/Level.h"#include "Core/Levels/TileMap.h"#include "Core/Levels/TileType.h"#include "Core/Math/Vector2.h"#include "Core/Physics/Aabb.h"Functions | |
| TEST (MechanismControllerTest, ContactOuvreLaPorte) | |
| Au départ, la porte est fermée (solide) ; toucher l'interrupteur l'ouvre. | |
| TEST (MechanismControllerTest, BasculeSurFront) | |
| La bascule est sur front : rester sur l'interrupteur ne re-bascule pas ; revenir bascule. | |
| TEST (MechanismControllerTest, SansContactRienNeChange) | |
| Loin de l'interrupteur, rien ne change (la porte reste fermée). | |
| TEST (MechanismControllerTest, PlaqueDePressionActivationContinue) | |
| Une plaque de pression ouvre la porte tant que le poids y repose, et la referme dès qu'il en part — activation continue, sans effet de front (EX-GP-025). | |
| TEST (MechanismControllerTest, PlaqueDePressionPoidsInsuffisant) | |
| Un poids insuffisant sur la plaque de pression n'ouvre pas la porte. | |
| TEST (MechanismControllerTest, ContactSeulNOuvrePasLaPorteVerrouillee) | |
| Le simple contact sur la clé, sans « Interagir », n'ouvre pas la porte verrouillée — contrairement à l'interrupteur (EX-GP-023, EX-CTRL-022). | |
| TEST (MechanismControllerTest, ContactEtInteragirRamasseLaCleEtOuvreDefinitivement) | |
| Contact + « Interagir » ramasse la clé et ouvre définitivement la porte verrouillée. | |
| TEST (MechanismControllerTest, InteragirSansContactNeRamassePasLaCle) | |
| « Interagir » sans être au contact de la clé ne ramasse rien. | |
| TEST (MechanismControllerTest, DeuxPairesCleEtPorteIndependantes) | |
| Deux paires clé/porte verrouillée indépendantes ne s'influencent pas : ramasser l'une n'ouvre pas l'autre. | |
| TEST (MechanismControllerTest, RechargementReinitialiseCleEtPorte) | |
| Reconstruire le contrôleur (rechargement du niveau) remet la clé et la porte dans leur état initial (EX-GP-024, même principe que le budget de mouvements). | |
Tests unitaires des mécanismes interrupteur↔porte (MechanismController).
| TEST | ( | MechanismControllerTest | , |
| BasculeSurFront | ) |
La bascule est sur front : rester sur l'interrupteur ne re-bascule pas ; revenir bascule.
Cas de test : La bascule est sur front : rester sur l'interrupteur ne re-bascule pas ; revenir bascule.
Categorie : Unitaire · Mechanism Controller
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La bascule est sur front : rester sur l'interrupteur ne re-bascule pas ; revenir bascule.
| TEST | ( | MechanismControllerTest | , |
| ContactEtInteragirRamasseLaCleEtOuvreDefinitivement | ) |
Contact + « Interagir » ramasse la clé et ouvre définitivement la porte verrouillée.
Cas de test : Contact + Interagir ramasse la clé et ouvre définitivement la porte verrouillée.
Categorie : Unitaire · Mechanism Controller
Criticite : Bloquant
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La porte s'ouvre au contact + Interagir, et reste ouverte quoi qu'il arrive ensuite.
| TEST | ( | MechanismControllerTest | , |
| ContactOuvreLaPorte | ) |
Au départ, la porte est fermée (solide) ; toucher l'interrupteur l'ouvre.
Cas de test : Au départ, la porte est fermée (solide) ; toucher l'interrupteur l'ouvre.
Categorie : Unitaire · Mechanism Controller
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Au départ, la porte est fermée (solide) ; toucher l'interrupteur l'ouvre.
| TEST | ( | MechanismControllerTest | , |
| ContactSeulNOuvrePasLaPorteVerrouillee | ) |
Le simple contact sur la clé, sans « Interagir », n'ouvre pas la porte verrouillée — contrairement à l'interrupteur (EX-GP-023, EX-CTRL-022).
Cas de test : Le simple contact sur la clé n'ouvre pas la porte verrouillée.
Categorie : Unitaire · Mechanism Controller
Criticite : Bloquant
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Le contact seul (sans Interagir) n'ouvre pas la porte verrouillée.
| TEST | ( | MechanismControllerTest | , |
| DeuxPairesCleEtPorteIndependantes | ) |
Deux paires clé/porte verrouillée indépendantes ne s'influencent pas : ramasser l'une n'ouvre pas l'autre.
Cas de test : Deux paires clé/porte verrouillée indépendantes ne s'influencent pas.
Categorie : Unitaire · Mechanism Controller
Criticite : Bloquant
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Ramasser la première clé ouvre uniquement sa porte, l'autre paire reste fermée.
| TEST | ( | MechanismControllerTest | , |
| InteragirSansContactNeRamassePasLaCle | ) |
« Interagir » sans être au contact de la clé ne ramasse rien.
Cas de test : Interagir sans contact ne ramasse pas la clé.
Categorie : Unitaire · Mechanism Controller
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Interagir loin de la clé n'a aucun effet.
| TEST | ( | MechanismControllerTest | , |
| PlaqueDePressionActivationContinue | ) |
Une plaque de pression ouvre la porte tant que le poids y repose, et la referme dès qu'il en part — activation continue, sans effet de front (EX-GP-025).
Cas de test : Une plaque de pression ouvre la porte tant que le poids y repose, et la referme dès qu'il en part.
Categorie : Unitaire · Mechanism Controller
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Une plaque de pression ouvre la porte tant que le poids y repose, et la referme dès qu'il en part.
| TEST | ( | MechanismControllerTest | , |
| PlaqueDePressionPoidsInsuffisant | ) |
Un poids insuffisant sur la plaque de pression n'ouvre pas la porte.
Cas de test : Un poids insuffisant sur la plaque de pression n'ouvre pas la porte.
Categorie : Unitaire · Mechanism Controller
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un poids insuffisant sur la plaque de pression n'ouvre pas la porte.
| TEST | ( | MechanismControllerTest | , |
| RechargementReinitialiseCleEtPorte | ) |
Reconstruire le contrôleur (rechargement du niveau) remet la clé et la porte dans leur état initial (EX-GP-024, même principe que le budget de mouvements).
Cas de test : Reconstruire le contrôleur remet la clé et la porte dans leur état initial.
Categorie : Unitaire · Mechanism Controller
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un nouveau contrôleur construit sur le même niveau redémarre porte fermée, clé non ramassée.
| TEST | ( | MechanismControllerTest | , |
| SansContactRienNeChange | ) |
Loin de l'interrupteur, rien ne change (la porte reste fermée).
Cas de test : Loin de l'interrupteur, rien ne change (la porte reste fermée).
Categorie : Unitaire · Mechanism Controller
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Loin de l'interrupteur, rien ne change (la porte reste fermée).