| <?php | |
| /** | |
| * Copyright 2007 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. | |
| */ | |
| /** | |
| */ | |
| require_once 'google/appengine/api/api_base_pb.php'; | |
| require_once 'google/appengine/runtime/ApiProxyBase.php'; | |
| require_once 'google/appengine/runtime/ApplicationError.php'; | |
| require_once 'google/appengine/runtime/ArgumentError.php'; | |
| require_once 'google/appengine/runtime/CallNotFoundError.php'; | |
| require_once 'google/appengine/runtime/CancelledError.php'; | |
| require_once 'google/appengine/runtime/CapabilityDisabledError.php'; | |
| require_once 'google/appengine/runtime/DeadlineExceededError.php'; | |
| require_once 'google/appengine/runtime/FeatureNotEnabledError.php'; | |
| require_once 'google/appengine/runtime/OverQuotaError.php'; | |
| require_once 'google/appengine/runtime/RealApiProxy.php'; | |
| require_once 'google/appengine/runtime/RequestTooLargeError.php'; | |
| require_once 'google/appengine/runtime/ResponseTooLargeError.php'; | |
| require_once 'google/appengine/runtime/RPCFailedError.php'; | |
| use google\appengine\base\VoidProto; | |
| use google\appengine\runtime\ApiProxyBase; | |
| use google\appengine\runtime\RealApiProxy; | |
| /** | |
| * Mocked make_call function | |
| * Returns an error value as inserted at the $call_name value | |
| */ | |
| function make_call($package, | |
| $call_name, | |
| $request, | |
| &$result_array, | |
| $callback, | |
| $deadline) { | |
| $result_array['error'] = $call_name; | |
| $result_array['application_error'] = 1; | |
| $result_array['error_detail'] = 'this is the error detail'; | |
| } | |
| /** | |
| * Unittest for ApiProxy class. | |
| */ | |
| class ApiProxyTest extends \PHPUnit_Framework_TestCase { | |
| /** | |
| * Checks that an expected exception corresponds to a | |
| * given error value (via the ApiProxyBase lookup table). | |
| */ | |
| public function throwsException($exception, $errorNumber) { | |
| $this->setExpectedException("google\\appengine\\runtime\\" . $exception); | |
| $realApiProxy = new RealApiProxy(); | |
| $requestProto = new VoidProto(); | |
| $responseProto = ""; | |
| $resultArray = []; | |
| $realApiProxy->makeSyncCall('google.big', | |
| $errorNumber, | |
| $requestProto, | |
| $resultArray, | |
| $responseProto, | |
| 60); | |
| } | |
| /** | |
| * Tests for each exception/error value combination. | |
| */ | |
| public function testRPCFailedError() { | |
| $this->throwsException('RPCFailedError', ApiProxyBase::RPC_FAILED); | |
| } | |
| public function testCallNotFoundError() { | |
| $this->throwsException('CallNotFoundError', ApiProxyBase::CALL_NOT_FOUND); | |
| } | |
| public function testArgumentError() { | |
| $this->throwsException('ArgumentError', ApiProxyBase::ARGUMENT_ERROR); | |
| } | |
| public function testDeadlineExceededError() { | |
| $this->throwsException('DeadlineExceededError', | |
| ApiProxyBase::DEADLINE_EXCEEDED); | |
| } | |
| public function testCancelledError() { | |
| $this->throwsException('CancelledError', ApiProxyBase::CANCELLED); | |
| } | |
| public function testApplicationError() { | |
| $this->throwsException('ApplicationError', ApiProxyBase::APPLICATION_ERROR); | |
| } | |
| public function testError() { | |
| $this->throwsException('Error', ApiProxyBase::OTHER_ERROR); | |
| } | |
| public function testOverQuotaError() { | |
| $this->throwsException('OverQuotaError', ApiProxyBase::OVER_QUOTA); | |
| } | |
| public function testRequestTooLargeError() { | |
| $this->throwsException('RequestTooLargeError', | |
| ApiProxyBase::REQUEST_TOO_LARGE); | |
| } | |
| public function testCapabilityDisabledError() { | |
| $this->throwsException('CapabilityDisabledError', | |
| ApiProxyBase::CAPABILITY_DISABLED); | |
| } | |
| public function testFeatureNotEnabledError() { | |
| $this->throwsException('FeatureNotEnabledError', | |
| ApiProxyBase::FEATURE_DISABLED); | |
| } | |
| public function testResponseTooLargeError() { | |
| $this->throwsException('ResponseTooLargeError', | |
| ApiProxyBase::RESPONSE_TOO_LARGE); | |
| } | |
| } |