MapModelTest.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. /**
  3. * Tests unitaires pour MapModel
  4. *
  5. * Ces tests vérifient les fonctionnalités CRUD des cartes.
  6. */
  7. require_once __DIR__ . '/../config/config.php';
  8. function assert_equal($a, $b, $msg) {
  9. if ($a === $b) {
  10. echo "OK: $msg\n";
  11. return true;
  12. }
  13. echo "FAIL: $msg - got '" . var_export($a, true) . "' expected '" . var_export($b, true) . "'\n";
  14. return false;
  15. }
  16. function assert_true($a, $msg) {
  17. return assert_equal($a, true, $msg);
  18. }
  19. function assert_false($a, $msg) {
  20. return assert_equal($a, false, $msg);
  21. }
  22. echo "Running MapModel tests...\n";
  23. // Test de création d'une carte
  24. echo "Test création de carte...\n";
  25. $map = new Map('Test Map', 5, 5);
  26. $id = MapModel::create($map, 'Description test', 'neutral');
  27. if ($id) {
  28. echo "Carte créée avec ID: $id\n";
  29. assert_true(is_int($id), 'create retourne un entier');
  30. assert_true($id > 0, 'ID positif');
  31. // Vérifier que la carte existe
  32. $found = MapModel::findMap($id);
  33. assert_true($found !== null, 'Carte trouvée après création');
  34. if ($found) {
  35. assert_equal($found->getName(), 'Test Map', 'Nom correct');
  36. assert_equal($found->getWidth(), 5, 'Largeur correcte');
  37. assert_equal($found->getHeight(), 5, 'Hauteur correcte');
  38. }
  39. // Test de mise à jour
  40. echo "Test mise à jour...\n";
  41. $map->setName('Test Map Updated');
  42. $updated = MapModel::update($id, $map, 'Description mise à jour');
  43. assert_true($updated, 'Mise à jour réussie');
  44. $found = MapModel::findMap($id);
  45. if ($found) {
  46. assert_equal($found->getName(), 'Test Map Updated', 'Nom mis à jour');
  47. }
  48. // Test de suppression
  49. echo "Test suppression...\n";
  50. $deleted = MapModel::delete($id);
  51. assert_true($deleted, 'Suppression réussie');
  52. $found = MapModel::findMap($id);
  53. assert_true($found === null, 'Carte non trouvée après suppression');
  54. } else {
  55. echo "FAIL: Échec de création de la carte\n";
  56. }
  57. // Test de récupération des statistiques
  58. echo "Test statistiques...\n";
  59. $stats = MapModel::getGlobalStats();
  60. assert_true(is_array($stats), 'Statistiques retournent un tableau');
  61. assert_true(isset($stats['total_maps']), 'total_maps présent');
  62. assert_true(isset($stats['average_width']), 'average_width présent');
  63. assert_true(isset($stats['average_height']), 'average_height présent');
  64. // Test de pagination
  65. echo "Test pagination...\n";
  66. $result = MapModel::paginate(1, 10);
  67. assert_true(is_array($result), 'paginate retourne un tableau');
  68. assert_true(isset($result['data']), 'data présent');
  69. assert_true(isset($result['pagination']), 'pagination présent');
  70. assert_true(isset($result['pagination']['total']), 'total présent');
  71. assert_true(isset($result['pagination']['current_page']), 'current_page présent');
  72. assert_true(isset($result['pagination']['per_page']), 'per_page présent');
  73. assert_true(is_array($result['data']), 'data est un tableau');
  74. echo "Tests MapModel terminés.\n";