Есть модель Category:
Она имеет id, name и parent где хранится id этой же модели, то есть родительская категория.
Вот код:
/
**
* Category
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Dimas\CatalogBundle\Entity\CategoryRepository")
*/
class Category
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, nullable=false)
*/
private $name;
/**
* @ORM\OneToMany(targetEntity="Category", mappedBy="parent")
**/
private $owned_childrens;
/**
* @ORM\ManyToOne(targetEntity="Category", inversedBy="owned_childrens")
**/
private $parent;
public function __construct()
{
$this->owned_childrens = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Get owned_childrens
*
* @return Doctrine\Common\Collections\Collection
*/
public function getOwnedChildrens()
{
return $this->owned_childrens;
}
/**
* Get parent
*
* @return Category
*/
public function getParent()
{
return $this->parent;
}
...
/**
* Set parent
*
* @param Dimas\CatalogBundle\Entity $category
*
* @return Category
*/
public function setParent($category)
{
$this->parent = $category;
return $this;
}
}
Метод getOwnedChildrens() должен выдать коллекцию этой же модели - дочернии категории. Вопрос: как протестировать этот метод?
Я пробую так (в тесте):
public function testGetOwnedChildrens()
{
$category = new Category();
$this->assertInstanceOf('\Doctrine\Common\Collections\ArrayCollection()', $category->getOwnedChildrens());
}
Тест проходит с фейлом: "PHPUnit_Framework_Exception: Argument #1 (No Value) of PHPUnit_Framework_Assert::assertInstanceOf() must be a class or interface name"
Хотя, если я создаю Category в контроллере и вызываю метод $category->getOwnedChildrens() и делаю var_dump получаю
object(Doctrine\Common\Collections\ArrayCollection)[379]
private 'elements' =>
array (size=0)
empty
Как протестировать getOwnedChildrens() ?