Skip to content

Commit

Permalink
adds system tests for GAPIC clients
Browse files Browse the repository at this point in the history
  • Loading branch information
bshaffer committed Jan 22, 2018
1 parent 2f18a3a commit 817d5f8
Show file tree
Hide file tree
Showing 5 changed files with 342 additions and 0 deletions.
84 changes: 84 additions & 0 deletions tests/system/Bigtable/BigtableInstanceAdminTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
<?php
/**
* Copyright 2018 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

namespace Google\Cloud\Tests\System\Bigtable;

use Google\Auth\CredentialsLoader;
use Google\Cloud\Bigtable\Admin\V2\BigtableInstanceAdminClient;
use Google\Cloud\Bigtable\Admin\V2\ListInstancesResponse;
use Google\Cloud\Tests\System\SystemTestCase;

class BigtableInstanceAdminClientTest extends SystemTestCase
{
protected static $grpcClient;
protected static $restClient;
protected static $projectId;
private static $hasSetUp = false;

public function clientProvider()
{
self::setUpBeforeClass();

return [
[self::$restClient],
[self::$grpcClient]
];
}

public static function setUpBeforeClass()
{
if (self::$hasSetUp) {
return;
}

$keyFilePath = getenv('GOOGLE_CLOUD_PHP_TESTS_KEY_PATH');
$keyFileData = json_decode(file_get_contents($keyFilePath), true);

$credentialsLoader = CredentialsLoader::makeCredentials(
['https://www.googleapis.com/auth/cloud-platform'],
$keyFileData
);

self::$restClient = new BigtableInstanceAdminClient([
'credentialsLoader' => $credentialsLoader,
'transport' => 'rest'
]);

self::$grpcClient = new BigtableInstanceAdminClient([
'credentialsLoader' => $credentialsLoader,
'transport' => 'grpc'
]);

self::$projectId = $keyFileData['project_id'];

self::$hasSetUp = true;
}

/**
* @dataProvider clientProvider
*/
public function testListInstances(BigtableInstanceAdminClient $client)
{
$response = $client->listInstances(
$client->projectName(self::$projectId)
);

$this->assertInstanceOf(ListInstancesResponse::class, $response);
}
}


85 changes: 85 additions & 0 deletions tests/system/Container/ClusterManagerClientTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<?php
/**
* Copyright 2018 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

namespace Google\Cloud\Tests\System\Container;

use Google\Auth\CredentialsLoader;
use Google\Cloud\Container\V1\ClusterManagerClient;
use Google\Cloud\Container\V1\ListOperationsResponse;
use Google\Cloud\Tests\System\SystemTestCase;

class ClusterManagerClientTest extends SystemTestCase
{
const ZONE = 'us-central1-b';

protected static $grpcClient;
protected static $restClient;
protected static $projectId;
private static $hasSetUp = false;

public function clientProvider()
{
self::setUpBeforeClass();

return [
[self::$restClient],
[self::$grpcClient]
];
}

public static function setUpBeforeClass()
{
if (self::$hasSetUp) {
return;
}

$keyFilePath = getenv('GOOGLE_CLOUD_PHP_TESTS_KEY_PATH');
$keyFileData = json_decode(file_get_contents($keyFilePath), true);

$credentialsLoader = CredentialsLoader::makeCredentials(
['https://www.googleapis.com/auth/cloud-platform'],
$keyFileData
);

self::$restClient = new ClusterManagerClient([
'credentialsLoader' => $credentialsLoader,
'transport' => 'rest'
]);

self::$grpcClient = new ClusterManagerClient([
'credentialsLoader' => $credentialsLoader,
'transport' => 'grpc'
]);


self::$projectId = $keyFileData['project_id'];

self::$hasSetUp = true;
}

/**
* @dataProvider clientProvider
*/
public function testListOperations(ClusterManagerClient $client)
{
$response = $client->listOperations(self::$projectId, self::ZONE);

$this->assertInstanceOf(ListOperationsResponse::class, $response);
}
}


