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) { } }
/** * 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; }