示例#1
0
 /**
  * @param $data
  * @return Segment
  * @throws MandatorySegmentPieceMissing
  * @throws UnknownSegmentException
  */
 public function populate(&$data)
 {
     $segmentData = array_shift($data);
     $code = $segmentData[0];
     $segment = new Segment();
     $segment->setCode($code);
     $segment->setRawData($segmentData);
     if (!isset($this->segmentConfig[$code])) {
         return $segment;
         //            throw new UnknownSegmentException(sprintf("Unknown segment found: %s", $code));
     }
     $config = $this->segmentConfig[$code];
     $values = $this->transformValues($config->getDataElements(), $segmentData);
     foreach ($values as $k => $v) {
         $segment->set($k, $v);
     }
     return $segment;
 }
示例#2
0
 /**
  * @return mixed
  */
 protected function givenSegmentPopulator()
 {
     $segmentPopulator = \Phake::mock(SegmentPopulator::class);
     \Phake::when($segmentPopulator)->populate(\Phake::anyParameters())->thenReturnCallback(function (&$data) {
         $x = array_shift($data);
         $segment = new Segment($x[0]);
         $segment->setRawData($x);
         return $segment;
     });
     return $segmentPopulator;
 }