UnitTest.php 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. namespace Muzich\CoreBundle\lib;
  3. require_once(__DIR__ . "/../../../../app/AppKernel.php");
  4. use Muzich\CoreBundle\Entity\Element;
  5. use Muzich\CoreBundle\Managers\ElementManager;
  6. class UnitTest extends \PHPUnit_Framework_TestCase
  7. {
  8. protected $_container;
  9. public function __construct()
  10. {
  11. $kernel = new \AppKernel("test", true);
  12. $kernel->boot();
  13. $this->_container = $kernel->getContainer();
  14. parent::__construct();
  15. }
  16. protected function get($service)
  17. {
  18. return $this->_container->get($service);
  19. }
  20. /**
  21. *
  22. * @return \Doctrine\Bundle\DoctrineBundle\Registry
  23. */
  24. protected function getDoctrine()
  25. {
  26. return $this->get('doctrine');
  27. }
  28. protected function getParam($param)
  29. {
  30. return $this->_container->getParameter($param);
  31. }
  32. protected function proceed_elementAndFill($user, $name, $url, $tag_ids, $final_embed = null, $embed_contained = null)
  33. {
  34. $element = new Element();
  35. $element->setName($name);
  36. $element->setTags(json_encode($tag_ids));
  37. $element->setUrl($url);
  38. $factory = new ElementManager(
  39. $element,
  40. $this->getDoctrine()->getManager(),
  41. $this->_container
  42. );
  43. $factory->proceedFill($user);
  44. $this->assertEquals($element->getName(), $name);
  45. $this->assertEquals($element->getUrl(), $url);
  46. // check tags
  47. $element_tag_ids = array();
  48. foreach ($element->getTags() as $tag)
  49. {
  50. $element_tag_ids[] = $tag->getId();
  51. }
  52. $this->assertEquals($element_tag_ids, $tag_ids);
  53. if ($final_embed)
  54. $this->assertEquals($element->getEmbed(), $final_embed);
  55. if ($embed_contained)
  56. $this->assertTrue((strpos($element->getEmbed(), $embed_contained) !== false));
  57. }
  58. protected function proceed_element_datas_api($user, $url)
  59. {
  60. $element = new Element();
  61. $element->setUrl($url);
  62. $factory = new ElementManager($element,
  63. $this->getDoctrine()->getManager(), $this->_container);
  64. $factory->proceedFill($user);
  65. return $element->getDatas();
  66. }
  67. protected function getUser($username)
  68. {
  69. return $this->getDoctrine()->getRepository('MuzichCoreBundle:User')
  70. ->findOneByUsername($username)
  71. ;
  72. }
  73. protected function getTag($name)
  74. {
  75. return $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')
  76. ->findOneByName($name)
  77. ;
  78. }
  79. protected function persist($entity)
  80. {
  81. $this->getDoctrine()->getManager()->persist($entity);
  82. }
  83. protected function flush()
  84. {
  85. $this->getDoctrine()->getManager()->flush();
  86. }
  87. /**
  88. *
  89. * @return \Doctrine\ORM\EntityManager
  90. */
  91. protected function getEntityManager()
  92. {
  93. return $this->getDoctrine()->getManager();
  94. }
  95. /**
  96. * Raccourcis de findOneBy
  97. *
  98. * @param string $entityName
  99. * @param array $params
  100. * @return object
  101. */
  102. protected function findOneBy($entityName, array $params)
  103. {
  104. return $this->getEntityManager()->getRepository('MuzichCoreBundle:'.$entityName)
  105. ->findOneBy($params);
  106. }
  107. }