public function aValidProcessor()
 {
     $object = Payment_Process2::factory('Dummy');
     $object->amount = 1;
     $object->_typeFieldMap = array('eCheck' => array('bankName' => 'xyz'));
     return $object;
 }
 public function testShouldCompleteTransaction()
 {
     $mock = new HTTP_Request2_Adapter_Mock();
     $mock->addResponse('HTTP/1.1 200 OK');
     $request = new HTTP_Request2();
     $request->setAdapter($mock);
     $object = Payment_Process2::factory('Dummy');
     $object->login = '******';
     $object->password = '******';
     $object->action = Payment_Process2::ACTION_NORMAL;
     $object->amount = 1;
     $object->setRequest($request);
     $object->setPayment($this->aValidPayment());
     $result = $object->process();
     $this->assertTrue($result instanceof Payment_Process2_Result_Dummy);
 }
 public function testShouldFailGracefullyOnFailedTransaction()
 {
     $mock = new HTTP_Request2_Adapter_Mock();
     $mock->addResponse('HTTP/1.1 404 Not Found');
     $request = new HTTP_Request2();
     $request->setAdapter($mock);
     $object = Payment_Process2::factory('PayPal');
     $object->login = '******';
     $object->password = '******';
     $object->amount = 1;
     $object->action = Payment_Process2::ACTION_NORMAL;
     $object->setRequest($request);
     $object->setPayment($this->aValidPayment());
     $result = $object->process();
     $this->assertTrue($result instanceof PEAR_Error);
 }
 public function testShouldRaiseErrorsIfNoPaymentTypeIsAvailableWhenProcessing()
 {
     $object = Payment_Process2::factory('TrustCommerce');
     try {
         $object->login = '******';
         $object->password = '******';
         $object->amount = 1;
         $object->action = Payment_Process2::ACTION_NORMAL;
         $object->process();
         $this->fail("An exception should have been raised");
     } catch (Payment_Process2_Exception $e) {
         $this->assertSame("Payment type not set", $e->getMessage());
     }
 }
<?php

require_once 'Payment/Process2.php';
require_once 'HTTP/Request2.php';
$options = array();
$options['debug'] = TRUE;
$request = new HTTP_Request2();
$request->setConfig('ssl_verify_peer', false);
// Remove this line if using in production, install the certificate
$process = Payment_Process2::factory('TrustCommerce', $options);
$process->setRequest($request);
$process->_debug = true;
$process->login = '******';
$process->password = '******';
$process->action = Payment_Process2::ACTION_NORMAL;
$process->amount = 99.98999999999999;
$card = Payment_Process2_Type::factory('CreditCard');
$card->setDate(strtotime('2004-01-01'));
$card->type = Payment_Process2_Type::CC_VISA;
$card->cardNumber = '4111111111111111';
$card->expDate = '01/2005';
$process->setPayment($card);
$result = $process->process();
echo 'Processor result: ' . "\n";
echo $result->getCode() . " - ";
echo $result->getMessage() . "\n";
 public function testShouldRaiseErrorWithUnknownTypes()
 {
     try {
         $object = Payment_Process2::factory('Duck');
         $this->fail("Expected an exception");
     } catch (Payment_Process2_Exception $ppe) {
     }
 }
 public function testShouldFailGracefullyOnFailedTransaction()
 {
     $mock = new HTTP_Request2_Adapter_Mock();
     $mock->addResponse('HTTP/1.1 404 Not Found');
     $request = new HTTP_Request2();
     $request->setAdapter($mock);
     $options = array('keyfile' => __FILE__, 'authorizeUri' => "http://google.com/");
     $object = Payment_Process2::factory('LinkPoint', $options);
     $object->login = '******';
     $object->password = '******';
     $object->amount = 1;
     $object->action = Payment_Process2::ACTION_NORMAL;
     $object->setRequest($request);
     $object->setPayment($this->aValidPayment());
     $result = $object->process();
     $this->assertTrue($result instanceof PEAR_Error);
 }
 public function testShouldValidateCorrectlyWithCvvCheck3()
 {
     $processor = Payment_Process2::factory('Dummy');
     $processor->setOption('cvvCheck', true);
     $processor->setPayment($this->aValidPayment());
     $r = new Payment_Process2_Result(null, $processor);
     $r->_statusCodeMap[null] = Payment_Process2::RESULT_APPROVED;
     $r->_cvvCodeMap[1] = Payment_Process2::CVV_MATCH;
     $r->cvvCode = 2;
     $this->assertNotSame(Payment_Process2::CVV_MATCH, $r->getCvvCode());
     try {
         $r->validate();
         $this->fail("Expected an exception: We haven't got a valid Cvv code set");
     } catch (Payment_Process2_Exception $ppe) {
     }
 }
 public function testShouldFailGracefullyOnFailedTransaction()
 {
     $response = new HTTP_Request2_Response('HTTP/1.1 200 OK');
     $response->appendBody(file_get_contents(dirname(__FILE__) . '/data/AuthorizeNet/error.html'));
     $mock = new HTTP_Request2_Adapter_Mock();
     $mock->addResponse($response);
     $request = new HTTP_Request2();
     $request->setAdapter($mock);
     $object = Payment_Process2::factory('AuthorizeNet');
     $object->login = '******';
     $object->password = '******';
     $object->amount = 1;
     $object->action = Payment_Process2::ACTION_NORMAL;
     $object->setRequest($request);
     $object->setPayment($this->aValidPayment());
     $result = $object->process();
     $this->assertTrue($result instanceof PEAR_Error);
 }
 public function testShouldAlwaysRequireATransactionReference()
 {
     $payment = Payment_Process2::factory('ANZ');
     $payment->action = Payment_Process2::ACTION_NORMAL;
     $payment->amount = 123.0;
     $payment->setPayment($this->aMockANZCard());
     try {
         $payment->validate();
         $this->fail("Expected an exception because we haven't got anything for vpc_MerchTxnRef");
     } catch (Payment_Process2_Exception $ppe) {
         $this->assertSame("Missing transaction reference", $ppe->getMessage());
     }
 }