Code Duplication    Length = 30-34 lines in 3 locations

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

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