/**
  * @param array $options
  * @return CompletePurchaseRequest
  */
 public function createRequest($options = [])
 {
     $stub = $this->stub;
     $httpRequest = new HttpRequest([], array_merge(['ik_co_id' => $stub->purse, 'ik_pm_no' => $stub->payment_no, 'ik_desc' => $stub->description, 'ik_pw_via' => $stub->payway, 'ik_am' => $stub->amount, 'ik_cur' => $stub->currency, 'ik_inv_id' => $stub->transactionId, 'ik_inv_st' => $stub->state, 'ik_inv_prc' => $stub->time, 'ik_sign' => $stub->sign], $options));
     $request = new CompletePurchaseRequest($this->getHttpClient(), $httpRequest);
     $request->initialize(['signAlgorithm' => $stub->signAlgorithm, 'signKey' => $stub->signKey]);
     return $request;
 }
 public function testTestMode()
 {
     $stub = $this->stub;
     $httpRequest = new HttpRequest([], ['ik_co_id' => $stub->purse, 'ik_trn_id' => $stub->transactionId, 'ik_desc' => $stub->description, 'ik_am' => $stub->amount, 'ik_cur' => $stub->currency, 'ik_inv_prc' => $stub->time, 'ik_sign' => $stub->sign, 'ik_inv_st' => $stub->state]);
     $request = new CompletePurchaseRequest($this->getHttpClient(), $httpRequest);
     $request->initialize(['testMode' => true, 'purse' => $stub->purse, 'signAlgorithm' => $stub->signAlgorithm, 'testKey' => $stub->testKey]);
     $data = $request->getData();
     $this->assertSame($stub->purse, $data['ik_co_id']);
     $this->assertSame($stub->transactionId, $data['ik_trn_id']);
     $this->assertSame($stub->description, $data['ik_desc']);
     $this->assertSame($stub->amount, $data['ik_am']);
     $this->assertSame($stub->currency, $data['ik_cur']);
     $this->assertSame($stub->time, $data['ik_inv_prc']);
 }