/home/kueuepay/www/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php
<?php
namespace Hamcrest\Core;

/*
 Copyright (c) 2009 hamcrest.org
 */
use Hamcrest\Description;
use Hamcrest\Matcher;
use Hamcrest\TypeSafeMatcher;
use Hamcrest\Util;

/**
 * Tests if an array contains values that match one or more Matchers.
 */
class IsCollectionContaining extends TypeSafeMatcher
{

    private $_elementMatcher;

    public function __construct(Matcher $elementMatcher)
    {
        parent::__construct(self::TYPE_ARRAY);

        $this->_elementMatcher = $elementMatcher;
    }

    protected function matchesSafely($items)
    {
        foreach ($items as $item) {
            if ($this->_elementMatcher->matches($item)) {
                return true;
            }
        }

        return false;
    }

    protected function describeMismatchSafely($items, Description $mismatchDescription)
    {
        $mismatchDescription->appendText('was ')->appendValue($items);
    }

    public function describeTo(Description $description)
    {
        $description
                ->appendText('a collection containing ')
                ->appendDescriptionOf($this->_elementMatcher)
                ;
    }

    /**
     * Test if the value is an array containing this matcher.
     *
     * Example:
     * <pre>
     * assertThat(array('a', 'b'), hasItem(equalTo('b')));
     * //Convenience defaults to equalTo()
     * assertThat(array('a', 'b'), hasItem('b'));
     * </pre>
     *
     * @factory ...
     */
    public static function hasItem()
    {
        $args = func_get_args();
        $firstArg = array_shift($args);

        return new self(Util::wrapValueWithIsEqual($firstArg));
    }

    /**
     * Test if the value is an array containing elements that match all of these
     * matchers.
     *
     * Example:
     * <pre>
     * assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
     * </pre>
     *
     * @factory ...
     */
    public static function hasItems(/* args... */)
    {
        $args = func_get_args();
        $matchers = array();

        foreach ($args as $arg) {
            $matchers[] = self::hasItem($arg);
        }

        return AllOf::allOf($matchers);
    }
}
Best Practice

Best Practices

To ensure a smooth integration process and optimal performance, follow these best practices:

  1. Use secure HTTPS connections for all API requests.
  2. Implement robust error handling to handle potential issues gracefully.
  3. Regularly update your integration to stay current with any API changes or enhancements.