Google\Cloud\Tests\System\Datastore\SaveAndModifyTest::testEntityLifeCycle PHP Method

testEntityLifeCycle() public method

public testEntityLifeCycle ( )
    public function testEntityLifeCycle()
    {
        $key = self::$client->key('Person', 'Alton');
        $data = ['description' => 'A great chef.', 'birthDate' => new \DateTimeImmutable(), 'birthPlace' => self::$client->geoPoint(37.422, -122.0841), 'favoriteFloat' => (double) 5.25, 'favoriteInt' => (int) 5, 'favoriteDishes' => ['Hamburgers', 'Hot Dogs'], 'isNamedAlton' => true, 'labels' => ['location' => 'at home'], 'nothingSpecial' => null, 'blob' => self::$client->blob('blob!')];
        $upsertData = ['labels' => ['location' => 'someplace else']];
        $updateData = ['labels' => ['location' => 'yet another location']];
        $entity = self::$client->entity($key, $data);
        self::$client->insert($entity);
        self::$deletionQueue[] = $key;
        $entity = self::$client->lookup($key);
        $blobValue = (string) $data['blob'];
        $actualData = $entity->get();
        $actualBlobValue = (string) $actualData['blob'];
        unset($data['blob']);
        unset($actualData['blob']);
        $this->assertEquals($data, $actualData);
        $this->assertEquals($blobValue, $actualBlobValue);
        $entity = self::$client->entity($key, $upsertData);
        self::$client->upsert($entity);
        $entity = self::$client->lookup($key);
        $this->assertEquals($upsertData, $entity->get());
        $entity = self::$client->entity($key, $updateData);
        self::$client->update($entity, ['allowOverwrite' => true]);
        $entity = self::$client->lookup($key);
        $this->assertEquals($updateData, $entity->get());
    }