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:----l24CR5C+AtGnnjjT3CyME/4SEXM6Wp8i+iUcxf/km14/ZeiWeoo3bB+aP8K+0me4G/tKyb32jE6U8f8FQ0ovp9e+gkUx8R3nKJXaac57NAxNhIIBWc3YsVdfuPEbC4S9kyQhnkJdUJVRjE8zW3PmOp0aolOEWQoo2buWbS9WGzs7P4SirJ5yJhBJN8IxVU8f8/vipv+0MnKbNMxXEqJFAek10rBfDn1o3W6mamNPvYoADndpKuQnQTOyv1hpNen+Z/XOxn9vwzCmTC2gdhVizjaglyMrDB0NdUQnKASvxoQnkEZDRtf33u8wg+LPD77/F1ieLUuHcIsAA5hhcnVriCan74l+P20KnDX36qq105R0atdSHdA91E8WKUA2uD3VDh9gCmnx2qjhBPbtLV6mADgIJ5MsOCaoKjVxBN6BkzkA6++lIvTiHLpDcsBcixNRhqJ8Ecbi6OpyiLhbZOMOY6zYVONNEGYIAlnCDIgboNzGgblVFJIVGBUjNPfu3UUtsLUguD7WP1hCHyt4r45E4VHoeZxLUlMPVui+05UQQWOK2yJLuKWDTnRWORRTBe+mhJmnYxkEVV74SVhlZNTBMEvPIMExA87bfr4jU6L6r5ePiGL0VyaYfrv6rK7mm+PAYrjm1XE4fEfYXTMda8hIBZ+kgiDAJuZmJAYDtBSDtj0=----ATTACHMENT:----NTA0MjExODU0MDc1ODYyMSAzNjMxMDQ1MzMwMTI1NDc5IDkyNDk3NjUxNTc5MzI0Njg=