PHP 7.4.33
Preview: ResourceCollectionTest.php Size: 2.98 KB
/home/godevadmin/www/admin/braintree/final/braintree/tests/unit/ResourceCollectionTest.php

<?php
namespace Test\Unit;

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

use Test\Setup;
use Braintree;

class TestResource
{
    public function lookup($id) {
        return ResourceCollectionTest::$values[intval($id)];
    }

    public function fetch($ids)
    {

        return array_map(__NAMESPACE__ . '\TestResource::lookup', $ids);
    }
}

class ResourceCollectionTest extends Setup
{
    public static $values = ["a", "b", "c", "d", "e"];

    public function testIterateOverResults()
    {

        $response = [
            'searchResults' => [
                'pageSize' => 2,
                'ids' => ['0', '1', '2', '3', '4']
            ]
        ];

        $object = new TestResource();
        $pager = [
            'object' => $object,
            'method' => 'fetch',
            'methodArgs' => []
        ];

        $collection = new Braintree\ResourceCollection($response, $pager);

        $count = 0;
        $index = 0;
        foreach ($collection as $value)
        {
            $this->assertEquals(self::$values[$index], $value);
            $index += 1;
            $count += 1;
        }

        $this->assertEquals(5, $count);
    }

    public function testDoesntIterateWhenNoResults()
    {

        $response = [
            'searchResults' => [
                'pageSize' => 2,
                'ids' => []
            ]
        ];

        $object = new TestResource();
        $pager = [
            'object' => $object,
            'method' => 'fetch',
            'methodArgs' => []
        ];

        $collection = new Braintree\ResourceCollection($response, $pager);

        $count = 0;
        $index = 0;
        foreach ($collection as $value)
        {
            $index += 1;
            $count += 1;
            break;
        }

        $this->assertEquals(0, $count);
        $this->assertEquals(0, $index);
    }

    public function testGetIdsReturnsArrayOfIds()
    {

        $response = [
            'searchResults' => [
                'pageSize' => 2,
                'ids' => ["1", "2", "3"]
            ]
        ];

        $object = new TestResource();
        $pager = [
            'object' => $object,
            'method' => 'fetch',
            'methodArgs' => []
        ];

        $collection = new Braintree\ResourceCollection($response, $pager);

        $this->assertEquals($collection->getIds(), ["1", "2", "3"]);
    }

    public function testGetIdsReturnsAnEmptyArrayIfNoIds()
    {

        $response = [
            'searchResults' => [
                'pageSize' => 2,
                'ids' => []
            ]
        ];

        $object = new TestResource();
        $pager = [
            'object' => $object,
            'method' => 'fetch',
            'methodArgs' => []
        ];

        $collection = new Braintree\ResourceCollection($response, $pager);

        $this->assertEquals($collection->getIds(), []);
    }
}

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:44
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:44
Edit Download
3.11 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
590 B lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
1.49 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
1.97 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
2.74 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
3.81 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
1.32 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
1.03 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
2.98 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
534 B lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
2.17 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
528 B lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
1.10 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
4.32 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
1.04 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
795 B lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
508 B lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
7.99 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
26.61 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
3.04 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download
18.76 KB lrwxrwxr-x 2023-11-07 19:59:44
Edit Download

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