HEX
Server: Apache
System: Linux darrell.nocdirect.com 4.18.0-513.18.2.el8_9.x86_64 #1 SMP Sat Mar 30 06:10:41 EDT 2024 x86_64
User: joderbya (1358)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: /home/joderbya/public_html/ss-servicos/beira/includes/stripe/tests/CollectionTest.php
<?php

namespace Stripe;

class CollectionTest extends TestCase
{
    private function pageableModelResponse($ids, $hasMore)
    {
        $data = array();
        foreach ($ids as $id) {
            array_push($data, array(
                'id' => $id,
                'object' => 'pageablemodel'
            ));
        }
        return array(
            'object' => 'list',
            'url' => '/v1/pageablemodels',
            'data' => $data,
            'has_more' => $hasMore
        );
    }

    public function testAutoPagingOnePage()
    {
        $collection = Collection::constructFrom(
            $this->pageableModelResponse(array('pm_123', 'pm_124'), false),
            new Util\RequestOptions()
        );

        $seen = array();
        foreach ($collection->autoPagingIterator() as $item) {
            array_push($seen, $item['id']);
        }

        $this->assertSame($seen, array('pm_123', 'pm_124'));
    }

    public function testAutoPagingThreePages()
    {
        $collection = Collection::constructFrom(
            $this->pageableModelResponse(array('pm_123', 'pm_124'), true),
            new Util\RequestOptions()
        );
        $collection->setRequestParams(array('foo' => 'bar'));

        $this->mockRequest(
            'GET',
            '/v1/pageablemodels',
            array(
                  'foo' => 'bar',
                  'starting_after' => 'pm_124'
            ),
            $this->pageableModelResponse(array('pm_125', 'pm_126'), true)
        );
        $this->mockRequest(
            'GET',
            '/v1/pageablemodels',
            array(
                  'foo' => 'bar',
                  'starting_after' => 'pm_126'
            ),
            $this->pageableModelResponse(array('pm_127'), false)
        );

        $seen = array();
        foreach ($collection->autoPagingIterator() as $item) {
            array_push($seen, $item['id']);
        }

        $this->assertSame($seen, array('pm_123', 'pm_124', 'pm_125', 'pm_126', 'pm_127'));
    }

    public function testIteratorToArray()
    {
        $collection = Collection::constructFrom(
            $this->pageableModelResponse(array('pm_123', 'pm_124'), true),
            new Util\RequestOptions()
        );

        $this->mockRequest(
            'GET',
            '/v1/pageablemodels',
            array(
                  'starting_after' => 'pm_124'
            ),
            $this->pageableModelResponse(array('pm_125', 'pm_126'), true)
        );
        $this->mockRequest(
            'GET',
            '/v1/pageablemodels',
            array(
                  'starting_after' => 'pm_126'
            ),
            $this->pageableModelResponse(array('pm_127'), false)
        );

        $seen = array();
        foreach (iterator_to_array($collection->autoPagingIterator()) as $item) {
            array_push($seen, $item['id']);
        }

        $this->assertSame($seen, array('pm_123', 'pm_124', 'pm_125', 'pm_126', 'pm_127'));
    }
}