expectExceptionObject($exp); Parser::findParserForType($in); } else { $this->assertSame($exp, Parser::findParserForType($in)); } } public function provideContentTypes(): iterable { return [ ["application/feed+json", JSONParser::class], ["application/json", JSONParser::class], ["text/json", JSONParser::class], ["application/atom+xml", XMLParser::class], ["application/rss+xml", XMLParser::class], ["application/rdf+xml", XMLParser::class], ["application/xml", XMLParser::class], ["text/xml", XMLParser::class], ["text/plain", new Exception("notSupportedType")], ["not a type", null], ["text/json; charset=utf-8", JSONParser::class], ]; } /** @dataProvider provideDetectableContent */ public function testFindCorrectTypeForContent(string $in, string $exp): void { $this->assertSame($exp, Parser::findTypeForContent($in)); } public function provideDetectableContent(): iterable { return [ ['{""}', "application/json"], [" \n {\"v", "application/json"], ["", "text/html"], ["", "text/html"], [" \n \n ", "application/rss+xml"], [" \n ", "application/rss+xml"], ["", "application/xml"], ["plain text", "application/octet-stream"], ]; } }