1
1
<?php
2
2
3
-
4
3
namespace Potherca \Flysystem \Github ;
5
4
5
+ use PHPUnit_Framework_MockObject_Matcher_Parameters ;
6
+ use PHPUnit_Framework_MockObject_MockObject as MockObject ;
7
+
6
8
/**
7
9
* Tests for the GithubAdapter class
8
10
*
@@ -15,10 +17,11 @@ class GithubAdapterTest extends \PHPUnit_Framework_TestCase
15
17
{
16
18
////////////////////////////////// FIXTURES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
17
19
const MOCK_FILE_PATH = '/path/to/mock/file ' ;
20
+ const MOCK_FOLDER_PATH = 'a-directory ' ;
18
21
19
22
/** @var GithubAdapter */
20
23
private $ adapter ;
21
- /** @var ApiInterface|\PHPUnit_Framework_MockObject_MockObject */
24
+ /** @var ApiInterface|MockObject */
22
25
private $ mockClient ;
23
26
24
27
/**
@@ -46,13 +49,23 @@ protected function setup()
46
49
* @param $method
47
50
* @param $apiMethod
48
51
* @param $parameters
52
+ * @param mixed $returnValue
49
53
*/
50
- final public function testAdapterShouldPassParameterToClient ($ method , $ apiMethod , $ parameters )
54
+ final public function testAdapterShouldPassParameterToClient ($ method , $ apiMethod , $ parameters, $ returnValue = null )
51
55
{
52
- $ mocker = $ this ->mockClient ->expects ($ this ->exactly (1 ))
53
- ->method ($ apiMethod );
56
+ if (is_string ($ returnValue ) && is_file (sprintf ('%s/../fixtures/%s.json ' , __DIR__ , $ returnValue ))) {
57
+ $ fixturePath = sprintf ('%s/../fixtures/%s.json ' , __DIR__ , $ returnValue );
58
+ $ fixture = json_decode (file_get_contents ($ fixturePath ), true );
59
+ $ returnValue = $ fixture ['tree ' ];
60
+ }
61
+
62
+
63
+ $ mocker = $ this ->mockClient ->expects (self ::exactly (1 ))
64
+ ->method ($ apiMethod )
65
+ ->willReturn ($ returnValue )
66
+ ;
54
67
55
- $ mocker ->getMatcher ()->parametersMatcher = new \ PHPUnit_Framework_MockObject_Matcher_Parameters ($ parameters );
68
+ $ mocker ->getMatcher ()->parametersMatcher = new PHPUnit_Framework_MockObject_Matcher_Parameters ($ parameters );
56
69
57
70
call_user_func_array ([$ this ->adapter , $ method ], $ parameters );
58
71
}
@@ -63,14 +76,17 @@ final public function testAdapterShouldPassParameterToClient($method, $apiMethod
63
76
final public function provideReadMethods ()
64
77
{
65
78
return [
66
- ['has ' , 'exists ' , [self ::MOCK_FILE_PATH ]],
67
- ['read ' , 'getFileContents ' , [self ::MOCK_FILE_PATH ]],
68
- ['listContents ' , 'getTreeMetadata ' , [self ::MOCK_FILE_PATH , true ]],
69
- ['getMetadata ' , 'getMetadata ' , [self ::MOCK_FILE_PATH ]],
70
- ['getSize ' , 'getMetadata ' , [self ::MOCK_FILE_PATH ]],
71
- ['getMimetype ' , 'guessMimeType ' , [self ::MOCK_FILE_PATH ]],
72
- ['getTimestamp ' , 'getLastUpdatedTimestamp ' , [self ::MOCK_FILE_PATH ]],
73
- ['getVisibility ' , 'getTreeMetadata ' , [self ::MOCK_FILE_PATH , false ]],
79
+ 'has ' => ['has ' , 'exists ' , [self ::MOCK_FILE_PATH ]],
80
+ 'read ' => ['read ' , 'getFileContents ' , [self ::MOCK_FILE_PATH ]],
81
+ 'listContents - File ' => ['listContents ' , 'getTreeMetadata ' , [self ::MOCK_FILE_PATH , false ]],
82
+ 'listContents - File - recursive ' => ['listContents ' , 'getTreeMetadata ' , [self ::MOCK_FILE_PATH , true ]],
83
+ 'listContents - Folder ' => ['listContents ' , 'getTreeMetadata ' , [self ::MOCK_FOLDER_PATH , false ], '' ],
84
+ 'listContents - Folder - recursive ' => ['listContents ' , 'getTreeMetadata ' , [self ::MOCK_FOLDER_PATH , true ], 'listContents-folder-recursive ' ],
85
+ 'getMetadata ' => ['getMetadata ' , 'getMetadata ' , [self ::MOCK_FILE_PATH ]],
86
+ 'getSize ' => ['getSize ' , 'getMetadata ' , [self ::MOCK_FILE_PATH ]],
87
+ 'getMimetype ' => ['getMimetype ' , 'guessMimeType ' , [self ::MOCK_FILE_PATH ]],
88
+ 'getTimestamp ' => ['getTimestamp ' , 'getLastUpdatedTimestamp ' , [self ::MOCK_FILE_PATH ]],
89
+ 'getVisibility ' => ['getVisibility ' , 'getTreeMetadata ' , [self ::MOCK_FILE_PATH ]],
74
90
];
75
91
}
76
92
}
0 commit comments