queue(200, self::GIF); $bytes = (new BuienradarClient($http))->rainRadar(); self::assertSame(self::GIF, $bytes); self::assertSame('https://image.buienradar.nl/2.0/image/animation/RadarmapRainNL', $http->requests[0]['url']); self::assertSame(['w' => 550, 'h' => 512], $http->requests[0]['params']); } public function testErrorStatusIsUpstreamException(): void { $http = (new FakeHttp())->queue(503, ''); $this->expectException(UpstreamException::class); $this->expectExceptionMessage('HTTP 503'); (new BuienradarClient($http))->rainRadar(); } public function testNonGifResponseIsUpstreamException(): void { // Bijvoorbeeld een foutpagina of een redirect die als HTML binnenkomt. $http = (new FakeHttp())->queue(200, 'Oeps'); $this->expectException(UpstreamException::class); $this->expectExceptionMessage('geen GIF'); (new BuienradarClient($http))->rainRadar(); } }