Skip to content

Commit f8fb43d

Browse files
committed
[#1085] Add tests
1 parent 3e021f2 commit f8fb43d

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

Tests/Serializer/CallbackTest.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
use \FOS\ElasticaBundle\Serializer\Callback;
4+
use \Symfony\Component\Serializer\Serializer;
5+
6+
class CallbackTest extends PHPUnit_Framework_TestCase
7+
{
8+
public function testSerializerMustHaveSerializeMethod()
9+
{
10+
$callback = new Callback();
11+
$this->setExpectedException(RuntimeException::class, 'The serializer must have a "serialize" method.');
12+
$callback->setSerializer(new \stdClass());
13+
}
14+
15+
public function testSetGroupsWorksWithValidSerializer()
16+
{
17+
$callback = new Callback();
18+
$serializer = $this->prophesize(Serializer::class);
19+
$callback->setSerializer($serializer->reveal());
20+
21+
$callback->setGroups(['foo']);
22+
}
23+
24+
public function testSetGroupsFailsWithInvalidSerializer()
25+
{
26+
$callback = new Callback();
27+
$serializer = $this->getMockBuilder('FakeSerializer')->setMethods(['serialize'])->getMock();
28+
$callback->setSerializer($serializer);
29+
30+
$this->setExpectedException(
31+
RuntimeException::class,
32+
'Setting serialization groups requires using "JMS\Serializer\Serializer" or '
33+
. '"Symfony\Component\Serializer\Serializer"'
34+
);
35+
36+
$callback->setGroups(['foo']);
37+
}
38+
}

0 commit comments

Comments
 (0)