Exemplo n.º 1
0
 public function testFlattensMetadataOnSave()
 {
     // Create Conection service
     $entityManagerMock = Phake::mock('Doctrine\\ORM\\EntityManager');
     $mockDbConnection = Phake::mock('Doctrine\\DBAL\\Connection');
     Phake::when($entityManagerMock)->getConnection()->thenReturn($mockDbConnection);
     $config = new ConfigProxy(array("metadatafields" => array('saml20_idp' => array('foo:bar:baz' => array('supported' => array(1))))));
     // Create metadata tree flattener
     $metadataDefinitionHelper = new MetadataDefinitionHelper($config);
     $metadataTreeFlattener = new MetadataTreeFlattener($metadataDefinitionHelper);
     $loggerMock = Phake::mock('Monolog\\Logger');
     $connectionRepository = new ConnectionRepository($entityManagerMock, $loggerMock);
     $connectionService = new ConnectionService($entityManagerMock, $config, $loggerMock, $metadataTreeFlattener, $metadataDefinitionHelper, $connectionRepository);
     // Mock existing connection
     $connectionRepositoryMock = Phake::mock('Janus\\ServiceRegistry\\Entity\\ConnectionRepository');
     $connection = new Connection('fooConnection', 'saml20-idp', 'initial revision');
     Phake::when($connectionRepositoryMock)->find(1)->thenReturn($connection);
     Phake::when($entityManagerMock)->getRepository('Janus\\ServiceRegistry\\Entity\\Connection')->thenReturn($connectionRepositoryMock);
     // Mock metadata dto
     $nestedMetadata = array('foo' => array('bar' => array('baz' => 1)));
     // Save
     $connectionDto = new ConnectionDto();
     $connectionDto->id = 1;
     $connectionDto->name = 'fooConnection';
     $connectionDto->type = 'saml20-idp';
     $connectionDto->revisionNote = 'initial revision';
     $connectionDto->metadata = $nestedMetadata;
     $connectionService->save($connectionDto);
     // Verify flattened metadata is saved
     $metadataRecord = new Metadata($connection->getLatestRevision(), 'foo:bar:baz', 1);
     Phake::verify($entityManagerMock)->persist($metadataRecord);
 }