|
| 1 | +<?php |
| 2 | + |
| 3 | +namespace Fhp\Segment; |
| 4 | + |
| 5 | +use Fhp\Protocol\Message; |
| 6 | +use Fhp\Protocol\MessageBuilder; |
| 7 | +use Fhp\Segment\HIRMG\HIRMGv2; |
| 8 | +use Fhp\Segment\HIRMS\HIRMSv2; |
| 9 | +use Fhp\Syntax\Parser; |
| 10 | +use PHPUnit\Framework\TestCase; |
| 11 | + |
| 12 | +class FindRueckmeldungTraitTest extends TestCase |
| 13 | +{ |
| 14 | + private const TEST_RESPONSE = "HIRMG:2:2:+3060::Teilweise liegen Warnungen/Hinweise vor.'HIRMS:3:2:3+0020::Angemeldet.+3076::Keine starke Authentifizierung erforderlich.+0901::PIN gultig.'HIRMS:4:2:4+0020::Informationen fehlerfrei entgegengenommen.+3920::Zugelassene Ein- und Zwei-Schritt-Verfahren fur den Benutzer:900'HIRMS:5:2:6+0020::Die Synchronisierung der Kundensystem-ID war erfolgreich.'"; |
| 15 | + |
| 16 | + private Message $testMessage; |
| 17 | + |
| 18 | + protected function setUp(): void |
| 19 | + { |
| 20 | + // We can't use Message::parse() because that also tries to unwrap the message. |
| 21 | + $this->testMessage = Message::createPlainMessage( |
| 22 | + MessageBuilder::create() |
| 23 | + ->add(Parser::parseSegments(self::TEST_RESPONSE)) |
| 24 | + ); |
| 25 | + } |
| 26 | + |
| 27 | + public function testFindRueckmeldungFound() |
| 28 | + { |
| 29 | + $this->assertEquals('Angemeldet.', $this->testMessage->findRueckmeldung(20)->rueckmeldungstext); |
| 30 | + $this->assertEquals([900], $this->testMessage->findRueckmeldung(3920)->rueckmeldungsparameter); |
| 31 | + } |
| 32 | + |
| 33 | + public function testFindRueckmeldungNotFound() |
| 34 | + { |
| 35 | + $this->assertNull($this->testMessage->findRueckmeldung(42)); |
| 36 | + } |
| 37 | + |
| 38 | + public function testFindRueckmeldungen() |
| 39 | + { |
| 40 | + $this->assertCount(3, $this->testMessage->findRueckmeldungen(20)); |
| 41 | + $this->assertCount(1, $this->testMessage->findRueckmeldungen(3920)); |
| 42 | + $this->assertCount(0, $this->testMessage->findRueckmeldungen(42)); |
| 43 | + } |
| 44 | + |
| 45 | + public function testGetAllRueckmeldungen() |
| 46 | + { |
| 47 | + /** @var HIRMGv2 $hirmg */ |
| 48 | + $hirmg = $this->testMessage->findSegmentByNumber(2); |
| 49 | + $this->assertCount(1, $hirmg->getAllRueckmeldungen()); |
| 50 | + |
| 51 | + /** @var HIRMSv2 $hirms */ |
| 52 | + $hirms = $this->testMessage->findSegmentByNumber(3); |
| 53 | + $this->assertCount(3, $hirms->getAllRueckmeldungen()); |
| 54 | + } |
| 55 | + |
| 56 | + public function testFindRueckmeldungscodesForReferenceSegment() |
| 57 | + { |
| 58 | + $this->assertEquals([20, 3076, 901], $this->testMessage->findRueckmeldungscodesForReferenceSegment(3)); |
| 59 | + $this->assertEquals([20, 3920], $this->testMessage->findRueckmeldungscodesForReferenceSegment(4)); |
| 60 | + $this->assertEquals([20], $this->testMessage->findRueckmeldungscodesForReferenceSegment(6)); |
| 61 | + } |
| 62 | +} |
0 commit comments