namespace  Ethplorer \ UnitTest ;
ใช้ ข้อยกเว้น ;
ใช้ PHPUnit_Framework_TestCase ;
/ **
 * ทดสอบ Ethplorer API
 * /
class  Api_Test  ขยาย PHPUnit_Framework_TestCase {
    protected  $ url  =  ' https://api.ethplorer.io/ ' ;
    / **
     * @return void
     * /
    การ ตั้งค่าฟังก์ชัน สาธารณะ () {
        parent :: setUp ();
    }
    / **
     * @ปก
     * /
     ฟังก์ชัน สาธารณะtestGetTokenInfo_OK () {
        $ cmd  =  ' getTokenInfo ' ;
        $ testAddress  =  ' '
ETH: 0

Transactions out: 0

This is a contract address

 ;
$ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey ' ));
        $ this -> assertTrue (
            is_array ( $ aResult ),
            sprintf (
                "การตอบสนองที่ไม่ถูกต้องที่ได้รับ: \ n % s " ,
                var_export ( $ aResult , TRUE )
            )
        );
$ aMandatoryFields = array ( " address " , " name " , " decimals " , "สัญลักษณ์" , " totalSupply " , " owner " , " totalIn " , " totalOut " , " holdersCount " , " issuancesCount " , " countOps " );
        $ this -> checkArray ( $ aResult , $ aMandatoryFields );
$ this -> assertEquals ( strtolower ( $ testAddress ), $ aResult [ ' address ' ]); $ this -> assertEquals ( ' THBEX ' , $ aResult [ ' name ' ]); $ this -> assertEquals ( " 4 " , $ aResult [ ' decimals ' ]); $ this -> assertEquals ( ' THBEX ' , $ aResult [ ' symbol ' ]);
    }
    / **
     * @ปก
     * /
    ประชาชน ฟังก์ชั่น testGetTokenInfo_Errors () {
        $ cmd  =  ' getTokenInfo ' ;
$ testAddress = ' ' 0xFf71Cb760666Ab06aa73f34995b42dd4b85ea07b ;
        $ testAddresses  =  array (
            // address => รหัสข้อผิดพลาด
            ' '
ETH: 0

Transactions out: 0

This is a contract address

     =>  150 , //สัญญา แต่ไม่ใช่โทเค็น
' ' 0xf3763c30dd6986b53402d41a8552b8f7f6a6089c => 150 , //ไม่ใช่สัญญา ' '0xff3763c30dd6986b53402d41a8552b8f7f6a6089c => 104 , //รูปแบบที่อยู่ไม่ถูกต้อง ' f3763c30dd6986b53402d41a8552b8f7f6a6089c ' => 104 , //รูปแบบที่อยู่ไม่ถูกต้อง
        );
        foreach ( $ testAddresses  เป็น $ address  =>  $ code ) {
$ aResult = $ this -> rq ( $ cmd , $ address , array ( ' apiKey ' => ' freekey ' ));
            $ this -> assertTrue (
is_array ( $ aResult ) && isset ( $ aResult [ ' error ' ]) && is_array ( $ aResult [ ' error ' ]),
                sprintf (
                    "การตอบสนองที่ไม่ถูกต้องที่ได้รับ: \ n % s " ,
                    var_export ( $ aResult , TRUE )
                )
            );
$ this -> assertEquals ( $ code , $ aResult [ ' error ' ] [ ' code ' ]);
        }
        //ไม่มีคีย์ API
        $ aResult  =  $ this -> rq ( $ cmd , $ testAddress );
$ this -> assertEquals ( 1 , $ aResult [ ' error ' ] [ ' code ' ]);
        //คีย์ API ไม่ถูกต้อง
$ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey1 ' )); $ this -> assertEquals ( 1 , $ aResult [ ' error ' ] [ ' code ' ]);
    }
    / **
     * @ปก
     * /
    ประชาชน ฟังก์ชั่น testGetAddressInfo_OK () {
        $ cmd  =  ' getAddressInfo ' ;
        //ไม่โทเค็นไม่ได้ทำสัญญา
$ testAddress = ' ' 0x01763c30dd6986b53402d41a8552b8f7f6a6089b ; $ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey ' ));
        $ aMandatoryFields  =  array (
" ETH " , " ETH.balance " , " ETH.totalIn " , " ETH.totalOut " ,
            "ที่อยู่" , " countTxs " ,
        );
        $ this -> checkArray ( $ aResult , $ aMandatoryFields );
$ this -> assertEquals ( strtolower ( $ testAddress ), $ aResult [ ' address ' ]);
        //ไม่โทเค็น แต่สัญญา
$ testAddress = ' ' 0xf3763c30dd6986b53402d41a8552b8f7f6a6089b ; $ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey ' ));
        $ aMandatoryFields  =  array (
" ETH " , " ETH.balance " , " ETH.totalIn " , " ETH.totalOut " ,
            "ที่อยู่" , " countTxs " ,
" contractInfo " , " contractInfo.creatorAddress " , " contractInfo.transactionHash " , " contractInfo.timestamp "
        );
        $ this -> checkArray ( $ aResult , $ aMandatoryFields );
$ this -> assertEquals ( strtolower ( $ testAddress ), $ aResult [ ' address ' ]); $ this -> assertEquals ( " " 0xc2be1c765d622bcfa3ab30bedb508b633ab79217 , $ aResult [ ' contractInfo ' ] [ ' creatorAddress ' ]); $ this -> assertEquals ( " "0xbccde49492ff509f9a162de06574e63bc4d2038b96a13ca5935c9c1e97a4278d , $ aResult [ ' contractInfo ' ] [ ' transactionHash ' ]); $ this -> assertEquals ( 1474030125 , $ aResult [ ' contractInfo ' ] [ ' timestamp ' ]);
        // Token
$ testAddress = ' ' 0xFf71Cb760666Ab06aa73f34995b42dd4b85ea07b ; $ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey ' ));
        $ aMandatoryFields  =  array (
" ETH " , " ETH.balance " , " ETH.totalIn " , " ETH.totalOut " ,
            "ที่อยู่" , " contractInfo " , " countTxs " ,
" tokenInfo " , " tokenInfo.address " , " tokenInfo.name " , " tokenInfo.decimals " , " tokenInfo.totalSupply "
        );
        $ this -> checkArray ( $ aResult , $ aMandatoryFields );
$ this -> assertEquals ( strtolower ( $ testAddress ), $ aResult [ ' address ' ]); $ this -> assertEquals ( ' THBEX ' , $ aResult [ ' tokenInfo ' ] [ ' name ' ]); $ this -> assertEquals ( " 4 " , $ aResult [ ' tokenInfo ' ] [ ' decimals ' ]); $ this -> assertEquals ( ' THBEX ' , $ aResult [ ' tokenInfo ' ] [ 'สัญลักษณ์' ]);
    }
    / **
     * @ปก
     * /
    ประชาชน ฟังก์ชั่น testGetAddressInfo_Errors () {
        $ cmd  =  ' getAddressInfo ' ;
$ testAddress = ' ' 0xFf71Cb760666Ab06aa73f34995b42dd4b85ea07b ;
        //รูปแบบที่อยู่ไม่ถูกต้อง
$ aResult = $ this -> rq ( $ cmd , str_replace ( ' 0x ' , ' xx ' , $ testAddress )); $ this -> assertEquals ( 1 , $ aResult [ ' error ' ] [ ' code ' ]);
        //ไม่มีคีย์ API
        $ aResult  =  $ this -> rq ( $ cmd , $ testAddress );
$ this -> assertEquals ( 1 , $ aResult [ ' error ' ] [ ' code ' ]);
        //คีย์ API ไม่ถูกต้อง
$ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey1 ' )); $ this -> assertEquals ( 1 , $ aResult [ ' error ' ] [ ' code ' ]);
    }
    / **
     * @ปก
     * /
    ประชาชน ฟังก์ชั่น testGetTxInfo_OK () {
        $ cmd  =  ' getTxInfo ' ;
        //ไม่เป็นรายการโทเค็น
$ tx = ' '0xd98FF0f44e4700c26bcf00413bf2d3aaaf1d4e8d306b68dea4bcbd940b9063a0 ; $ aResult = $ this -> rq ( $ cmd , $ tx , array ( ' apiKey ' => ' freekey ' )); $ aMandatoryFields = array ( " hash " , " blockNumber " , " confirmations " , " success " , " from " , " to " , " value " , " input " , " gasLimit " , " gasUsed " , " logs " );
        $ this -> checkArray ( $ aResult , $ aMandatoryFields );
$ this -> assertEquals ( strtolower ( $ tx ), $ aResult [ ' hash ' ]); // $ this-> assertEquals (strtolower ($ tx), $ aResult ['timestamp']); $ this -> assertEquals ( 759019 , $ aResult [ ' blockNumber ' ]); $ this -> assertEquals ( true , $ aResult [ ' success ' ]); $ this -> assertEquals ( " " 0x4bb96091ee9d802ed039c4d1a5f6216f90f81b01 , $ aResult [ ' from ' ]); $ this -> assertEquals ( " " 0xc1c9c914552dc4e110c57e6d946870c5752c7aac , $ aResult [ ' to ' ]);
        $ this -> assertEquals ( 0 , $ aResult [ ' value ' ]);
$ this -> assertEquals ( " 0x " , $ aResult [ ' input ' ]); $ this -> assertEquals ( 41000 , $ aResult [ ' gasLimit ' ]);
        $ this -> assertEquals ( 0 , $ aResult [ ' gasUsed ' ]);
$ this -> assertEquals ( 0 , count ( $ aResult [ ' logs ' ]));
        // การทำธุรกรรมโทเค็นด้วยการดำเนินการครั้งเดียว
$ tx = ' '0x91D6024517497c5740e1d8a4786779c257caa6d852b7c7365a0368e0ab2ebf86 ; $ aResult = $ this -> rq ( $ cmd , $ tx , array ( ' apiKey ' => ' freekey ' )); $ aMandatoryFields = array ( " hash " , / * "timestamp", * / " blockNumber " , " confirmations " , " success " , " from " , " to " , " value " , " input " , " gasLimit " , " gasUsed " , " logs ", "การดำเนินงาน" );
        $ this -> checkArray ( $ aResult , $ aMandatoryFields );
$ this -> assertEquals ( strtolower ( $ tx ), $ aResult [ ' hash ' ]); // $ this-> assertEquals (strtolower ($ tx), $ aResult ['timestamp']); $ this -> assertEquals ( 2817933 , $ aResult [ ' blockNumber ' ]); $ this -> assertEquals ( true , $ aResult [ ' success ' ]);
        $ this -> assertEquals ( " "
ETH: 0.260857041

Transactions out: 1,085

 , $ aResult [ ' from ' ]);
$ this -> assertEquals ( " " 0x48c80f1f4d53d5951e5d5438b54cba84f29f32a5 , $ aResult [ ' to ' ]);
        $ this -> assertEquals ( 0 , $ aResult [ ' value ' ]);
$ this -> assertEquals ( 63000 , $ aResult [ ' gasLimit ' ]); $ this -> assertEquals ( 37274 , $ aResult [ ' gasUsed ' ]); $ this -> assertEquals ( 1 , count ( $ aResult [ ' logs ' ])); $ this -> assertEquals ( " " 0x48c80f1f4d53d5951e5d5438b54cba84f29f32a5 , $ aResult [ ' logs ' ] [ 0 ] [ ' address ' ]); $ this -> assertEquals ( " "0x000000000000000000000000000000000000000000000005e750ea1d10a28000 , $ aResult [ 'บันทึก' ] [ 0 ] [ 'ข้อมูล' ]); $ this -> assertEquals ( 3 , count ( $ aResult [ ' logs ' ] [ 0 ] [ ' topics ' ]))); $ this -> assertEquals ( " "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef , $ aResult [ 'ล็อก' ] [ 0 ] [ 'หัวข้อ' ] [ 0 ]); $ this -> assertEquals ( 1 , count ( $ aResult [ ' operations ' ])); $ this -> assertEquals ( " " 0xcab65db421ec1afdfb3a18fedb82ba24142e5e45 , $ aResult [ ' operations ' ] [ 0 ] [ ' from ' ]); $ this -> assertEquals ( " " 0x6fc51e87f55bd76ef83d6dc622ea9ad4ba72a056 , $ aResult [ ' operations ' ] [ 0 ] [ ' to ' ]); $ this -> assertEquals ( 1481877751 , $ aResult [ ' operations ' ] [ 0 ] [ ' timestamp ' ]); $ this -> assertEquals ( strtolower ( $ tx ), $ aResult [ ' operations ' ] [ 0 ] [ ' transactionHash ' ]); $ this -> assertEquals ( " transfer " , $ aResult [ ' operations ' ] [ 0 ] [ ' type ' ]); $ this -> assertEquals ( " 108901800000000000000 " , $ aResult [ ' operations ' ] [ 0 ] [ ' value ' ]); $ this -> assertEquals ( " REP " , $ aResult [ ' operations ' ] [ 0 ] [ ' tokenInfo ' ] [ 'สัญลักษณ์' ]); // การทำธุรกรรมโทเค็นกับการดำเนินการหลายรายการ: เราจะตรวจสอบใบสั่งงานเท่านั้น $ tx = ' '0xe1a33ccdf62f9b4d0dd6f369a61e01120be151275794163c38fb7e890e428dc7 ; $ aResult = $ this -> rq ( $ cmd , $ tx , array ( ' apiKey ' => ' freekey ' )); $ this -> assertEquals ( 2 , count ( $ aResult [ ' operations ' ])); $ this -> assertEquals ( " " 0x96477a1c968a0e64e53b7ed01d0d6e4a311945c2 , $ aResult [ ' operations ' ] [ 0 ] [ ' tokenInfo ' ] [ ' address ' ]); $ this -> assertEquals ( " " 0xc66ea802717bfb9833400264dd12c2bceaa34a6d , $ aResult [ ' operations ' ] [ 1 ] [ ' tokenInfo ' ] [ ' address ' ]);
    }
    / **
     * @ปก
     * /
    ประชาชน ฟังก์ชั่น testGetTxInfo_Error () {
        $ cmd  =  ' getTxInfo ' ;
$ tx = ' '0xd98FF0f44e4700c26bcf00413bf2d3aaaf1d4e8d306b68dea4bcbd940b9063a1 ;
        //ไม่รู้จัก hash
$ aResult = $ this -> rq ( $ cmd , $ tx , array ( ' apiKey ' => ' freekey ' )); $ this -> assertEquals ( 404 , $ aResult [ ' error ' ] [ ' code ' ]);
        //รูปแบบแฮชไม่ถูกต้อง
$ aResult = $ this -> rq ( $ cmd , str_replace ( ' 0x ' , ' xx ' , $ tx ), array ( ' apiKey ' => ' freekey ' )); $ this -> assertEquals ( 102 , $ aResult [ ' error ' ] [ ' code ' ]);
        //ไม่มีคีย์ API
        $ aResult  =  $ this -> rq ( $ cmd , $ tx );
$ this -> assertEquals ( 1 , $ aResult [ ' error ' ] [ ' code ' ]);
        //คีย์ API ไม่ถูกต้อง
$ aResult = $ this -> rq ( $ cmd , $ tx , array ( ' apiKey ' => ' freekey1 ' )); $ this -> assertEquals ( 1 , $ aResult [ ' error ' ] [ ' code ' ]);
    }
     ฟังก์ชัน สาธารณะtestGetTokenHistory_OK () {
        $ cmd  =  ' getTokenHistory ' ;
        $ testAddress  =  FALSE ;
$ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey ' ));
        $ aMandatoryFields  =  array ( ' operations ' );
        $ this -> checkArray ( $ aResult , $ aMandatoryFields );
$ this -> assertEquals ( 10 , count ( $ aResult [ ' operations ' ]));
        $ aOperation  =  $ aResult [ ' operations ' ] [ 0 ];
$ aMandatoryFields = array ( 'จาก' , 'ถึง' , ' timestamp ' , ' tokenInfo ' , ' tokenInfo.address ' , ' tokenInfo.totalSupply ' , ' transactionHash ' , ' type ' , ' value ' ); $ this -> checkArray ( $ aOperation , $ aMandatoryFields ); $ testAddress = ' ' 0xFf71Cb760666Ab06aa73f34995b42dd4b85ea07b ; $ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey ' ));
        $ aMandatoryFields  =  array ( ' operations ' );
        $ this -> checkArray ( $ aResult , $ aMandatoryFields );
$ this -> assertEquals ( 10 , count ( $ aResult [ ' operations ' ]));
        $ aOperation  =  $ aResult [ ' operations ' ] [ 0 ];
$ aMandatoryFields = array ( 'จาก' , 'ถึง' , ' timestamp ' , ' tokenInfo ' , ' tokenInfo.address ' , ' tokenInfo.totalSupply ' , ' transactionHash ' , ' type ' , ' value ' ); $ this -> checkArray ( $ aOperation , $ aMandatoryFields );
        สำหรับ ( $ i = 0 ; $ i < 9 ; $ i ++ ) {
$ this -> assertEquals ( ' ' 0xff71Cb760666ab06aa73f34995b42dd4b85ea07b , $ aResult [ ' operations ' ] [ $ i ] [ ' tokenInfo ' ] [ ' address ' ]);
        }
        // Check Type
        $ testAddress  =  ' '
ETH: 0

Transactions out: 0

This is a contract address

 ;
$ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey ' , ' type ' => ' issuance ' ));
        $ aMandatoryFields  =  array ( ' operations ' );
        $ this -> checkArray ( $ aResult , $ aMandatoryFields );
$ this -> assertEquals ( 3 , count ( $ aResult [ ' operations ' ]));
        สำหรับ ( $ i = 0 ; $ i < 2 ; $ i ++ ) {
$ this -> assertEquals ( ' issuance ' , $ aResult [ ' operations ' ] [ $ i ] [ ' type ' ]);
        }
        //ไม่ใช่โทเค็นการดำเนินการใด ๆ
        $ testAddress  =  ' '
ETH: 0

Transactions out: 0

 ;
$ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey ' , ' type ' => ' issuance ' ));
        $ aMandatoryFields  =  array ( ' operations ' );
        $ this -> checkArray ( $ aResult , $ aMandatoryFields );
$ this -> assertEquals ( 0 , count ( $ aResult [ ' operations ' ]));
        // Check Limit
        $ testAddress  =  ' '
ETH: 0

Transactions out: 0

This is a contract address

 ;
$ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey ' , ' limit ' => 5 ));
        $ aMandatoryFields  =  array ( ' operations ' );
        $ this -> checkArray ( $ aResult , $ aMandatoryFields );
$ this -> assertEquals ( 5 , count ( $ aResult [ ' operations ' ]));
        //ตรวจสอบขีด จำกัด สูงสุด
$ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey ' , ' limit ' => 500 ));
        $ aMandatoryFields  =  array ( ' operations ' );
        $ this -> checkArray ( $ aResult , $ aMandatoryFields );
$ this -> assertEquals ( 10 , count ( $ aResult [ ' operations ' ]));
    }
    / **
     * @ปก
     * /
     ฟังก์ชัน สาธารณะtestGetTokenHistory_Error () {
        $ cmd  =  ' getTokenHistory ' ;
        $ testAddress  =  '
ETH: 0

Transactions out: 0

This is a contract address

' ;
        //รูปแบบที่อยู่ไม่ถูกต้อง
$ aResult = $ this -> rq ( $ cmd , str_replace ( ' 0x ' , ' xx ' , $ testAddress ), อาร์เรย์ ( ' apiKey ' => ' freekey ' )); $ this -> assertEquals ( 104 , $ aResult [ ' error ' ] [ ' code ' ]);
        //ไม่มีคีย์ API
        $ aResult  =  $ this -> rq ( $ cmd , $ testAddress );
$ this -> assertEquals ( 1 , $ aResult [ ' error ' ] [ ' code ' ]);
        //คีย์ API ไม่ถูกต้อง
$ aResult = $ this -> rq ( $ cmd , $ testAddress , array ( ' apiKey ' => ' freekey1 ' )); $ this -> assertEquals ( 1 , $ aResult [ ' error ' ] [ ' code ' ]);
    }
    / **
     * คำขอ API
     * * * *
     * @param type $ cmd
     * @param type $ subject
     * @ พระรามอาร์เรย์ $ aParameters
     * @return type
     * /