87 changes: 87 additions & 0 deletions tests/system/Dataproc/ClusterControllerClientTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
<?php
/**
* Copyright 2018 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

namespace Google\Cloud\Tests\System\Container;

use Google\Auth\CredentialsLoader;
use Google\ApiCore\PagedListResponse;
use Google\Cloud\Dataproc\V1\ClusterControllerClient;
use Google\Cloud\Dataproc\V1\ListClustersResponse;
use Google\Cloud\Tests\System\SystemTestCase;

class ClusterControllerClientTest extends SystemTestCase
{
const REGION = 'global';

protected static $grpcClient;
protected static $restClient;
protected static $projectId;
private static $hasSetUp = false;

public function clientProvider()
{
self::setUpBeforeClass();

return [
[self::$restClient],
[self::$grpcClient]
];
}

public static function setUpBeforeClass()
{
if (self::$hasSetUp) {
return;
}

$keyFilePath = getenv('GOOGLE_CLOUD_PHP_TESTS_KEY_PATH');
$keyFileData = json_decode(file_get_contents($keyFilePath), true);

$credentialsLoader = CredentialsLoader::makeCredentials(
['https://www.googleapis.com/auth/cloud-platform'],
$keyFileData
);

self::$restClient = new ClusterControllerClient([
'credentialsLoader' => $credentialsLoader,
'transport' => 'rest'
]);

self::$grpcClient = new ClusterControllerClient([
'credentialsLoader' => $credentialsLoader,
'transport' => 'grpc'
]);

self::$projectId = $keyFileData['project_id'];

self::$hasSetUp = true;
}

/**
* @dataProvider clientProvider
*/
public function testListOperations(ClusterControllerClient $client)
{
$pagedResponse = $client->listClusters(self::$projectId, self::REGION);
$this->assertInstanceOf(PagedListResponse::class, $pagedResponse);

$response = $pagedResponse->getPage()->getResponseObject();
$this->assertInstanceOf(ListClustersResponse::class, $response);
}
}


84 changes: 84 additions & 0 deletions tests/system/OsLogin/OsLoginServiceClientTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
<?php
/**
* Copyright 2018 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

namespace Google\Cloud\Tests\System\Container;

use Google\Auth\CredentialsLoader;
use Google\Cloud\OsLogin\V1beta\OsLoginServiceClient;
use Google\Cloud\OsLogin\V1beta\LoginProfile;
use Google\Cloud\Tests\System\SystemTestCase;

class OsLoginServiceClientTest extends SystemTestCase
{
protected static $grpcClient;
protected static $restClient;
protected static $clientEmail;
private static $hasSetUp = false;

public function clientProvider()
{
self::setUpBeforeClass();

return [
[self::$restClient],
[self::$grpcClient]
];
}

public static function setUpBeforeClass()
{
if (self::$hasSetUp) {
return;
}

$keyFilePath = getenv('GOOGLE_CLOUD_PHP_TESTS_KEY_PATH');
$keyFileData = json_decode(file_get_contents($keyFilePath), true);

$credentialsLoader = CredentialsLoader::makeCredentials(
['https://www.googleapis.com/auth/cloud-platform'],
$keyFileData
);

self::$restClient = new OsLoginServiceClient([
'credentialsLoader' => $credentialsLoader,
'transport' => 'rest'
]);

self::$grpcClient = new OsLoginServiceClient([
'credentialsLoader' => $credentialsLoader,
'transport' => 'grpc'
]);

self::$clientEmail = $keyFileData['client_email'];

self::$hasSetUp = true;
}

/**
* @dataProvider clientProvider
*/
public function testListOperations(OsLoginServiceClient $client)
{
$response = $client->getLoginProfile(
$client->userName(self::$clientEmail)
);

$this->assertInstanceOf(LoginProfile::class, $response);
}
}


2 changes: 2 additions & 0 deletions tests/system/Spanner/SpannerTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ public static function setUpBeforeClass()

self::$database = $db;
self::$database2 = self::getDatabaseInstance(self::$dbName);

self::$hasSetUp = true;
}

private static function getClient()
Expand Down

0 comments on commit 817d5f8

Please sign in to comment.