TemplateFactoryTest.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. require_once __DIR__ . '/../app/Models/Templates/TemplateFactory.php';
  3. function assert_equal($a, $b, $msg) {
  4. if ($a === $b) {
  5. echo "OK: $msg\n";
  6. return true;
  7. }
  8. echo "FAIL: $msg - got '" . var_export($a, true) . "' expected '" . var_export($b, true) . "'\n";
  9. return false;
  10. }
  11. echo "Running TemplateFactory tests...\n";
  12. $list = TemplateFactory::listAvailable();
  13. // Attendu: urban et rural présents (dossiers mapModels existants)
  14. assert_equal(isset($list['urban']), true, 'urban present in list');
  15. assert_equal(isset($list['rural']), true, 'rural present in list');
  16. // Test get()
  17. $urbanClass = TemplateFactory::get('urban');
  18. assert_equal($urbanClass, 'UrbanTemplate', 'TemplateFactory::get("urban") retourne UrbanTemplate');
  19. $unknown = TemplateFactory::get('doesnotexist');
  20. // Accept either a real NeutralTemplate provided by mapModels or our NeutralTemplateWrapper fallback
  21. $okFallback = ($unknown === 'NeutralTemplateWrapper') || ($unknown === 'NeutralTemplate');
  22. assert_equal($okFallback, true, 'TemplateFactory::get("doesnotexist") retourne un fallback neutre (wrapper ou NeutralTemplate fourni)');
  23. // tileDefinitions via class
  24. if ($urbanClass && class_exists($urbanClass) && method_exists($urbanClass, 'tileDefinitions')) {
  25. $tiles = $urbanClass::tileDefinitions();
  26. assert_equal(is_array($tiles), true, 'UrbanTemplate::tileDefinitions retourne un tableau');
  27. } else {
  28. echo "SKIP: UrbanTemplate tileDefinitions not available\n";
  29. }
  30. echo "Tests done.\n";