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

Tests unitaires de la traduction clavier/manette → intention (toPlayerInput). More...

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é).

Detailed Description

Tests unitaires de la traduction clavier/manette → intention (toPlayerInput).

Function Documentation

◆ TEST() [1/21]

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() [2/21]

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() [3/21]

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() [4/21]

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() [5/21]

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() [6/21]

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() [7/21]

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() [8/21]

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() [9/21]

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() [10/21]

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() [11/21]

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() [12/21]

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() [13/21]

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() [14/21]

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() [15/21]

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() [16/21]

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() [17/21]

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() [18/21]

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() [19/21]

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() [20/21]

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() [21/21]

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.