Code Duplication    Length = 30-34 lines in 3 locations

tests/integration/Modify/Contract/MergeFilesTest.php 3 locations

@@ 171-200 (lines=30) @@
168
        $this->merge->contract($collection, $target);
169
    }
170
171
    public function testSimpleMergeFiles()
172
    {
173
        $collection = $this->createCollection('simple.merge/', 3);
174
175
        $outputFile = new LocalFile(static::$dir . 'simple.merge.output');
176
177
        $file = $this->merge->contract($collection, $outputFile);
178
179
        static::assertSame($file, $outputFile);
180
        static::assertEquals(
181
            [
182
                "File 1 Line 1",
183
                "File 1 Line 2",
184
                "File 1 Line 3",
185
                "File 2 Line 1",
186
                "File 2 Line 2",
187
                "File 2 Line 3",
188
                "File 3 Line 1",
189
                "File 3 Line 2",
190
                "File 3 Line 3",
191
            ],
192
            $file->getContents()
193
        );
194
195
        $exists = $collection->filter(function (FileNodeInterface $item) {
196
            return $item->exists();
197
        });
198
199
        static::assertCount(3, $exists);
200
    }
201
202
    /**
203
     * @param string $rootDir
@@ 221-250 (lines=30) @@
218
        return $collection;
219
    }
220
221
    public function testCallingMergeWithKeepOldFilesAsFalseDeletesAllTheFilesInTheCollection()
222
    {
223
        $collection = $this->createCollection('simple.merge.delete/', 3);
224
225
        $outputFile = new LocalFile(static::$dir . 'simple.merge.delete.output');
226
227
        $file = $this->merge->contract($collection, $outputFile, ['keepOldFiles' => false]);
228
229
        static::assertSame($file, $outputFile);
230
        static::assertEquals(
231
            [
232
                "File 1 Line 1",
233
                "File 1 Line 2",
234
                "File 1 Line 3",
235
                "File 2 Line 1",
236
                "File 2 Line 2",
237
                "File 2 Line 3",
238
                "File 3 Line 1",
239
                "File 3 Line 2",
240
                "File 3 Line 3",
241
            ],
242
            $file->getContents()
243
        );
244
245
        $exists = $collection->filter(function (FileNodeInterface $item) {
246
            return $item->exists();
247
        });
248
249
        static::assertCount(0, $exists);
250
    }
251
252
    public function testProcessFailedThrowException()
253
    {
@@ 270-303 (lines=34) @@
267
        $this->merge->contract($collection, $outputFile);
268
    }
269
270
    public function testCallingContractWillPassThroughOptions()
271
    {
272
        $collection = $this->createCollection('simple.contract.pass.through/', 3);
273
        $outputFile = new LocalFile(static::$dir . 'simple.contract.pass.through.output');
274
275
        $file = $this->merge->contract(
276
            $collection,
277
            $outputFile,
278
            [
279
                'keepOldFiles' => true,
280
            ]
281
        );
282
283
        static::assertEquals(
284
            [
285
                "File 1 Line 1",
286
                "File 1 Line 2",
287
                "File 1 Line 3",
288
                "File 2 Line 1",
289
                "File 2 Line 2",
290
                "File 2 Line 3",
291
                "File 3 Line 1",
292
                "File 3 Line 2",
293
                "File 3 Line 3",
294
            ],
295
            $file->getContents()
296
        );
297
298
        $exists = $collection->filter(function (FileNodeInterface $item) {
299
            return $item->exists();
300
        });
301
302
        static::assertCount(3, $exists);
303
    }
304
305
    public function testDeleteOldFilesWillDeleteAnyEmptyDirectories()
306
    {