|
20 | 20 | use Iterator; |
21 | 21 | use Google\Cloud\Datastore\DatastoreClient; |
22 | 22 | use Google\Cloud\Datastore\Entity; |
| 23 | +use Google\Cloud\Datastore\Query\GqlQuery; |
23 | 24 | use Google\Cloud\Datastore\Query\Query; |
24 | 25 | use Google\Cloud\TestUtils\EventuallyConsistentTestTrait; |
25 | 26 | use PHPUnit\Framework\TestCase; |
@@ -417,6 +418,37 @@ function () use ($key1, $key2, $query) { |
417 | 418 | }); |
418 | 419 | } |
419 | 420 |
|
| 421 | + public function testRunGqlQuery() |
| 422 | + { |
| 423 | + $key1 = self::$datastore->key('Task', generateRandomString()); |
| 424 | + $key2 = self::$datastore->key('Task', generateRandomString()); |
| 425 | + $entity1 = self::$datastore->entity($key1); |
| 426 | + $entity2 = self::$datastore->entity($key2); |
| 427 | + $entity1['priority'] = 4; |
| 428 | + $entity1['done'] = false; |
| 429 | + $entity2['priority'] = 5; |
| 430 | + $entity2['done'] = false; |
| 431 | + self::$keys = [$key1, $key2]; |
| 432 | + self::$datastore->upsertBatch([$entity1, $entity2]); |
| 433 | + $query = basic_gql_query(self::$datastore); |
| 434 | + $this->assertInstanceOf(GqlQuery::class, $query); |
| 435 | + |
| 436 | + $this->runEventuallyConsistentTest( |
| 437 | + function () use ($key1, $key2, $query) { |
| 438 | + $result = run_query(self::$datastore, $query); |
| 439 | + $num = 0; |
| 440 | + $entities = []; |
| 441 | + /* @var Entity $e */ |
| 442 | + foreach ($result as $e) { |
| 443 | + $entities[] = $e; |
| 444 | + $num += 1; |
| 445 | + } |
| 446 | + self::assertEquals(2, $num); |
| 447 | + $this->assertTrue($entities[0]->key()->path() == $key2->path()); |
| 448 | + $this->assertTrue($entities[1]->key()->path() == $key1->path()); |
| 449 | + }); |
| 450 | + } |
| 451 | + |
420 | 452 | public function testPropertyFilter() |
421 | 453 | { |
422 | 454 | $key1 = self::$datastore->key('Task', generateRandomString()); |
|
0 commit comments