11<?php
22
3-
43namespace Potherca \Flysystem \Github ;
54
5+ use PHPUnit_Framework_MockObject_Matcher_Parameters ;
6+ use PHPUnit_Framework_MockObject_MockObject as MockObject ;
7+
68/**
79 * Tests for the GithubAdapter class
810 *
@@ -15,10 +17,11 @@ class GithubAdapterTest extends \PHPUnit_Framework_TestCase
1517{
1618 ////////////////////////////////// FIXTURES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
1719 const MOCK_FILE_PATH = '/path/to/mock/file ' ;
20+ const MOCK_FOLDER_PATH = 'a-directory ' ;
1821
1922 /** @var GithubAdapter */
2023 private $ adapter ;
21- /** @var ApiInterface|\PHPUnit_Framework_MockObject_MockObject */
24+ /** @var ApiInterface|MockObject */
2225 private $ mockClient ;
2326
2427 /**
@@ -46,13 +49,23 @@ protected function setup()
4649 * @param $method
4750 * @param $apiMethod
4851 * @param $parameters
52+ * @param mixed $returnValue
4953 */
50- final public function testAdapterShouldPassParameterToClient ($ method , $ apiMethod , $ parameters )
54+ final public function testAdapterShouldPassParameterToClient ($ method , $ apiMethod , $ parameters, $ returnValue = null )
5155 {
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+ ;
5467
55- $ mocker ->getMatcher ()->parametersMatcher = new \ PHPUnit_Framework_MockObject_Matcher_Parameters ($ parameters );
68+ $ mocker ->getMatcher ()->parametersMatcher = new PHPUnit_Framework_MockObject_Matcher_Parameters ($ parameters );
5669
5770 call_user_func_array ([$ this ->adapter , $ method ], $ parameters );
5871 }
@@ -63,14 +76,17 @@ final public function testAdapterShouldPassParameterToClient($method, $apiMethod
6376 final public function provideReadMethods ()
6477 {
6578 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 ]],
7490 ];
7591 }
7692}
0 commit comments