PHP 7.4.33
Preview: PaginatedCollectionTest.php Size: 2.74 KB
/home/godevadmin/www/admin/braintree/final/braintree2/tests/unit/PaginatedCollectionTest.php

<?php
namespace Test\Unit;

require_once dirname(__DIR__) . '/Setup.php';

use Test\Setup;
use Braintree;

class Pager {
    private $_pagingFunc;

    public function __construct($pagingFunc) {
        $this->_pagingFunc = $pagingFunc;
    }

    public function page ($page) {
        return call_user_func($this->_pagingFunc, $page);
    }
}

class PaginatedCollectionTest extends Setup
{
    public function testFetchesOnePageWhenPageAndTotalSizesMatch()
    {

        $pager = [
            'object' => new Pager(function ($page) {
                if ($page > 1)
                {
                    throw new \Exception('too many pages fetched');
                }
                else
                {
                    return new Braintree\PaginatedResult(1, 1, [1]);
                }
            }),
            'method' => 'page',
        ];
        $collection = new Braintree\PaginatedCollection($pager);

        $items = [];
        foreach($collection as $item)
        {
            array_push($items, $item);
        }

        $this->assertEquals(1, $items[0]);
        $this->assertEquals(1, count($items));
    }

    public function testFetchCollectionOfLessThanOnePage()
    {
        $pager = [
            'object' => new Pager(function ($page) {
                if ($page > 1)
                {
                    throw new \Exception('too many pages fetched');
                }
                else
                {
                    return new Braintree\PaginatedResult(2, 5, [1, 2]);
                }
            }),
            'method' => 'page',
        ];
        $collection = new Braintree\PaginatedCollection($pager);

        $items = [];
        foreach($collection as $item)
        {
            array_push($items, $item);
        }

        $this->assertEquals(1, $items[0]);
        $this->assertEquals(2, $items[1]);
        $this->assertEquals(2, count($items));
    }

    public function testFetchesMultiplePages()
    {
        $pager = [
            'object' => new Pager(function ($page) {
                if ($page > 2)
                {
                    throw new \Exception('too many pages fetched');
                }
                else
                {
                    return new Braintree\PaginatedResult(2, 1, [$page]);
                }
            }),
            'method' => 'page',
        ];
        $collection = new Braintree\PaginatedCollection($pager);

        $items = [];
        foreach($collection as $item)
        {
            array_push($items, $item);
        }

        $this->assertEquals(1, $items[0]);
        $this->assertEquals(2, $items[1]);
        $this->assertEquals(2, count($items));
    }
}

Directory Contents

Dirs: 2 × Files: 35

Name Size Perms Modified Actions
ClientApi DIR
- drwxrwxr-x 2023-11-07 19:59:44
Edit Download
Result DIR
- drwxrwxr-x 2023-11-07 19:59:46
Edit Download
921 B lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
2.32 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
726 B lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
18.29 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
5.10 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
769 B lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
1.95 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
3.57 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
647 B lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
1.38 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
962 B lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
1.66 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
2.07 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
1.09 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
3.11 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
590 B lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
1.49 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
1.97 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
2.74 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
3.81 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
1.32 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
1.03 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
2.98 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
534 B lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
2.17 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
528 B lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
1.10 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
4.32 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
1.04 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
795 B lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
508 B lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
7.99 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
26.61 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
3.04 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download
18.76 KB lrwxrwxr-x 2023-11-07 19:59:46
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).