Skip to content

Commit

Permalink
Merge pull request #21 from Jaimies/change-keys-to-3-letter-codes
Browse files Browse the repository at this point in the history
Change keys to 3 letter codes
  • Loading branch information
Chemaclass committed Oct 30, 2022
2 parents a938872 + 21d5c36 commit 46efc27
Show file tree
Hide file tree
Showing 26 changed files with 101 additions and 46 deletions.
2 changes: 1 addition & 1 deletion src/Segments/BGMBeginningOfMessage.php
Expand Up @@ -16,7 +16,7 @@ public function __construct(array $rawValues)

public function tag(): string
{
return self::class;
return 'BGM';
}

public function subId(): string
Expand Down
2 changes: 1 addition & 1 deletion src/Segments/CNTControl.php
Expand Up @@ -20,7 +20,7 @@ public function __construct(array $rawValues)

public function tag(): string
{
return self::class;
return 'CNT';
}

public function subId(): string
Expand Down
28 changes: 28 additions & 0 deletions src/Segments/CUXCurrencyDetails.php
@@ -0,0 +1,28 @@
<?php

declare(strict_types=1);

namespace EdifactParser\Segments;

/** @psalm-immutable */
class CUXCurrencyDetails implements SegmentInterface
{
public function __construct(private array $rawValues)
{
}

public function tag(): string
{
return 'CUX';
}

public function subId(): string
{
return $this->rawValues[1][0];
}

public function rawValues(): array
{
return $this->rawValues;
}
}
2 changes: 1 addition & 1 deletion src/Segments/DTMDateTimePeriod.php
Expand Up @@ -18,7 +18,7 @@ public function __construct(array $rawValues)

public function tag(): string
{
return self::class;
return 'DTM';
}

public function subId(): string
Expand Down
2 changes: 1 addition & 1 deletion src/Segments/MEADimensions.php
Expand Up @@ -18,7 +18,7 @@ public function __construct(array $rawValues)

public function tag(): string
{
return self::class;
return 'MEA';
}

public function subId(): string
Expand Down
2 changes: 1 addition & 1 deletion src/Segments/NADNameAddress.php
Expand Up @@ -18,7 +18,7 @@ public function __construct(array $rawValues)

public function tag(): string
{
return self::class;
return 'NAD';
}

public function subId(): string
Expand Down
2 changes: 1 addition & 1 deletion src/Segments/PCIPackageId.php
Expand Up @@ -16,7 +16,7 @@ public function __construct(array $rawValues)

public function tag(): string
{
return self::class;
return 'PCI';
}

public function subId(): string
Expand Down
4 changes: 3 additions & 1 deletion src/Segments/RFFReference.php
Expand Up @@ -13,12 +13,14 @@ public function __construct(private array $rawValues)

public function tag(): string
{
return self::class;
return 'RFF';
}

public function subId(): string
{
return $this->rawValues[1][0];
}

public function rawValues(): array
{
return $this->rawValues;
Expand Down
1 change: 1 addition & 0 deletions src/Segments/SegmentFactory.php
Expand Up @@ -24,6 +24,7 @@ final class SegmentFactory implements SegmentFactoryInterface
'BGM' => BGMBeginningOfMessage::class,
'UNT' => UNTMessageFooter::class,
'RFF' => RFFReference::class,
'CUX' => CUXCurrencyDetails::class,
];

private const TAG_LENGTH = 3;
Expand Down
2 changes: 1 addition & 1 deletion src/Segments/UNHMessageHeader.php
Expand Up @@ -18,7 +18,7 @@ public function __construct(array $rawValues)

public function tag(): string
{
return self::class;
return 'UNH';
}

public function subId(): string
Expand Down
2 changes: 1 addition & 1 deletion src/Segments/UNTMessageFooter.php
Expand Up @@ -16,7 +16,7 @@ public function __construct(array $rawValues)

public function tag(): string
{
return self::class;
return 'UNT';
}

public function subId(): string
Expand Down
2 changes: 1 addition & 1 deletion src/Segments/UnknownSegment.php
Expand Up @@ -16,7 +16,7 @@ public function __construct(array $rawValues)

public function tag(): string
{
return self::class;
return 'Unknown';
}

