111386, 'bookingId' => 98609, 'addressId' => 225672, 'personId' => 412344, 'email' => 'bar-teilnehmer.in1@example.com', 'firstName' => 'Vorname 1', 'lastName' => 'Mustermann 1', ], JSON_THROW_ON_ERROR), [ 'response_headers' => ['content-type' => 'application/json'], ]); }, 'https://bpn-connect.test/'); $booking = (new BpnConnectClient($httpClient, new NullLogger()))->lookupBooking(' BAR-Teilnehmer.IN1@example.com ', 111386); self::assertSame('GET', $capturedMethod); self::assertSame('https://bpn-connect.test/api/bookings/lookup?email=bar-teilnehmer.in1@example.com&bookingNumber=111386', $capturedUrl); self::assertSame(111386, $capturedOptions['query']['bookingNumber']); self::assertSame(98609, $booking?->bookingId); self::assertSame(225672, $booking?->addressId); self::assertSame(412344, $booking?->personId); self::assertSame('bar-teilnehmer.in1@example.com', $booking?->email); self::assertSame('Vorname 1', $booking?->firstName); self::assertSame('Mustermann 1', $booking?->lastName); } public function testLookupBookingReturnsNullForNotFound(): void { $httpClient = new MockHttpClient(new MockResponse('', ['http_code' => 404]), 'https://bpn-connect.test/'); self::assertNull((new BpnConnectClient($httpClient, new NullLogger()))->lookupBooking('customer@example.com', 123)); } }