1919namespace de \codenamephp \installer \test \steps ;
2020
2121use de \codenamephp \installer \steps \DeleteFilesAndFolders ;
22+ use de \codenamephp \installer \templateCopy \variableReplacer \iVariableReplacer ;
2223use PHPUnit \Framework \TestCase ;
2324use Symfony \Component \Filesystem \Filesystem ;
2425
@@ -27,17 +28,30 @@ class DeleteFilesAndFoldersTest extends TestCase {
2728 private DeleteFilesAndFolders $ sut ;
2829
2930 protected function setUp () : void {
31+ $ variableReplacer = $ this ->createMock (iVariableReplacer::class);
3032 $ filesystem = $ this ->createMock (Filesystem::class);
3133
32- $ this ->sut = new DeleteFilesAndFolders ($ filesystem , []);
34+ $ this ->sut = new DeleteFilesAndFolders ($ variableReplacer , $ filesystem, [] , []);
3335 }
3436
3537 public function testRun () : void {
3638 $ this ->sut ->filesAndFoldersToDelete = ['some ' , 'files ' ];
37-
38- $ filesystem = $ this ->createMock (Filesystem::class);
39- $ filesystem ->expects (self ::once ())->method ('remove ' )->with ($ this ->sut ->filesAndFoldersToDelete );
40- $ this ->sut ->filesystem = $ filesystem ;
39+ $ this ->sut ->variables = ['some ' , 'vars ' ];
40+ $ this ->sut ->filesAndFoldersToDelete = ['folder1 ' , 'file1 ' , 'file2 ' ];
41+
42+ $ this ->sut ->variableReplacer = $ this ->createMock (iVariableReplacer::class);
43+ $ this ->sut ->variableReplacer
44+ ->expects (self ::exactly (3 ))
45+ ->method ('replace ' )
46+ ->withConsecutive (
47+ [$ this ->sut ->filesAndFoldersToDelete [0 ], $ this ->sut ->variables ],
48+ [$ this ->sut ->filesAndFoldersToDelete [1 ], $ this ->sut ->variables ],
49+ [$ this ->sut ->filesAndFoldersToDelete [2 ], $ this ->sut ->variables ],
50+ )
51+ ->willReturnOnConsecutiveCalls ('replaced1 ' , 'replaced2 ' , 'replaced3 ' );
52+
53+ $ this ->sut ->filesystem = $ this ->createMock (Filesystem::class);
54+ $ this ->sut ->filesystem ->expects (self ::once ())->method ('remove ' )->with (['replaced1 ' , 'replaced2 ' , 'replaced3 ' ]);
4155
4256 $ this ->sut ->run ();
4357 }
0 commit comments