public function subId(): string
Expand Down
2 changes: 1 addition & 1 deletion src/TransactionMessage.php
Expand Up @@ -68,7 +68,7 @@ private static function hasUnhSegment(self ...$messages): array
{
return array_values(
array_filter($messages, static function (self $m) {
return !empty($m->segmentsByTag(UNHMessageHeader::class));
return !empty($m->segmentsByTag('UNH'));
})
);
}
Expand Down
10 changes: 5 additions & 5 deletions tests/Functional/EdifactParserTest.php
Expand Up @@ -63,19 +63,19 @@ public function extract_values_from_message(): void
$message = $transactionResult[0];

/** @var UNHMessageHeader $unh */
$unh = $message->segmentByTagAndSubId(UNHMessageHeader::class, '1');
$unh = $message->segmentByTagAndSubId('UNH', '1');

This comment has been minimized.

Copy link
@JesusValera

JesusValera Oct 30, 2022

Collaborator

@Jaimies maybe it makes sense to create a public const on each segment with the tag-name, then, the tag() method is returning the self::NAME, finally, you can reuse the public const in these tests? :)

This comment has been minimized.

Copy link
@Jaimies

Jaimies Oct 30, 2022

Collaborator

That's a great idea, I'll give it a try

This comment has been minimized.

Copy link
@Chemaclass

Chemaclass Oct 31, 2022

Author Owner

I like that idea too

self::assertEquals(['UNH', '1', ['IFTMIN', 'S', '93A', 'UN', 'PN001']], $unh->rawValues());

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

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

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

Expand All @@ -102,7 +102,7 @@ public function use_a_custom_segment_factory(): void
self::assertEquals(['CUSTOM', 'anyKey', ['whatever', 'value', '9']], $custom->rawValues());

/** @var CNTControl $cnt11 */
$cnt11 = $message->segmentByTagAndSubId(CNTControl::class, '11');
$cnt11 = $message->segmentByTagAndSubId('CNT', '11');
self::assertEquals(['CNT', ['11', '1', 'PCE']], $cnt11->rawValues());
}
}
2 changes: 1 addition & 1 deletion tests/Unit/Segments/BGMBeginningOfMessageTest.php
Expand Up @@ -17,7 +17,7 @@ public function segment_values(): void
$rawValues = ['BGM', '340', '00250559268149700889', '9'];
$segment = new BGMBeginningOfMessage($rawValues);

self::assertEquals(BGMBeginningOfMessage::class, $segment->tag());
self::assertEquals('BGM', $segment->tag());
self::assertEquals('340', $segment->subId());
self::assertEquals($rawValues, $segment->rawValues());
}
Expand Down
2 changes: 1 addition & 1 deletion tests/Unit/Segments/CNTControlTest.php
Expand Up @@ -18,7 +18,7 @@ public function segment_values(): void
$rawValues = ['CNT', ['7', '0.1', 'KGM']];
$segment = new CNTControl($rawValues);

self::assertEquals(CNTControl::class, $segment->tag());
self::assertEquals('CNT', $segment->tag());
self::assertEquals('7', $segment->subId());
self::assertEquals($rawValues, $segment->rawValues());
}
Expand Down
24 changes: 24 additions & 0 deletions tests/Unit/Segments/CUXCurrencyDetailsTest.php
@@ -0,0 +1,24 @@
<?php

declare(strict_types=1);

namespace EdifactParser\Tests\Unit\Segments;

use EdifactParser\Segments\CUXCurrencyDetails;
use PHPUnit\Framework\TestCase;

class CUXCurrencyDetailsTest extends TestCase
{
/**
* @test
*/
public function segment_values(): void
{
$rawValues = ['CUX', ['5', 'GBP', '9']];
$segment = new CUXCurrencyDetails($rawValues);

self::assertEquals('CUX', $segment->tag());
self::assertEquals('5', $segment->subId());
self::assertEquals($rawValues, $segment->rawValues());
}
}
2 changes: 1 addition & 1 deletion tests/Unit/Segments/DTMDateTimePeriodTest.php
Expand Up @@ -18,7 +18,7 @@ public function segment_values(): void
$rawValues = ['DTM', ['10', '20191002', '102']];
$segment = new DTMDateTimePeriod($rawValues);

