Completed
Push — master ( d991f2...2b3b24 )
by Julián
04:04
created

OptionFactoryTest   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 76
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
wmc 9
c 0
b 0
f 0
lcom 1
cbo 3
dl 0
loc 76
rs 10
1
<?php
2
3
/*
4
 * A PSR7 aware cURL client (https://github.com/juliangut/spiral).
5
 *
6
 * @license BSD-3-Clause
7
 * @link https://github.com/juliangut/spiral
8
 * @author Julián Gutiérrez <[email protected]>
9
 */
10
11
namespace Jgut\Spiral\Tests\Option;
12
13
use Jgut\Spiral\Option\OptionFactory;
14
15
/**
16
 * Option factory tests.
17
 */
18
class OptionFactoryTest extends \PHPUnit_Framework_TestCase
19
{
20
    /**
21
     * @expectedException \Jgut\Spiral\Exception\OptionException
22
     */
23
    public function testUnknownOptionKey()
24
    {
25
        OptionFactory::getOptionKey('fictitious_option');
26
    }
27
28
    public function testOptionKey()
29
    {
30
        static::assertEquals(CURLOPT_TIMEOUT, OptionFactory::getOptionKey('timeout'));
31
    }
32
33
    /**
34
     * @expectedException \Jgut\Spiral\Exception\OptionException
35
     */
36
    public function testWrongCreation()
37
    {
38
        OptionFactory::build('fictitious_option', 'value');
39
    }
40
41
    public function testRegexCreation()
42
    {
43
        $option = OptionFactory::build(CURLOPT_USERPWD, 'user:password');
44
45
        static::assertEquals(CURLOPT_USERPWD, $option->getOption());
46
    }
47
48
    public function testIntCreation()
49
    {
50
        $option = OptionFactory::build(CURLOPT_PORT, 100);
51
52
        static::assertEquals(CURLOPT_PORT, $option->getOption());
53
    }
54
55
    public function testDefaultCreation()
56
    {
57
        $option = OptionFactory::build(CURLOPT_STDERR, 'location');
58
59
        static::assertEquals(CURLOPT_STDERR, $option->getOption());
60
    }
61
62
    public function testCallbackCreation()
63
    {
64
        $cookies = [
65
            'cookieOne' => 'one',
66
            'cookieTwo' => 'two',
67
        ];
68
        $option = OptionFactory::build(CURLOPT_COOKIE, $cookies);
69
70
        static::assertEquals(CURLOPT_COOKIE, $option->getOption());
71
        static::assertEquals('cookieOne=one; cookieTwo=two', $option->getValue());
72
    }
73
74
    /**
75
     * @expectedException \Jgut\Spiral\Exception\OptionException
76
     */
77
    public function testHttpVersionCallbackCreation()
78
    {
79
        $option = OptionFactory::build(CURLOPT_HTTP_VERSION, 1.1);
80
81
        static::assertEquals(CURLOPT_HTTP_VERSION, $option->getOption());
82
        static::assertEquals(CURL_HTTP_VERSION_1_1, $option->getValue());
83
84
        OptionFactory::build(CURLOPT_HTTP_VERSION, '1.5');
85
    }
86
87
    public function testCreation()
88
    {
89
        $option = OptionFactory::build(CURLOPT_REFERER, 'referer');
90
91
        static::assertEquals(CURLOPT_REFERER, $option->getOption());
92
    }
93
}
94