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); } } ?>