self::assertEquals(DTMDateTimePeriod::class, $segment->tag());
self::assertEquals('DTM', $segment->tag());
self::assertEquals('10', $segment->subId());
self::assertEquals($rawValues, $segment->rawValues());
}
Expand Down
2 changes: 1 addition & 1 deletion tests/Unit/Segments/MEADimensionsTest.php
Expand Up @@ -17,7 +17,7 @@ public function segment_values(): void
$rawValues = ['MEA', 'WT', 'G', ['KGM', '0.1']];
$segment = new MEADimensions($rawValues);

self::assertEquals(MEADimensions::class, $segment->tag());
self::assertEquals('MEA', $segment->tag());
self::assertEquals('WT', $segment->subId());
self::assertEquals($rawValues, $segment->rawValues());
}
Expand Down
2 changes: 1 addition & 1 deletion tests/Unit/Segments/NADNameAddressTest.php
Expand Up @@ -28,7 +28,7 @@ public function segment_values(): void
];
$segment = new NADNameAddress($rawValues);

self::assertEquals(NADNameAddress::class, $segment->tag());
self::assertEquals('NAD', $segment->tag());
self::assertEquals('CZ', $segment->subId());
self::assertEquals($rawValues, $segment->rawValues());
}
Expand Down
2 changes: 1 addition & 1 deletion tests/Unit/Segments/PCIPackageIdTest.php
Expand Up @@ -17,7 +17,7 @@ public function segment_values(): void
$rawValues = ['PCI', '18', '00250559268149700889'];
$segment = new PCIPackageId($rawValues);

self::assertEquals(PCIPackageId::class, $segment->tag());
self::assertEquals('PCI', $segment->tag());
self::assertEquals('18', $segment->subId());
self::assertEquals($rawValues, $segment->rawValues());
}
Expand Down
2 changes: 1 addition & 1 deletion tests/Unit/Segments/RFFReferenceTest.php
Expand Up @@ -17,7 +17,7 @@ public function segment_values(): void
$rawValues = ['RFF', ['ADE', '123413287423784']];
$segment = new RFFReference($rawValues);

self::assertEquals(RFFReference::class, $segment->tag());
self::assertEquals('RFF', $segment->tag());
self::assertEquals('ADE', $segment->subId());
self::assertEquals($rawValues, $segment->rawValues());
}
Expand Down
2 changes: 1 addition & 1 deletion tests/Unit/Segments/UNHMessageHeaderTest.php
Expand Up @@ -18,7 +18,7 @@ public function segment_values(): void
$rawValues = ['UNH', '1', ['IFTMIN', 'S', '93A', 'UN', 'PN001']];
$segment = new UNHMessageHeader($rawValues);

self::assertEquals(UNHMessageHeader::class, $segment->tag());
self::assertEquals('UNH', $segment->tag());
self::assertEquals('1', $segment->subId());
self::assertEquals($rawValues, $segment->rawValues());
}
Expand Down
2 changes: 1 addition & 1 deletion tests/Unit/Segments/UNTMessageFooterTest.php
Expand Up @@ -17,7 +17,7 @@ public function segment_values(): void
$rawValues = ['UNT', '19', '1'];
$segment = new UNTMessageFooter($rawValues);

self::assertEquals(UNTMessageFooter::class, $segment->tag());
self::assertEquals('UNT', $segment->tag());
self::assertEquals('19', $segment->subId());
self::assertEquals($rawValues, $segment->rawValues());
}
Expand Down
2 changes: 1 addition & 1 deletion tests/Unit/Segments/UnknownSegmentTest.php
Expand Up @@ -17,7 +17,7 @@ public function segment_values(): void
$rawValues = ['UNKNOWN', 'SEGMENT'];
$segment = new UnknownSegment($rawValues);

self::assertEquals(UnknownSegment::class, $segment->tag());
self::assertEquals('Unknown', $segment->tag());
self::assertEquals(md5(json_encode($rawValues)), $segment->subId());
self::assertEquals($rawValues, $segment->rawValues());
}
Expand Down

0 comments on commit 46efc27

Please sign in to comment.