Completed
Pull Request — master (#1086)
by
unknown
06:17
created

CallbackTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 3
c 3
b 0
f 1
lcom 1
cbo 3
dl 0
loc 33
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testSerializerMustHaveSerializeMethod() 0 6 1
A testSetGroupsFailsWithInvalidSerializer() 0 14 1
A testSetGroupsWorksWithValidSerializer() 0 8 1
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->getMock(Serializer::class, [], [], '', false);
19
        $callback->setSerializer($serializer);
20
21
        $callback->setGroups(array('foo'));
22
    }
23
24
    public function testSetGroupsFailsWithInvalidSerializer()
25
    {
26
        $callback = new Callback();
27
        $serializer = $this->getMockBuilder('FakeSerializer')->setMethods(array('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(array('foo'));
37
    }
38
}
39