|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires de la traduction clavier/manette → intention (toPlayerInput). More...
#include <gtest/gtest.h>#include "Core/Physics/PlayerInput.h"#include "HMI/Input/GameKeyBindings.h"#include "HMI/Input/GamepadBindings.h"#include "HMI/Input/InputState.h"#include "HMI/Input/PlayerInputMapper.h"Functions | |
| TEST (PlayerInputMapperTest, FlecheGauche) | |
| Flèche gauche seule → intention vers la gauche (-1). | |
| TEST (PlayerInputMapperTest, FlecheDroite) | |
| Flèche droite seule → intention vers la droite (+1). | |
| TEST (PlayerInputMapperTest, SansRemapQDWNeDeclenchentRien) | |
| Sans remap, Q/D/W ne déclenchent rien (aucun alias fixe). | |
| TEST (PlayerInputMapperTest, AucuneTouche) | |
| Aucune touche → intention nulle (immobile). | |
| TEST (PlayerInputMapperTest, GaucheEtDroiteSeNeutralisent) | |
| Gauche et droite simultanées → neutralisation (0). | |
| TEST (PlayerInputMapperTest, EspacePresseeDeclencheLeSaut) | |
| Espace fraîchement enfoncée → saut pressé (front) et maintenu. | |
| TEST (PlayerInputMapperTest, SautMaintenuN_estPasUnFront) | |
| Saut maintenu sans nouveau front → jumpHeld vrai mais jumpPressed faux. | |
| TEST (PlayerInputMapperTest, PasDeSaut) | |
| Aucune touche de saut → ni pressé ni maintenu. | |
| TEST (PlayerInputMapperTest, DeplacementEtSautIndependants) | |
| Déplacement et saut sont indépendants (axes distincts). | |
| TEST (PlayerInputMapperTest, MajDeclencheLeDash) | |
| Maj fraîchement enfoncée → dash pressé (front). | |
| TEST (PlayerInputMapperTest, ViseeVerticale) | |
| Visée verticale (y vers le bas) : Bas → +1, Haut → -1, les deux → 0. | |
| TEST (PlayerInputMapperTest, RemapperUneActionClavierUtiliseLaNouvelleTouche) | |
| Une action remappée au clavier (LOT-29) réagit à sa nouvelle touche. | |
| TEST (PlayerInputMapperTest, RemapperGaucheEtDroiteSurDesTouchesDistinctesNeLesAnnulePas) | |
| Remapper Gauche et Droite chacune sur une touche arbitraire et distincte produit un mouvement dans le bon sens pour chacune, sans neutralisation croisée. | |
| TEST (PlayerInputMapperTest, ActionDeclencheeParSonBoutonManetteParDefaut) | |
| Une action déclenchée par son bouton manette lié (piste brute), indépendamment du clavier. | |
| TEST (PlayerInputMapperTest, RemapperUneActionManetteUtiliseLeNouveauBouton) | |
| Une action remappée manette (LOT-30) réagit à son nouveau bouton, plus au clavier. | |
| TEST (PlayerInputMapperTest, RemapperGaucheEtDroiteManetteSurDesBoutonsDistinctsNeLesAnnulePas) | |
| Remapper deux actions sur des boutons manette distincts ne les neutralise pas l'une l'autre (même invariant que le clavier). | |
| TEST (PlayerInputMapperTest, EPresseeDeclencheInteragir) | |
| E fraîchement enfoncée → Interagir pressé (front) et maintenu ; aucune touche → ni pressé ni maintenu. | |
| TEST (PlayerInputMapperTest, InteragirMaintenuN_estPasUnFront) | |
| Interagir maintenu sans nouveau front → interactHeld vrai mais interactPressed faux. | |
| TEST (PlayerInputMapperTest, RelacherEDeclencheInteragirRelache) | |
| Relâcher E produit le front interactReleased, une frame seulement. | |
| TEST (PlayerInputMapperTest, BoutonXManetteDeclencheInteragir) | |
| Interagir se déclenche aussi via son bouton manette lié (X) par défaut, indépendamment du clavier. | |
| TEST (PlayerInputMapperTest, RemapperInteragirUtiliseLaNouvelleSource) | |
| Remapper Interagir (clavier ou manette) réagit à la nouvelle source, sans changer le comportement par contact des mécanismes existants (aucun autre champ affecté). | |
Tests unitaires de la traduction clavier/manette → intention (toPlayerInput).
| TEST | ( | PlayerInputMapperTest | , |
| ActionDeclencheeParSonBoutonManetteParDefaut | ) |
Une action déclenchée par son bouton manette lié (piste brute), indépendamment du clavier.
Cas de test : Une action est déclenchée par son bouton manette lié.
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Une action est déclenchée par son bouton manette lié.
| TEST | ( | PlayerInputMapperTest | , |
| AucuneTouche | ) |
Aucune touche → intention nulle (immobile).
Cas de test : Aucune touche → intention nulle (immobile).
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Aucune touche → intention nulle (immobile).
| TEST | ( | PlayerInputMapperTest | , |
| BoutonXManetteDeclencheInteragir | ) |
Interagir se déclenche aussi via son bouton manette lié (X) par défaut, indépendamment du clavier.
Cas de test : Interagir se déclenche via son bouton manette par défaut (X).
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Le bouton X manette declenche interactPressed, sans qu'aucune touche clavier ne soit enfoncee.
| TEST | ( | PlayerInputMapperTest | , |
| DeplacementEtSautIndependants | ) |
Déplacement et saut sont indépendants (axes distincts).
Cas de test : Déplacement et saut sont indépendants (axes distincts).
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Déplacement et saut sont indépendants (axes distincts).
| TEST | ( | PlayerInputMapperTest | , |
| EPresseeDeclencheInteragir | ) |
E fraîchement enfoncée → Interagir pressé (front) et maintenu ; aucune touche → ni pressé ni maintenu.
Cas de test : E fraîchement enfoncée → Interagir pressé (front) et maintenu.
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : E fraîchement enfoncée → interactPressed et interactHeld vrais ; sans la touche, les deux sont faux.
| TEST | ( | PlayerInputMapperTest | , |
| EspacePresseeDeclencheLeSaut | ) |
Espace fraîchement enfoncée → saut pressé (front) et maintenu.
Cas de test : Espace fraîchement enfoncée → saut pressé (front) et maintenu.
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Espace fraîchement enfoncée → saut pressé (front) et maintenu.
| TEST | ( | PlayerInputMapperTest | , |
| FlecheDroite | ) |
Flèche droite seule → intention vers la droite (+1).
Cas de test : Flèche droite seule → intention vers la droite (+1).
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Flèche droite seule → intention vers la droite (+1).
| TEST | ( | PlayerInputMapperTest | , |
| FlecheGauche | ) |
Flèche gauche seule → intention vers la gauche (-1).
Cas de test : Flèche gauche seule → intention vers la gauche (-1).
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Flèche gauche seule → intention vers la gauche (-1).
| TEST | ( | PlayerInputMapperTest | , |
| GaucheEtDroiteSeNeutralisent | ) |
Gauche et droite simultanées → neutralisation (0).
Cas de test : Gauche et droite simultanées → neutralisation (0).
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Gauche et droite simultanées → neutralisation (0).
| TEST | ( | PlayerInputMapperTest | , |
| InteragirMaintenuN_estPasUnFront | ) |
Interagir maintenu sans nouveau front → interactHeld vrai mais interactPressed faux.
Cas de test : Interagir maintenu sans nouveau front → interactHeld vrai mais interactPressed faux.
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Sur une deuxième frame avec E toujours enfoncée, interactPressed est faux et interactHeld reste vrai.
| TEST | ( | PlayerInputMapperTest | , |
| MajDeclencheLeDash | ) |
Maj fraîchement enfoncée → dash pressé (front).
Cas de test : Maj fraîchement enfoncée → dash pressé (front).
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Maj fraîchement enfoncée → dash pressé (front).
| TEST | ( | PlayerInputMapperTest | , |
| PasDeSaut | ) |
Aucune touche de saut → ni pressé ni maintenu.
Cas de test : Aucune touche de saut → ni pressé ni maintenu.
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Aucune touche de saut → ni pressé ni maintenu.
| TEST | ( | PlayerInputMapperTest | , |
| RelacherEDeclencheInteragirRelache | ) |
Relâcher E produit le front interactReleased, une frame seulement.
Cas de test : Relâcher E produit le front interactReleased, une frame seulement.
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Après onKeyUp, interactReleased est vrai à la frame du relâchement puis faux à la frame suivante.
| TEST | ( | PlayerInputMapperTest | , |
| RemapperGaucheEtDroiteManetteSurDesBoutonsDistinctsNeLesAnnulePas | ) |
Remapper deux actions sur des boutons manette distincts ne les neutralise pas l'une l'autre (même invariant que le clavier).
Cas de test : Remapper deux actions manette sur des boutons distincts ne les neutralise pas l'une l'autre.
Categorie : Unitaire · Player Input Mapper
Criticite : Bloquant
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Remapper deux actions manette sur des boutons distincts ne les neutralise pas.
| TEST | ( | PlayerInputMapperTest | , |
| RemapperGaucheEtDroiteSurDesTouchesDistinctesNeLesAnnulePas | ) |
Remapper Gauche et Droite chacune sur une touche arbitraire et distincte produit un mouvement dans le bon sens pour chacune, sans neutralisation croisée.
Cas de test : Remapper Gauche et Droite sur des touches distinctes ne les neutralise pas l'une l'autre.
Categorie : Unitaire · Player Input Mapper
Criticite : Bloquant
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Remapper Gauche sur D et Droite sur Q produit le mouvement attendu pour chacune.
| TEST | ( | PlayerInputMapperTest | , |
| RemapperInteragirUtiliseLaNouvelleSource | ) |
Remapper Interagir (clavier ou manette) réagit à la nouvelle source, sans changer le comportement par contact des mécanismes existants (aucun autre champ affecté).
Cas de test : Remapper Interagir réagit à la nouvelle touche/bouton.
Categorie : Unitaire · Player Input Mapper
Criticite : Bloquant
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Remapper Interagir sur F1 (clavier) ou Y (manette) le declenche via cette nouvelle source ; la source par defaut de l'autre peripherique reste independante.
| TEST | ( | PlayerInputMapperTest | , |
| RemapperUneActionClavierUtiliseLaNouvelleTouche | ) |
Une action remappée au clavier (LOT-29) réagit à sa nouvelle touche.
Cas de test : Une action remappée au clavier réagit à sa nouvelle touche.
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Une action remappée au clavier réagit à sa nouvelle touche.
| TEST | ( | PlayerInputMapperTest | , |
| RemapperUneActionManetteUtiliseLeNouveauBouton | ) |
Une action remappée manette (LOT-30) réagit à son nouveau bouton, plus au clavier.
Cas de test : Une action remappée manette réagit à son nouveau bouton, le clavier reste indépendant.
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Remapper Sauter sur X (manette) le déclenche via X ; le clavier (Espace) reste indépendant.
| TEST | ( | PlayerInputMapperTest | , |
| SansRemapQDWNeDeclenchentRien | ) |
Sans remap, Q/D/W ne déclenchent rien (aucun alias fixe).
Cas de test : Sans remap, Q/D/W ne déclenchent rien (aucun alias fixe).
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Sans remap, Q/D/W ne déclenchent rien.
| TEST | ( | PlayerInputMapperTest | , |
| SautMaintenuN_estPasUnFront | ) |
Saut maintenu sans nouveau front → jumpHeld vrai mais jumpPressed faux.
Cas de test : Saut maintenu sans nouveau front → jumpHeld vrai mais jumpPressed faux.
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Saut maintenu sans nouveau front → jumpHeld vrai mais jumpPressed faux.
| TEST | ( | PlayerInputMapperTest | , |
| ViseeVerticale | ) |
Visée verticale (y vers le bas) : Bas → +1, Haut → -1, les deux → 0.
Cas de test : Visée verticale (y vers le bas) : Bas → +1, Haut → -1, les deux → 0.
Categorie : Unitaire · Player Input Mapper
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Visée verticale (y vers le bas) : Bas → +1, Haut → -1, les deux → 0.