Skip to content

Commit 586d005

Browse files
committed
Added more tests
1 parent 78ee1f0 commit 586d005

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

test/Http/MediaParserNegotiatorTest.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use BitFrame\Http\MediaParserNegotiator;
1616
use BitFrame\Parser\MediaParserInterface;
1717
use BitFrame\Parser\{DefaultMediaParser, JsonMediaParser, XmlMediaParser};
18+
use InvalidArgumentException;
1819

1920
use function get_class;
2021

@@ -66,6 +67,15 @@ public function parse(string $input)
6667
$this->assertSame('foo(bar)', $parser->parse('bar'));
6768
}
6869

70+
public function testAddNewInvalidParserShouldThrowException(): void
71+
{
72+
$invalidParser = new class {};
73+
74+
$this->expectException(InvalidArgumentException::class);
75+
76+
MediaParserNegotiator::add('whatever', get_class($invalidParser));
77+
}
78+
6979
public function preferredMediaParserProvider(): array
7080
{
7181
return [
@@ -103,4 +113,19 @@ public function testFromRequest(string $mime, string $expectedParser): void
103113

104114
$this->assertInstanceOf($expectedParser, MediaParserNegotiator::fromRequest($request));
105115
}
116+
117+
public function testGetsDefaultParserWhenAcceptHeaderNotPresent(): void
118+
{
119+
/** @var \PHPUnit\Framework\MockObject\MockObject|ServerRequestInterface $request */
120+
$request = $this->getMockBuilder(ServerRequestInterface::class)
121+
->onlyMethods(['getHeader'])
122+
->getMockForAbstractClass();
123+
124+
$request
125+
->method('getHeader')
126+
->with('accept')
127+
->willReturn([]);
128+
129+
$this->assertInstanceOf(DefaultMediaParser::class, MediaParserNegotiator::fromRequest($request));
130+
}
106131
}

0 commit comments

Comments
 (0)