1
+ <?php
2
+ /**
3
+ * linkedin-client
4
+ * AccessTokenTest.php
5
+ *
6
+ * PHP Version 5
7
+ *
8
+ * @category Production
9
+ * @package Default
10
+ * @author Aleksey Salnikov <me@iamsalnikov.ru>
11
+ * @date 8/25/17 15:57
12
+ * @license http://www.zoonman.com/projects/linkedin-client/license.txt linkedin-client License
13
+ * @version GIT: 1.0
14
+ * @link http://www.zoonman.com/projects/linkedin-client/
15
+ */
16
+
17
+ namespace LinkedIn ;
18
+
19
+ use PHPUnit \Framework \TestCase ;
20
+
21
+ /**
22
+ * Class ClientTest
23
+ *
24
+ * @package LinkedIn
25
+ */
26
+ class AccessTokenTest extends TestCase
27
+ {
28
+ /**
29
+ * @dataProvider getValidResponseTestTable()
30
+ * @param AccessToken $expectedToken
31
+ * @param array $response
32
+ */
33
+ public function testConstructorFromResponseArray ($ expectedToken , $ response )
34
+ {
35
+ $ token = AccessToken::fromResponseArray ($ response );
36
+ $ this ->assertEquals ($ expectedToken ->getToken (), $ token ->getToken ());
37
+ }
38
+
39
+ public function getValidResponseTestTable ()
40
+ {
41
+ return [
42
+ [
43
+ 'expectedToken ' => new AccessToken ('test ' , 0 ),
44
+ 'response ' => [
45
+ 'access_token ' => 'test ' ,
46
+ 'expires_in ' => 0 ,
47
+ ],
48
+ ]
49
+ ];
50
+ }
51
+
52
+ /**
53
+ * @dataProvider getInvalidResponseTestTable()
54
+ *
55
+ * @param string $exceptionClass
56
+ * @param string $exceptionMessage
57
+ * @param mixed $response
58
+ */
59
+ public function testConstructorFromResponseArrayWithException ($ exceptionClass , $ exceptionMessage , $ response )
60
+ {
61
+ $ this ->setExpectedException ($ exceptionClass , $ exceptionMessage );
62
+ AccessToken::fromResponseArray ($ response );
63
+ }
64
+
65
+ public function getInvalidResponseTestTable ()
66
+ {
67
+ return [
68
+ [
69
+ 'expectedException ' => \InvalidArgumentException::class,
70
+ 'exceptionMessage ' => 'Argument is not array ' ,
71
+ 'response ' => null ,
72
+ ],
73
+ [
74
+ 'expectedException ' => \InvalidArgumentException::class,
75
+ 'exceptionMessage ' => 'Access token is not available ' ,
76
+ 'response ' => [],
77
+ ],
78
+ [
79
+ 'expectedException ' => \InvalidArgumentException::class,
80
+ 'exceptionMessage ' => 'Access token is not available ' ,
81
+ 'response ' => [
82
+ 'access_token ' => null ,
83
+ ],
84
+ ],
85
+ [
86
+ 'expectedException ' => \InvalidArgumentException::class,
87
+ 'exceptionMessage ' => 'Access token is not available ' ,
88
+ 'response ' => [
89
+ 'expires_in ' => 1 ,
90
+ ],
91
+ ],
92
+ [
93
+ 'expectedException ' => \InvalidArgumentException::class,
94
+ 'exceptionMessage ' => 'Access token expiration date is not specified ' ,
95
+ 'response ' => [
96
+ 'access_token ' => 'hello ' ,
97
+ ],
98
+ ],
99
+ [
100
+ 'expectedException ' => \InvalidArgumentException::class,
101
+ 'exceptionMessage ' => 'Access token expiration date is not specified ' ,
102
+ 'response ' => [
103
+ 'access_token ' => 'hello ' ,
104
+ 'expires_in ' => null ,
105
+ ],
106
+ ],
107
+ ];
108
+ }
109
+
110
+ public function testToString ()
111
+ {
112
+ $ token = new AccessToken ('hello ' , 1 );
113
+ $ this ->assertEquals ('hello ' , (string ) $ token );
114
+ }
115
+ }
0 commit comments