<?php
require_once (dirname(__FILE__) . '/../../../includes.php');
class TransactionTest extends UnitTestCase {
public function testBuyerCodeWithMoreThan24Characters() {
$transaction = new Transaction();
try {
$transaction->buyerCode = '1234567890123456789012345';
$this->fail("should have gotten an exception");
} catch (RangeInvalidException $e) {
$this->assertEqual('Length exceeds allowed length. Maximum length is 24.', $e->getMessage());
}
}
public function testBuyerCode() {
$transaction = new Transaction();
$transaction->buyerCode = '123456789012345678901234';
$this->assertEqual('123456789012345678901234', $transaction->buyerCode);
}
public function testAuthCodeWithLessThan6() {
$transaction = new Transaction();
$transaction->authCode = '123456';
$this->assertEqual('123456', $transaction->authCode);
}
public function testAuthCodeWithMoreThan6Chars() {
$this->assertInvalidValueThrowsException('authCode', '1234567');
}
public function assertInvalidValueThrowsException($attr, $value){
$transaction = new Transaction();
try{
$transaction->$attr = $value;
$this->fail("should have gotten an exception assigning value $value to Transaction::$attr.");
}catch(RangeInvalidException $e){
$this->pass();
}
}
public function testAuthMethodInvalidType() {
$this->assertInvalidValueThrowsException('authMethod', 'INVALIDMETHOD');
}
public function assertValidValues($values, $attribute){
$transaction = new Transaction();
try{
foreach($values as $value){
$transaction->$attribute = $value;
}
$this->pass();
}catch(RangeInvalidException $e){
$this->fail("should not have gotten an exception");
}
}
public function testValidTypes(){
$values = array('Online', 'batch', 'setup', 'getDetails');
$this->assertValidValues($values, 'authMethod');
}
public function testBatchProcessorValidValues(){
$values = array('PAYMENTECH_SALEM');
$this->assertValidValues($values, 'batchProcessor');
}
public function testBatchProcessorInvalidValue(){
$this->assertInvalidValueThrowsException('batchProcessor', 'PAYMENTECH_');
}
public function testBillPaymentFlagValidValues(){
$values = array(1, 2);
$this->assertValidValues($values, 'billPaymentFlag');
}
public function testBillPaymentFlagInvalidValues(){
$this->assertInvalidValueThrowsException('billPaymentFlag', 3);
}
}
?>