コード例 #1
0
ファイル: AdminTest.php プロジェクト: drmjo/SonataAdminBundle
 /**
  * @covers Sonata\AdminBundle\Admin\Admin::getSubClasses
  * @covers Sonata\AdminBundle\Admin\Admin::getSubClass
  * @covers Sonata\AdminBundle\Admin\Admin::setSubClasses
  * @covers Sonata\AdminBundle\Admin\Admin::hasSubClass
  * @covers Sonata\AdminBundle\Admin\Admin::hasActiveSubClass
  * @covers Sonata\AdminBundle\Admin\Admin::getActiveSubClass
  * @covers Sonata\AdminBundle\Admin\Admin::getActiveSubclassCode
  * @covers Sonata\AdminBundle\Admin\Admin::getClass
  */
 public function testSubClass()
 {
     $admin = new PostAdmin('sonata.post.admin.post', 'NewsBundle\\Entity\\Post', 'SonataNewsBundle:PostAdmin');
     $this->assertFalse($admin->hasSubClass('test'));
     $this->assertFalse($admin->hasActiveSubClass());
     $this->assertCount(0, $admin->getSubClasses());
     $this->assertNull($admin->getActiveSubClass());
     $this->assertNull($admin->getActiveSubclassCode());
     $this->assertSame('NewsBundle\\Entity\\Post', $admin->getClass());
     // Just for the record, if there is no inheritance set, the getSubject is not used
     // the getSubject can also lead to some issue
     $admin->setSubject(new \stdClass());
     $this->assertSame('stdClass', $admin->getClass());
     $admin->setSubClasses(array('extended1' => 'NewsBundle\\Entity\\PostExtended1', 'extended2' => 'NewsBundle\\Entity\\PostExtended2'));
     $this->assertFalse($admin->hasSubClass('test'));
     $this->assertTrue($admin->hasSubClass('extended1'));
     $this->assertFalse($admin->hasActiveSubClass());
     $this->assertCount(2, $admin->getSubClasses());
     $this->assertNull($admin->getActiveSubClass());
     $this->assertNull($admin->getActiveSubclassCode());
     $this->assertSame('stdClass', $admin->getClass());
     $request = new \Symfony\Component\HttpFoundation\Request(array('subclass' => 'extended1'));
     $admin->setRequest($request);
     $this->assertFalse($admin->hasSubClass('test'));
     $this->assertTrue($admin->hasSubClass('extended1'));
     $this->assertTrue($admin->hasActiveSubClass());
     $this->assertCount(2, $admin->getSubClasses());
     $this->assertSame('stdClass', $admin->getActiveSubClass());
     $this->assertSame('extended1', $admin->getActiveSubclassCode());
     $this->assertSame('stdClass', $admin->getClass());
     $request->query->set('subclass', 'inject');
     $this->assertNull($admin->getActiveSubclassCode());
 }