Ajouter les tests unitaires du DAO des positions du graphe #67

Closed
opened 2026-07-22 06:55:33 +02:00 by fy59 · 0 comments
Owner

Ajouter les tests unitaires du DAO des positions du graphe

Contexte

Le module GraphNodePositionDao assure actuellement :

  • le chargement des positions persistées ;
  • l’insertion ou la mise à jour d’une position ;
  • la suppression de la position d’une entité.

La persistance des déplacements du graphe est désormais intégrée, mais aucun
test unitaire dédié au DAO des positions n’existe encore.

Une opération de suppression globale des positions doit également être ajoutée
pour permettre la réinitialisation persistante de la disposition du graphe.

Objectif

Créer une suite de tests dédiée à GraphNodePositionDao et ajouter l’opération :

gboolean graph_node_position_dao_delete_all(
    GraphNodePositionDao *position_dao,
    GError **error
);

##Travaux attendus

  • ajouter graph_node_position_dao_delete_all() dans :
    • include/dao/graph_node_position_dao.h
    • src/dao/graph_node_position_dao.c
  • créer :
    • tests/test_graph_node_position_dao.c
  • ajouter la nouvelle cible de test au Makefile
  • ntégrer le test à la commande générale make test

Cas à couvrir

  • création et libération du DAO ;
  • refus d’une connexion absente ;
  • refus des UUID invalides ;
  • refus des coordonnées non finies ;
  • nsertion d’une première position ;
  • chargement des positions ;
  • mise à jour d’une position existante ;
  • ordre déterministe de list_all() ;
  • suppression d’une position ;
  • suppression d’une position absente ;
  • suppression globale de plusieurs positions ;
  • suppression globale lorsque la table est déjà vide ;
  • remontée correcte des erreurs SQLite.

Contraintes

  • utiliser une base SQLite temporaire propre à chaque test ou fixture ;
  • ne pas dépendre de GTK ;
  • libérer toutes les ressources créées ;
  • respecter C17 et les avertissements traités comme erreurs ;
  • ne pas modifier la version du schéma.
  • Critères d’acceptation

Les commandes suivantes doivent réussir :

make clean
make
make test
git diff --check
# Ajouter les tests unitaires du DAO des positions du graphe ## Contexte Le module `GraphNodePositionDao` assure actuellement : - le chargement des positions persistées ; - l’insertion ou la mise à jour d’une position ; - la suppression de la position d’une entité. La persistance des déplacements du graphe est désormais intégrée, mais aucun test unitaire dédié au DAO des positions n’existe encore. Une opération de suppression globale des positions doit également être ajoutée pour permettre la réinitialisation persistante de la disposition du graphe. ## Objectif Créer une suite de tests dédiée à `GraphNodePositionDao` et ajouter l’opération : ```c gboolean graph_node_position_dao_delete_all( GraphNodePositionDao *position_dao, GError **error ); ``` ##Travaux attendus - ajouter graph_node_position_dao_delete_all() dans : - include/dao/graph_node_position_dao.h - src/dao/graph_node_position_dao.c - créer : - tests/test_graph_node_position_dao.c - ajouter la nouvelle cible de test au Makefile - ntégrer le test à la commande générale make test ## Cas à couvrir - création et libération du DAO ; - refus d’une connexion absente ; - refus des UUID invalides ; - refus des coordonnées non finies ; - nsertion d’une première position ; - chargement des positions ; - mise à jour d’une position existante ; - ordre déterministe de list_all() ; - suppression d’une position ; - suppression d’une position absente ; - suppression globale de plusieurs positions ; - suppression globale lorsque la table est déjà vide ; - remontée correcte des erreurs SQLite. ## Contraintes - utiliser une base SQLite temporaire propre à chaque test ou fixture ; - ne pas dépendre de GTK ; - libérer toutes les ressources créées ; - respecter C17 et les avertissements traités comme erreurs ; - ne pas modifier la version du schéma. - Critères d’acceptation Les commandes suivantes doivent réussir : ```bash make clean make make test git diff --check ```
fy59 closed this issue 2026-07-22 07:24:04 +02:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: fy59/labfy-investigation#67
No description provided.