/** * Oh Shit: It's an actual simple unit test! * @covers DataValidator::getZeroPaddedValue() */ public function testGetZeroPaddedValue() { //make sure that it works in the two main categories of ways it should work $this->assertEquals('00123', DataValidator::getZeroPaddedValue('123', 5), "getZeroPaddedValue does not properly pad out a value in the simplest case"); $this->assertEquals('00123', DataValidator::getZeroPaddedValue('0000123', 5), "getZeroPaddedValue does not properly unpad and re-pad a value when leading zeroes exist in the initial value"); //make sure it fails gracefully when asked to do something silly. $this->assertFalse(DataValidator::getZeroPaddedValue('123456', 5), "getZeroPaddedValue does not return false when the exact desired value is impossible"); }
public function stage(GatewayType $adapter, $normalized, &$stagedData) { // Pad some fields with zeros, to their maximum length. $fields = array('account_number', 'bank_code', 'branch_code'); foreach ($fields as $field) { if (isset($normalized[$field])) { $constraints = $adapter->getDataConstraints($field); if (isset($constraints['length'])) { $newval = DataValidator::getZeroPaddedValue($normalized[$field], $constraints['length']); if ($newval !== false) { $stagedData[$field] = $newval; } else { // Invalid value, so blank the field. $stagedData[$field] = ''; } } } } }