RelativeSlugHandlerTest.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace Gedmo\Sluggable;
  3. use Doctrine\Common\EventManager;
  4. use Tool\BaseTestCaseORM;
  5. use Sluggable\Fixture\RelativeSlug;
  6. use Gedmo\Tree\TreeListener;
  7. /**
  8. * These are tests for Sluggable behavior
  9. *
  10. * @author Gediminas Morkevicius <gediminas.morkevicius@gmail.com>
  11. * @package Gedmo.Sluggable
  12. * @link http://www.gediminasm.org
  13. * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
  14. */
  15. class RelativeSlugHandlerTest extends BaseTestCaseORM
  16. {
  17. const TARGET = "Sluggable\\Fixture\\RelativeSlug";
  18. protected function setUp()
  19. {
  20. parent::setUp();
  21. $evm = new EventManager;
  22. $evm->addEventSubscriber(new TreeListener);
  23. $evm->addEventSubscriber(new SluggableListener);
  24. $conn = array(
  25. 'driver' => 'pdo_mysql',
  26. 'host' => '127.0.0.1',
  27. 'dbname' => 'test',
  28. 'user' => 'root',
  29. 'password' => 'nimda'
  30. );
  31. //$this->getMockCustomEntityManager($conn, $evm);
  32. $this->getMockSqliteEntityManager($evm);
  33. }
  34. public function testSlugGeneration()
  35. {
  36. $this->populate();
  37. }
  38. protected function getUsedEntityFixtures()
  39. {
  40. return array(
  41. self::TARGET
  42. );
  43. }
  44. private function populate()
  45. {
  46. $repo = $this->em->getRepository(self::TARGET);
  47. $food = new RelativeSlug;
  48. $food->setTitle('Food');
  49. $fruits = new RelativeSlug;
  50. $fruits->setTitle('Fruits');
  51. $vegitables = new RelativeSlug;
  52. $vegitables->setTitle('Vegitables');
  53. $milk = new RelativeSlug;
  54. $milk->setTitle('Milk');
  55. $meat = new RelativeSlug;
  56. $meat->setTitle('Meat');
  57. $oranges = new RelativeSlug;
  58. $oranges->setTitle('Oranges');
  59. $citrons = new RelativeSlug;
  60. $citrons->setTitle('Citrons');
  61. $repo
  62. ->persistAsFirstChild($food)
  63. ->persistAsFirstChildOf($fruits, $food)
  64. ->persistAsFirstChildOf($vegitables, $food)
  65. ->persistAsLastChildOf($milk, $food)
  66. ->persistAsLastChildOf($meat, $food)
  67. ->persistAsFirstChildOf($oranges, $fruits)
  68. ->persistAsFirstChildOf($citrons, $fruits);
  69. $this->em->flush();
  70. }
  71. }