Skip to content

Commit

Permalink
Use segmentByTagAndSubId() when possible
Browse files Browse the repository at this point in the history
  • Loading branch information
Chemaclass committed Sep 18, 2020
1 parent 5caaad6 commit d6d735f
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 9 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ EDI;

$messages = EdifactParser::createWithDefaultSegments()->parse($fileContent);
$firstMessage = reset($messages);
$cnNadSegment = $firstMessage->segmentsByTag(NADNameAddress::class)['CN'];
$cnNadSegment = $firstMessage->segmentByTagAndSubId(NADNameAddress::class, 'CN');
$personName = $cnNadSegment->rawValues()[4]; // 'Person Name'
```

3 changes: 2 additions & 1 deletion example/extracting-data.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
$firstMessage = reset($messages);

/** @var SegmentInterface $cnNadSegment */
$cnNadSegment = $firstMessage->segmentsByTag(NADNameAddress::class)['CN'];
$cnNadSegment = $firstMessage->segmentByTagAndSubId(NADNameAddress::class, 'CN');
$personName = $cnNadSegment->rawValues()[4];
assert('Person Name' === $personName);
echo $personName . PHP_EOL;
2 changes: 1 addition & 1 deletion src/TransactionMessage.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public function __construct(array $groupedSegments)
$this->groupedSegments = $groupedSegments;
}

/** @return array<string, SegmentInterface>|array */
/** @return array|array<string, SegmentInterface> */
public function segmentsByTag(string $tag): array
{
return $this->groupedSegments[$tag] ?? [];
Expand Down
12 changes: 6 additions & 6 deletions tests/Functional/EdifactParserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,19 +57,19 @@ public function extractValuesFromMessage(): void
$message = $transactionResult[0];

/** @var UNHMessageHeader $unh */
$unh = $message->segmentsByTag(UNHMessageHeader::class)['1'];
$unh = $message->segmentByTagAndSubId(UNHMessageHeader::class, '1');
self::assertEquals(['UNH', '1', ['IFTMIN', 'S', '93A', 'UN', 'PN001']], $unh->rawValues());

/** @var CNTControl $cnt7 */
$cnt7 = $message->segmentsByTag(CNTControl::class)['7'];
$cnt7 = $message->segmentByTagAndSubId(CNTControl::class, '7');
self::assertEquals(['CNT', ['7', '0.1', 'KGM']], $cnt7->rawValues());

/** @var CNTControl $cnt11 */
$cnt11 = $message->segmentsByTag(CNTControl::class)['11'];
$cnt11 = $message->segmentByTagAndSubId(CNTControl::class, '11');
self::assertEquals(['CNT', ['11', '1', 'PCE']], $cnt11->rawValues());

/** @var UNTMessageFooter $unt */
$unt = $message->segmentsByTag(UNTMessageFooter::class)['19'];
$unt = $message->segmentByTagAndSubId(UNTMessageFooter::class, '19');
self::assertEquals(['UNT', '19', '1'], $unt->rawValues());
}

Expand All @@ -90,11 +90,11 @@ public function useACustomSegmentFactory(): void
$message = $transactionResult[0];

/** @var SegmentInterface $custom */
$custom = $message->segmentsByTag('CUSTOM')['anyKey'];
$custom = $message->segmentByTagAndSubId('CUSTOM', 'anyKey');
self::assertEquals(['CUSTOM', 'anyKey', ['whatever', 'value', '9']], $custom->rawValues());

/** @var CNTControl $cnt11 */
$cnt11 = $message->segmentsByTag(CNTControl::class)['11'];
$cnt11 = $message->segmentByTagAndSubId(CNTControl::class, '11');
self::assertEquals(['CNT', ['11', '1', 'PCE']], $cnt11->rawValues());
}
}

0 comments on commit d6d735f

Please sign in to comment.