public function testGetSubject() { $entity = new Post(); $modelManager = $this->getMock('Sonata\\AdminBundle\\Model\\ModelManagerInterface'); $modelManager->expects($this->any())->method('find')->will($this->returnValue($entity)); $admin = new PostAdmin('sonata.post.admin.post', 'NewsBundle\\Entity\\Post', 'SonataNewsBundle:PostAdmin'); $admin->setModelManager($modelManager); $admin->setRequest(new Request(array('id' => 'azerty'))); $this->assertFalse($admin->getSubject()); $admin->setSubject(null); $admin->setRequest(new Request(array('id' => 42))); $this->assertSame($entity, $admin->getSubject()); $admin->setSubject(null); $admin->setRequest(new Request(array('id' => '4f69bbb5f14a13347f000092'))); $this->assertSame($entity, $admin->getSubject()); $admin->setSubject(null); $admin->setRequest(new Request(array('id' => '0779ca8d-e2be-11e4-ac58-0242ac11000b'))); $this->assertSame($entity, $admin->getSubject()); }
/** * @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->assertEquals('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->assertEquals('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->assertEquals('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->assertEquals('stdClass', $admin->getActiveSubClass()); $this->assertEquals('extended1', $admin->getActiveSubclassCode()); $this->assertEquals('stdClass', $admin->getClass()); $request->query->set('subclass', 'inject'); $this->assertNull($admin->getActiveSubclassCode()); }