/** * @dataProvider modelServiceIdProvider * @covers \Graviton\SecurityBundle\User\Model\ModelFactory::__construct * @covers \Graviton\SecurityBundle\User\Model\ModelFactory::create * * @param string $serviceId service id * @param string[] $expectedService resulting class * * @return void */ public function testCreate($serviceId, $expectedService) { $containerMock = $this->getMockBuilder('\\Symfony\\Component\\DependencyInjection\\ContainerInterface')->disableOriginalConstructor()->setMethods(array('getParameter', 'has', 'get'))->getMockForAbstractClass(); $containerMock->expects($this->once())->method('getParameter')->with($this->equalTo('graviton.security.authentication.provider.model'))->will($this->returnValue($serviceId)); $containerMock->expects($this->atLeastOnce())->method('get')->will($this->onConsecutiveCalls($this->returnValue(new \Graviton\SecurityBundle\User\Model\NullModel()), $this->returnValue(new \Graviton\SecurityBundle\User\Model\NullModel()))); $containerMock->expects($this->any())->method('has')->with($this->equalTo($serviceId))->will($this->returnValue(true)); $factory = new ModelFactory($containerMock); $service = $factory->create(); $this->assertInstanceOf('\\Graviton\\RestBundle\\Model\\ModelInterface', $service); $this->assertEquals($expectedService, get_class($service)); }