Google\Cloud\Tests\System\Datastore\RunTransactionTest::testRunTransactions PHP Method

testRunTransactions() public method

public testRunTransactions ( )
    public function testRunTransactions()
    {
        $kind = 'Person';
        $key1 = self::$client->key($kind, 'Frank');
        $key2 = self::$client->key($kind, 'Greg');
        $key2->ancestorKey($key1);
        $data = ['lastName' => 'Smith'];
        $newLastName = 'NotSmith';
        $entity1 = self::$client->entity($key1, $data);
        $entity2 = self::$client->entity($key2, $data);
        $transaction = self::$client->transaction();
        $transaction->insert($entity1);
        $transaction->upsert($entity2);
        $transaction->commit();
        self::$deletionQueue[] = $key1;
        self::$deletionQueue[] = $key2;
        // transaction with query
        $transaction2 = self::$client->transaction();
        $query = self::$client->query()->kind($kind)->hasAncestor($key1);
        $results = iterator_to_array($transaction2->runQuery($query));
        $results[1]['lastName'] = $newLastName;
        $transaction2->update($results[1]);
        $transaction2->commit();
        $this->assertEquals(2, count($results));
        // transaction with lookup
        $transaction3 = self::$client->transaction();
        $result = $transaction3->lookup($key2);
        $transaction3->rollback();
        $this->assertEquals($newLastName, $result['lastName']);
    }
RunTransactionTest