public function testPaymentProcessObject()
 {
     $object = new PaymentProcess(['transactionConfig' => ['class' => DummyTransaction::class], 'amount' => 100, 'orderId' => 123, 'currency' => 'EUR', 'successLink' => '/success', 'errorLink' => '/error', 'abortLink' => '/abort']);
     $transaction = $object->getTransaction();
     $this->assertInstanceOf('\\luya\\payment\\base\\TransactionInterface', $transaction);
     $processId = $object->getId();
     $this->assertNotFalse($processId);
     $this->assertInstanceOf('\\luya\\payment\\models\\DataPaymentProcessModel', $object->model);
     $token = $object->model->auth_token;
     $randomKey = $object->model->random_key;
     // find payment process by processId
     $object2 = PaymentProcess::findByProcessId($processId);
     $this->assertInstanceOf('\\luya\\payment\\PaymentProcess', $object2);
     $this->assertSame($processId, $object2->getId());
     $this->assertSame(null, $object2->model->auth_token);
     // as the token can not be reassigned, it must be null
     // find payment by token:
     $object3 = PaymentProcess::findByToken($token, $randomKey);
     $this->assertInstanceOf('\\luya\\payment\\PaymentProcess', $object3);
     $this->assertSame($processId, $object3->getId());
     $this->assertSame($token, $object3->model->auth_token);
     // close the model
     $object->close(PaymentProcess::STATE_SUCCESS);
     $this->assertSame(1, $object->model->close_state);
     $this->assertSame(1, $object->model->is_closed);
 }