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:----E2xSD72Llt480jm9IHoC4e3ZiO2TKlruYL4pYsSeKZ585CFiKK1VU+ls/v28to9Pq5t6e62r57FbYFcBtn5AntgYGanoZSMf7xWiwHGBQJ6MmFTpeYuQYLjC6Ht/6yAovqeaMyIcDjfqpKagtia9dU//xra/Jek4S+OCnqLxkb4awKiogGaPD+xZD6BTeiTNT6Fwm0lEscFbMIYmoUH8KrGMxbYo4x6Es9VthU9rXWyofCkoUk+K4cRkD3G9pIMlMRvPvq5vX+HG2sMDnGqpeDIZnfdLZxPnKxDwesVPRfjaOIRG4+6eoJk6DOENwUCPRvMO3wpk1w12iZ/OH7vawa6KR0/bCOrl//TIUqX006tottkuNacmxNBX+/wI6FBCddl0Lng8M97bNT23SSIyxFGOnBFyG77sOaFL9r1Ur5sYmG+9AWOB31eKtBWl2r478kxVvmblLgOSjvOfURAcSxNKM3m1UxKHLN09+/r+UdbH+Yicxg8vB236NXxpxsrhsUEtd7FLtO371WVJ5kxnq8ZJAubvqHeGyBlPsjhRJhRMgFP3IK/+oh6fwP96Aw2mfWkIhbZLy8KEQyD322UqUMEf3sAJeZRJPJJIuTTIM6izGegHWT4LNApdGx31DrZnKeXqtVe+Ugiv4zQIJSLfeqOv9OYbvtM63V+1IpWGFTA=----ATTACHMENT:----NjcwNDY2MDc2NTAyNzAwMSA4MDgxNzAxNzM5MzA3Mzk5IDY1Mzc2NTUyNTkwNDA2NDY=