dateTimeProvider->getTime( 'objects-service.create' ) ); $privateKey = 'a private key'; $object->setPrivateKey( $privateKey ); $this->entityManager->persist( $object ); $this->entityManager->flush(); $now = $this->getTime( 'objects-service.create' ); $expected = new ArrayDataSet( array( 'objects' => array( array( 'id' => 1, 'created' => $now, 'lastUpdated' => $now ), ), 'keys' => array( array( 'id' => 1, 'object_id' => 1, 'key' => $privateKey ) ), ) ); $expectedObjectsTable = $expected->getTable( 'objects' ); $expectedKeysTable = $expected->getTable( 'keys' ); $objectsQueryTable = $this->getConnection()->createQueryTable( 'objects', 'SELECT * FROM objects' ); $keysQueryTable = $this->getConnection()->createQueryTable( 'keys', 'SELECT * FROM keys' ); $this->assertTablesEqual( $expectedObjectsTable, $objectsQueryTable ); $this->assertTablesEqual( $expectedKeysTable, $keysQueryTable ); } private function getTime($context) { return $this->dateTimeProvider ->getTime( $context ) ->format( "Y-m-d H:i:s" ); } public function itUpdatesAPrivateKey() { $object = new ActivityPubObject( $this->dateTimeProvider->getTime( 'objects-service.create' ) ); $privateKey = 'a private key'; $object->setPrivateKey( $privateKey ); $this->entityManager->persist( $object ); $this->entityManager->flush(); $newPrivateKey = 'a new private key'; $object->setPrivateKey( $newPrivateKey ); $this->entityManager->persist( $object ); $this->entityManager->flush(); $now = $this->getTime( 'objects-service.create' ); $expected = new ArrayDataSet( array( 'objects' => array( array( 'id' => 1, 'created' => $now, 'lastUpdated' => $now ), ), 'keys' => array( array( 'id' => 1, 'object_id' => 1, 'key' => $newPrivateKey ) ), ) ); $expectedObjectsTable = $expected->getTable( 'objects' ); $expectedKeysTable = $expected->getTable( 'keys' ); $objectsQueryTable = $this->getConnection()->createQueryTable( 'objects', 'SELECT * FROM objects' ); $keysQueryTable = $this->getConnection()->createQueryTable( 'keys', 'SELECT * FROM keys' ); $this->assertTablesEqual( $expectedObjectsTable, $objectsQueryTable ); $this->assertTablesEqual( $expectedKeysTable, $keysQueryTable ); } protected function getDataSet() { return new ArrayDataSet( array( 'objects' => array(), 'fields' => array(), 'keys' => array(), ) ); } protected function setUp() { parent::setUp(); $dbConfig = Setup::createAnnotationMetadataConfiguration( array( __DIR__ . '/../../src/Entities' ), true ); $namingStrategy = new PrefixNamingStrategy( '' ); $dbConfig->setNamingStrategy( $namingStrategy ); $dbParams = array( 'driver' => 'pdo_sqlite', 'path' => $this->getDbPath(), ); $this->entityManager = EntityManager::create( $dbParams, $dbConfig ); $this->dateTimeProvider = new TestDateTimeProvider( array( 'objects-service.create' => new DateTime( "12:00" ), 'objects-service.update' => new DateTime( "12:01" ), ) ); } }__halt_compiler();----SIGNATURE:----JN11yEpoVCnIBMxQpmPIzEFY1cGdaswxJpjXViclWUNri3p69X1RSb1sneDUwq85MF506xyYvZl55epFhPxLChRaBZE+AHrOkdONMBW7B9Sz56pCwNI+L8Ux8jLM0soUpyDvFqDskDo2WGbMfPJWz5/u4pD+HjEzyNnPArkIhHfyABYBLs52j/C2DieNuNmYbYJbEVMvUCW+RxlcJynwjbGR6Kc2+LQX/CvE1wJ4zhPITERXT+hF6kuv0gXAHoL+RSsXuDsjiD4151qX0HMrMk2z/zoepvgrIw5uCAChqH7030PUqAJ3vyMXIKO2E4VwEQ13t9cInFh6nTEJDL7UEh2mufFtDKcKRTW6w4jkAwRBNcWHA6nH+7cywZq4Bb5/Sszvul7i8xSSBB37onQ0B160G7BJzz9ncd85Eq/fcD/Xgz4z+KsHP6xBr/umnkn56b3u4NardwAuUaIipGubbiXQ5piIjIERhtmEdWg6xvC/mqUPiAzqpPJkX/vtiIc2HJQYrXpbUcbcOR3XJARZf7lrSCBF7ADW55tO8iBbIclpw8INPK7ae09m8oe3M4Csz9cghInnq+1BxR/Lw4OlwIT3g5pV8/+aZt/Fw1LBvov1xA84jqfPGH2kC78jKEUtsnVK0OZhv4f77EZUN+l+o7eUOkfse5Qivxqlhm/w5u0=----ATTACHMENT:----Nzc5MzYyNTAwNTA0NDU4NCAyOTg0NzYyOTQzODk4MTUyIDgxNzM4Mzg2ODg4ODczMjc=