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

Tests des entites de carte et de l'interaction (LOT-10). More...

#include <algorithm>
#include <string>
#include <vector>
#include <gtest/gtest.h>
#include "Core/Ecs/Components/Interactable.h"
#include "Core/Ecs/Components/Transform.h"
#include "Core/Ecs/World.h"
#include "Core/Gameplay/Interaction.h"
#include "Core/Gameplay/MapEntitySpawner.h"
#include "Core/Gameplay/WorldFlags.h"
#include "Core/Levels/Level.h"
#include "Core/Levels/TileMap.h"
#include "Core/Levels/TileType.h"

Functions

 TEST (InteractionTest, LaCaseViseeSuitLaDirectionDominante)
 La case visee est la voisine dans la direction dominante, jamais une diagonale.
 TEST (InteractionTest, UnCoffreNeDonneSonButinQuUneFois)
 Ouvrir un coffre deux fois ne donne le butin qu'une fois.
 TEST (InteractionTest, LEtatDUnCoffreSurvitAUnAllerRetourDeCarte)
 L'etat d'un coffre survit a un aller-retour de carte.
 TEST (InteractionTest, LInteractionNeTraversePasUnMur)
 L'interaction ne traverse pas un mur.
 TEST (InteractionTest, LaCibleEstDeterministeAEgalite)
 A deux cibles sur la case visee, la designee est deterministe.
 TEST (InteractionTest, UnPanneauSeRelitIndefiniment)
 Un panneau se relit indefiniment.
 TEST (InteractionTest, DeuxCartesNeSeMarchentPasDessus)
 Deux cartes portent un coffre a la meme case sans se marcher dessus.
 TEST (InteractionTest, UnTypeInconnuProduitUneEntiteNonInteractive)
 Un type d'entite inconnu produit tout de meme une entite, sans composant interactif.
 TEST (InteractionTest, LesDrapeauxSeRelisentTries)
 Les drapeaux de monde se relisent tries, forme que la sauvegarde ecrira.

Detailed Description

Tests des entites de carte et de l'interaction (LOT-10).

Les trois criteres d'acceptation du lot ont chacun leur cas : ouvrir un coffre deux fois ne donne le butin qu'une fois Y COMPRIS APRES ALLER-RETOUR DE CARTE ; l'interaction ne traverse pas un mur ; et a deux cibles a portee, celle designee est deterministe.

Function Documentation

◆ TEST() [1/9]

TEST ( InteractionTest ,
DeuxCartesNeSeMarchentPasDessus  )

Deux cartes portent un coffre a la meme case sans se marcher dessus.

Cas de test : Deux coffres de cartes differentes a la meme case ont des drapeaux distincts.
Categorie : Unitaire · Interaction
Criticite : Critique
Etapes :
1. Fabriquer la cle de deux coffres a la case (3, 2), sur deux cartes.

  1. Ouvrir le premier.
    Resultat attendu : Les deux cles different, et le second coffre reste fermable.

◆ TEST() [2/9]

TEST ( InteractionTest ,
LaCaseViseeSuitLaDirectionDominante  )

La case visee est la voisine dans la direction dominante, jamais une diagonale.

Cas de test : La case visee suit la direction dominante de l'orientation.
Categorie : Unitaire · Interaction
Criticite : Majeur
Etapes :
1. Viser avec quatre orientations cardinales, puis une orientation a 30 degres.

  1. Viser avec une orientation nulle.
    Resultat attendu : Les quatre cardinales donnent la voisine attendue ; l'orientation oblique donne la case de la composante dominante et non la diagonale ; l'orientation nulle ne vise rien.

◆ TEST() [3/9]

TEST ( InteractionTest ,
LaCibleEstDeterministeAEgalite  )

A deux cibles sur la case visee, la designee est deterministe.

Cas de test : Deux objets sur la meme case designent toujours le meme.
Categorie : Unitaire · Interaction
Criticite : Critique
Etapes :
1. Poser deux objets sur la case visee et designer la cible dix fois.
Resultat attendu : Le meme est designe a chaque fois – le premier de la liste, a distance egale.

◆ TEST() [4/9]

TEST ( InteractionTest ,
LesDrapeauxSeRelisentTries  )

Les drapeaux de monde se relisent tries, forme que la sauvegarde ecrira.

Cas de test : Les drapeaux acquis se relisent dans un ordre stable.
Categorie : Unitaire · Interaction
Criticite : Mineur
Etapes :
1. Lever trois drapeaux dans le desordre, puis les relire.

  1. Lever deux fois le meme.
    Resultat attendu : La relecture est triee ; le second passage renvoie false et ne cree pas de doublon.

◆ TEST() [5/9]

TEST ( InteractionTest ,
LEtatDUnCoffreSurvitAUnAllerRetourDeCarte  )

L'etat d'un coffre survit a un aller-retour de carte.

Cas de test : Un coffre ouvert le reste apres avoir quitte la carte et y etre revenu.
Categorie : Unitaire · Interaction
Criticite : Critique
Etapes :
1. Ouvrir un coffre, puis DETRUIRE les entites de la carte et les recreer depuis la couche objects, comme le fait un changement de carte.
Resultat attendu : Le coffre recree n'est plus une cible : l'etat vit dans les drapeaux de monde, pas dans l'entite.

◆ TEST() [6/9]

TEST ( InteractionTest ,
LInteractionNeTraversePasUnMur  )

L'interaction ne traverse pas un mur.

Cas de test : Un objet place sur une case pleine n'est pas atteignable.
Categorie : Unitaire · Interaction
Criticite : Critique
Etapes :
1. Poser un coffre sur une case, puis rendre cette case pleine.
Resultat attendu : Le coffre est atteignable avant, et ne l'est plus apres.

◆ TEST() [7/9]

TEST ( InteractionTest ,
UnCoffreNeDonneSonButinQuUneFois  )

Ouvrir un coffre deux fois ne donne le butin qu'une fois.

Cas de test : Un coffre ne donne son butin qu'a la premiere ouverture.
Categorie : Unitaire · Interaction
Criticite : Critique
Etapes :
1. Interagir deux fois avec le meme coffre.
Resultat attendu : La premiere interaction consomme, la seconde ne trouve plus de cible.

◆ TEST() [8/9]

TEST ( InteractionTest ,
UnPanneauSeRelitIndefiniment  )

Un panneau se relit indefiniment.

Cas de test : Une entite non consommable reste une cible apres interaction.
Categorie : Unitaire · Interaction
Criticite : Majeur
Etapes :
1. Interagir trois fois avec un panneau.
Resultat attendu : Les trois interactions ont lieu, aucune ne consomme, et aucun drapeau n'est leve.

◆ TEST() [9/9]

TEST ( InteractionTest ,
UnTypeInconnuProduitUneEntiteNonInteractive  )

Un type d'entite inconnu produit tout de meme une entite, sans composant interactif.

Cas de test : Un objet de type inconnu apparait sur la carte sans etre interactif.
Categorie : Unitaire · Interaction
Criticite : Majeur
Etapes :
1. Peupler un monde depuis une couche objects portant un type inconnu.
Resultat attendu : L'entite existe et porte un Transform, mais aucun Interactable.