การคุ้มครอง การทำงาน RQ ( $ cmd , $ เรื่อง = ' ' , อาร์เรย์ $ aParameters = อาร์เรย์ ()) {
        $ URL  =  $ นี้-> URL  $ cmd ;
        if ( $ subject ) {
            $ URL  =  $ URL  ' / ' $ subject ;
        }
        if ( ! empty ( $ aParameters )) {
$ URL = $ URL ' ? ' . http_build_query ( $ aParameters );
        }
        $ json  =  file_get_contents ( $ url );
        $ aResult  =  json_decode ( $ json , TRUE );
        return  $ aResult ;
    }
    / **
     * ตรวจสอบว่าอาร์เรย์มีฟิลด์ระบุทั้งหมดหรือไม่
     * * * *
     * @ พระรามอาร์เรย์ $ aResult
     * @ พระรามอาร์เรย์ $ aMandatoryFields
     * /
ฟังก์ชันที่ ได้รับการป้องกันcheckArray ( array $ aResult , array $ aMandatoryFields ) {
        foreach ( $ aMandatoryFields  as  $ field ) {
            $ fieldOriginal  =  $ field ;
            if ( FALSE  ! ==  strpos ( $ field , ' . ' )) {
                $ field  =  explode ( ' . ' , $ field );
            }
            $ this -> assertTrue (
is_array ( ฟิลด์ $ ) หรือไม่? isset ( $ aResult [ $ field [ 0 ]] [ $ field [ 1 ]]): isset ( $ aResult [ $ field ]),
                sprintf (
" Field { $ fieldOriginal } ไม่อยู่ในการตอบสนอง: \ n % s " ,
                    var_export ( $ aResult , TRUE )
                )
            );
        }
    }
}

Reply via email to