/**
  *  Convert data array into entity
  *
  *  @return VoucherGroup
  *  @param array $data
  *  @access public
  */
 public function build($data)
 {
     $oEntity = new VoucherGenRule();
     $sAlias = $this->getTableQueryAlias();
     $iVoucherGenId = $this->getField($data, 'voucher_gen_rule_id', $sAlias);
     $sVoucherRuleNameSlug = $this->getField($data, 'voucher_rule_slug', $sAlias);
     $sVoucherRuleName = $this->getField($data, 'voucher_rule_name', $sAlias);
     $sVoucherPaddingCharacter = $this->getField($data, 'voucher_padding_char', $sAlias);
     $sVoucherSuffix = $this->getField($data, 'voucher_suffix', $sAlias);
     $sVoucherPrefix = $this->getField($data, 'voucher_prefix', $sAlias);
     $iVoucherLength = $this->getField($data, 'voucher_length', $sAlias);
     $oDateCreated = $this->getField($data, 'date_created', $sAlias);
     $sSequenceStrategy = $this->getField($data, 'voucher_sequence_strategy', $sAlias);
     $oEntity->setVoucherGenRuleId($iVoucherGenId);
     $oEntity->setSlugRuleName($sVoucherRuleNameSlug);
     $oEntity->setVoucherRuleName($sVoucherRuleName);
     $oEntity->setVoucherPaddingCharacter($sVoucherPaddingCharacter);
     $oEntity->setVoucherSuffix($sVoucherSuffix);
     $oEntity->setVoucherPrefix($sVoucherPrefix);
     $oEntity->setVoucherLength($iVoucherLength);
     $oEntity->setDateCreated($oDateCreated);
     $oEntity->setSequenceStrategyName($sSequenceStrategy);
     return $oEntity;
 }
 public function testVoucherEntityFailure()
 {
     $oRule = new VoucherGenRule();
     $iVoucherGeneratorRuleId = 1;
     $sVoucherRuleNameSlug = '';
     $sVoucherRuleName = '';
     $sVoucherPaddingCharacter = 'A';
     $sVoucherSuffix = str_repeat('a', 100);
     $sVoucherPrefix = str_repeat('a', 100);
     $iVoucherLength = 101;
     $oDateCreated = new DateTime();
     $sSequenceStrategy = 'BAD';
     $oRule->setVoucherGenRuleId($iVoucherGeneratorRuleId);
     $oRule->setSlugRuleName($sVoucherRuleNameSlug);
     $oRule->setVoucherRuleName($sVoucherRuleName);
     $oRule->setVoucherPaddingCharacter($sVoucherPaddingCharacter);
     $oRule->setVoucherSuffix($sVoucherSuffix);
     $oRule->setVoucherPrefix($sVoucherPrefix);
     $oRule->setVoucherLength($iVoucherLength);
     $oRule->setDateCreated($oDateCreated);
     $oRule->setSequenceStrategyName($sSequenceStrategy);
     $oResults = $oRule->validate();
     $this->assertInternalType('array', $oResults);
     $this->assertEquals(count($oResults['voucherSuffix']), 1);
     $this->assertEquals(count($oResults['voucherPrefix']), 1);
     $this->assertEquals(count($oResults['sequenceStrategy']), 1);
     $this->assertEquals(count($oResults['voucherRuleName']), 1);
     $this->assertEquals(count($oResults['slugName']), 3);
     $this->assertEquals(count($oResults['voucherLength']), 1);
 }