UserRelativeSlugHandlerTest.php 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace Gedmo\Sluggable;
  3. use Doctrine\Common\EventManager;
  4. use Tool\BaseTestCaseORM;
  5. use Sluggable\Fixture\Handler\User;
  6. use Sluggable\Fixture\Handler\Company;
  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 UserRelativeSlugHandlerTest extends BaseTestCaseORM
  16. {
  17. const USER = "Sluggable\\Fixture\\Handler\\User";
  18. const COMPANY = "Sluggable\\Fixture\\Handler\\Company";
  19. protected function setUp()
  20. {
  21. parent::setUp();
  22. $evm = new EventManager;
  23. $evm->addEventSubscriber(new SluggableListener);
  24. $this->getMockSqliteEntityManager($evm);
  25. }
  26. public function testRelativeSlug()
  27. {
  28. $company = new Company;
  29. $company->setTitle('KnpLabs');
  30. $this->em->persist($company);
  31. $gedi = new User;
  32. $gedi->setUsername('Gedi');
  33. $gedi->setCompany($company);
  34. $this->em->persist($gedi);
  35. $this->em->flush();
  36. $this->assertEquals('knplabs/gedi', $gedi->getSlug(), 'relative slug is invalid');
  37. $company->setTitle('KnpLabs Nantes');
  38. $this->em->persist($company);
  39. $this->em->flush();
  40. $this->assertEquals('knplabs-nantes/gedi', $gedi->getSlug(), 'relative slug is invalid');
  41. }
  42. protected function getUsedEntityFixtures()
  43. {
  44. return array(
  45. self::USER,
  46. self::COMPANY
  47. );
  48. }
  49. }