public function testFormBuilder()
 {
     $payment = $this->getRandomPayment();
     $order = $payment->getOrder();
     $client = $payment->getClient();
     $form = $payment->getForm();
     $this->assertEquals($this->environment->getGatewayUrl(), $form->getAction());
     $this->assertEquals('post', $form->getMethod());
     $fields = $form->getHiddenFields();
     $this->assertEquals($fields[Parameter::PSPID], $this->environment->getPSPID());
     $this->assertEquals($fields[Parameter::ORDER_ID], $order->getId());
     $this->assertEquals($fields[Parameter::AMOUNT], $order->getIntegerAmount());
     $this->assertEquals($fields[Parameter::CURRENCY], $order->getCurrency());
     $this->assertEquals($fields[Parameter::ORDER_TEXT], $order->getOrderText());
     $this->assertEquals($fields[Parameter::LANGUAGE], $client->getLocale());
     $this->assertEquals($fields[Parameter::CARD_HOLDER], $client->getName());
     $this->assertEquals($fields[Parameter::CLIENT_ADDRESS], $client->getAddress());
     $this->assertEquals($fields[Parameter::CLIENT_TOWN], $client->getTown());
     $this->assertEquals($fields[Parameter::CLIENT_TEL], $client->getTel());
     $this->assertEquals($fields[Parameter::CLIENT_COUNTRY], $client->getCountry());
 }
 /**
  * returns an URL for a GET request to the payment process.
  *
  * @return string
  */
 public function getUrl()
 {
     $this->finalizeParameters();
     return sprintf('%s?%s', $this->environment->getGatewayUrl(), http_build_query($this->parameters->getAll()));
 }