OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
firebase
/
vendor
/
google
/
gax
/
tests
/
Tests
/
Unit
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
08/12/2024 10:35:16 AM
rwxr-xr-x
📄
AgentHeaderTest.php
5.89 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
ApiExceptionTest.php
22.46 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
ApiStatusTest.php
5.41 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
ArrayTraitTest.php
5.71 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
BidiStreamTest.php
11.36 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
ClientOptionsTraitTest.php
20.93 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
ClientStreamTest.php
6.04 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
CredentialsWrapperTest.php
24.32 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
FixedSizeCollectionTest.php
7.5 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
GapicClientTraitTest.php
62.45 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
GeneratedTestTest.php
4.5 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
GrpcSupportTraitTest.php
1.49 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
InsecureCredentialsWrapperTest.php
3.1 KB
08/12/2024 10:35:16 AM
rw-r--r--
📁
Middleware
-
08/12/2024 10:36:19 AM
rwxr-xr-x
📄
MyMessage.php
743 bytes
08/12/2024 10:35:16 AM
rw-r--r--
📄
OperationResponseTest.php
16.37 KB
08/12/2024 10:35:16 AM
rw-r--r--
📁
Options
-
08/12/2024 10:36:19 AM
rwxr-xr-x
📄
PageStreamingDescriptorTest.php
2.16 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
PageTest.php
5.44 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
PagedListResponseTest.php
5.69 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
PathTemplateTest.php
9.19 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
ProtobufBandaidTest.php
1.15 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
ProtobufExtensionTest.php
2.17 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
RequestBuilderTest.php
17.19 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
RequestParamsHeaderDescriptorTest.php
3.28 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
ResourceHelperTraitTest.php
4.01 KB
08/12/2024 10:35:17 AM
rw-r--r--
📁
ResourceTemplate
-
08/12/2024 10:36:19 AM
rwxr-xr-x
📄
RetrySettingsTest.php
14.3 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
SerializerTest.php
10.21 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
ServerStreamTest.php
7.4 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
ServiceAddressTraitTest.php
2.2 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
TestTrait.php
4.72 KB
08/12/2024 10:35:17 AM
rw-r--r--
📁
Transport
-
08/12/2024 10:36:38 AM
rwxr-xr-x
📄
UriTraitTest.php
2.45 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
ValidationTraitTest.php
2.17 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
VersionTest.php
1.89 KB
08/12/2024 10:35:17 AM
rw-r--r--
📁
testdata
-
08/12/2024 10:36:45 AM
rwxr-xr-x
Editing: FixedSizeCollectionTest.php
Close
<?php /* * Copyright 2016 Google LLC * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following disclaimer * in the documentation and/or other materials provided with the * distribution. * * Neither the name of Google Inc. nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ namespace Google\ApiCore\Tests\Unit; use Google\ApiCore\Call; use Google\ApiCore\FixedSizeCollection; use Google\ApiCore\Page; use Google\ApiCore\PageStreamingDescriptor; use Google\ApiCore\Testing\MockStatus; use Google\Rpc\Code; use InvalidArgumentException; use LengthException; use PHPUnit\Framework\TestCase; class FixedSizeCollectionTest extends TestCase { use TestTrait; private function createPage($responseSequence) { $mockRequest = $this->createMockRequest('token', 3); $pageStreamingDescriptor = PageStreamingDescriptor::createFromFields([ 'requestPageTokenField' => 'pageToken', 'requestPageSizeField' => 'pageSize', 'responsePageTokenField' => 'nextPageToken', 'resourceField' => 'resourcesList' ]); $internalCall = $this->createCallWithResponseSequence($responseSequence); $callable = function () use ($internalCall) { list($response, $status) = $internalCall->takeAction(...func_get_args()); return $promise = new \GuzzleHttp\Promise\Promise(function () use (&$promise, $response) { $promise->resolve($response); }); }; $call = new Call('method', 'decodeType', $mockRequest); $options = []; $response = $callable($call, $options)->wait(); return new Page($call, $options, $callable, $pageStreamingDescriptor, $response); } public function testFixedCollectionMethods() { $responseA = $this->createMockResponse( 'nextPageToken1', ['resource1', 'resource2'] ); $responseB = $this->createMockResponse( 'nextPageToken2', ['resource3', 'resource4', 'resource5'] ); $responseC = $this->createMockResponse( 'nextPageToken3', ['resource6', 'resource7'] ); $responseD = $this->createMockResponse( '', ['resource8', 'resource9'] ); $page = $this->createPage([ [$responseA, new MockStatus(Code::OK, '')], [$responseB, new MockStatus(Code::OK, '')], [$responseC, new MockStatus(Code::OK, '')], [$responseD, new MockStatus(Code::OK, '')], ]); $fixedSizeCollection = new FixedSizeCollection($page, 5); $this->assertEquals($fixedSizeCollection->getCollectionSize(), 5); $this->assertEquals($fixedSizeCollection->hasNextCollection(), true); $this->assertEquals($fixedSizeCollection->getNextPageToken(), 'nextPageToken2'); $results = iterator_to_array($fixedSizeCollection); $this->assertEquals( $results, ['resource1', 'resource2', 'resource3', 'resource4', 'resource5'] ); $nextCollection = $fixedSizeCollection->getNextCollection(); $this->assertEquals($nextCollection->getCollectionSize(), 4); $this->assertEquals($nextCollection->hasNextCollection(), false); $this->assertEquals($nextCollection->getNextPageToken(), ''); $results = iterator_to_array($nextCollection); $this->assertEquals( $results, ['resource6', 'resource7', 'resource8', 'resource9'] ); } public function testIterateCollections() { $responseA = $this->createMockResponse( 'nextPageToken1', ['resource1', 'resource2'] ); $responseB = $this->createMockResponse( '', ['resource3', 'resource4'] ); $page = $this->createPage([ [$responseA, new MockStatus(Code::OK, '')], [$responseB, new MockStatus(Code::OK, '')], ]); $collection = new FixedSizeCollection($page, 2); $results = []; $iterations = 0; foreach ($collection->iterateCollections() as $nextCollection) { $results = array_merge($results, iterator_to_array($nextCollection)); $iterations++; } $this->assertEquals( $results, ['resource1', 'resource2', 'resource3', 'resource4'] ); $this->assertEquals(2, $iterations); } public function testApiReturningMoreElementsThanPageSize() { $responseA = $this->createMockResponse( 'nextPageToken1', ['resource1', 'resource2'] ); $responseB = $this->createMockResponse( 'nextPageToken2', ['resource3', 'resource4', 'resource5'] ); $page = $this->createPage([ [$responseA, new MockStatus(Code::OK, '')], [$responseB, new MockStatus(Code::OK, '')], ]); $this->expectException(LengthException::class); $this->expectExceptionMessage('API returned a number of elements exceeding the specified page size limit'); new FixedSizeCollection($page, 3); } public function testEmptyCollectionThrowsException() { $collectionSize = 0; $page = $this->getMockBuilder(Page::class) ->disableOriginalConstructor() ->getMock(); $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('collectionSize must be > 0.'); new FixedSizeCollection($page, $collectionSize); } public function testInvalidPageCount() { $collectionSize = 1; $page = $this->getMockBuilder(Page::class) ->disableOriginalConstructor() ->getMock(); $page->expects($this->exactly(2)) ->method('getPageElementCount') ->will($this->returnValue(2)); $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('collectionSize must be greater than or equal to the number of elements in initialPage'); new FixedSizeCollection($page, $collectionSize); } }