Esempio n. 1
0
 public function testGetters()
 {
     $name = $this->getFaker()->word;
     $recordSpec1 = \Mockery::mock('Giftcards\\FixedWidth\\Spec\\RecordSpec');
     $recordSpec2 = \Mockery::mock('Giftcards\\FixedWidth\\Spec\\RecordSpec');
     $recordSpecs = array('record1' => $recordSpec1, 'record2' => $recordSpec2);
     $width = $this->getFaker()->numberBetween(10, 20);
     $spec = new FileSpec($name, $recordSpecs, $width, "\r\n");
     $this->assertEquals($name, $spec->getName());
     $this->assertSame($recordSpecs, $spec->getRecordSpecs());
     $this->assertSame($recordSpec1, $spec->getRecordSpec('record1'));
     $this->assertSame($recordSpec2, $spec->getRecordSpec('record2'));
     $this->assertEquals("\r\n", $spec->getLineSeparator());
 }
Esempio n. 2
0
 public function recognize(LineInterface $line, FileSpec $spec)
 {
     $specsMissingField = array();
     foreach ($spec->getRecordSpecs() as $name => $recordSpec) {
         try {
             $fieldSpec = $recordSpec->getFieldSpec($this->field);
         } catch (SpecNotFoundException $e) {
             $specsMissingField[] = $name;
             continue;
         }
         try {
             if ($fieldSpec->getDefault() == $line[$fieldSpec->getSlice()]) {
                 return $name;
             }
         } catch (\OutOfBoundsException $e) {
         }
     }
     $extraHelp = '';
     if (count($specsMissingField)) {
         $extraHelp = sprintf('record specs named %s are missing the %s field.', implode(', ', $specsMissingField), $this->field);
     }
     throw new CouldNotRecognizeException($extraHelp);
 }