public function testSign()
 {
     $Class = new ReflectionClass(Request::class);
     $ParametersProperty = $Class->getProperty('parameters');
     $ParametersProperty->setAccessible(true);
     $Function = function () {
     };
     $Request = new Request('some/method', $Function, ['a' => 'value1', 'b' => 'value2']);
     $Request->sign(111, 222);
     $this->assertEquals(['project' => '111', 'a' => 'value1', 'b' => 'value2', 'signature' => '54d72211dc40f096b27f5bc3895d2a62a0ff7a21bdbc0fe7c62f5d2dfb1a0b6a'], $ParametersProperty->getValue($Request));
     $Request = new Request('some/method', $Function, ['b' => 'value2', 'a' => 'value1']);
     $Request->sign(111, 222);
     $this->assertEquals(['project' => '111', 'a' => 'value1', 'b' => 'value2', 'signature' => '54d72211dc40f096b27f5bc3895d2a62a0ff7a21bdbc0fe7c62f5d2dfb1a0b6a'], $ParametersProperty->getValue($Request));
     try {
         $Request->sign(333, 444);
         $this->fail();
     } catch (LogicException $Ex) {
     }
 }
Example #2
0
 /**
  * Create request instance
  * @param string $method API method name
  * @param array $parameters method call parameters
  * @param Closure $ResponseBuilder function that building response instance
  * @return Request request instance for API call
  */
 private function getRequest($method, $parameters, $ResponseBuilder)
 {
     $Request = new Request($method, $ResponseBuilder, $parameters);
     $Request->sign($this->publicKey, $this->privateKey);
     return $Request;
 }