Code Duplication    Length = 30-34 lines in 3 locations

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

@@ 152-181 (lines=30) @@
149
        $this->merge->contract($collection, $target);
150
    }
151
152
    public function testSimpleMergeFiles()
153
    {
154
        $collection = $this->createCollection('simple.merge/', 3);
155
156
        $outputFile = new LocalFile(static::$dir . 'simple.merge.output');
157
158
        $file = $this->merge->contract($collection, $outputFile);
159
160
        static::assertSame($file, $outputFile);
161
        static::assertEquals(
162
            [
163
                "File 1 Line 1",
164
                "File 1 Line 2",
165
                "File 1 Line 3",
166
                "File 2 Line 1",
167
                "File 2 Line 2",
168
                "File 2 Line 3",
169
                "File 3 Line 1",
170
                "File 3 Line 2",
171
                "File 3 Line 3",
172
            ],
173
            $file->getContents()
174
        );
175
176
        $exists = $collection->filter(function (FileNodeInterface $item) {
177
            return $item->exists();
178
        });
179
180
        static::assertCount(3, $exists);
181
    }
182
183
    /**
184
     * @param string $rootDir
@@ 202-231 (lines=30) @@
199
        return $collection;
200
    }
201
202
    public function testCallingMergeWithKeepOldFilesAsFalseDeletesAllTheFilesInTheCollection()
203
    {
204
        $collection = $this->createCollection('simple.merge.delete/', 3);
205
206
        $outputFile = new LocalFile(static::$dir . 'simple.merge.delete.output');
207
208
        $file = $this->merge->contract($collection, $outputFile, ['keepOldFiles' => false]);
209
210
        static::assertSame($file, $outputFile);
211
        static::assertEquals(
212
            [
213
                "File 1 Line 1",
214
                "File 1 Line 2",
215
                "File 1 Line 3",
216
                "File 2 Line 1",
217
                "File 2 Line 2",
218
                "File 2 Line 3",
219
                "File 3 Line 1",
220
                "File 3 Line 2",
221
                "File 3 Line 3",
222
            ],
223
            $file->getContents()
224
        );
225
226
        $exists = $collection->filter(function (FileNodeInterface $item) {
227
            return $item->exists();
228
        });
229
230
        static::assertCount(0, $exists);
231
    }
232
233
    public function testProcessFailedThrowException()
234
    {
@@ 251-284 (lines=34) @@
248
        $this->merge->contract($collection, $outputFile);
249
    }
250
251
    public function testCallingContractWillPassThroughOptions()
252
    {
253
        $collection = $this->createCollection('simple.contract.pass.through/', 3);
254
        $outputFile = new LocalFile(static::$dir . 'simple.contract.pass.through.output');
255
256
        $file = $this->merge->contract(
257
            $collection,
258
            $outputFile,
259
            [
260
                'keepOldFiles' => true,
261
            ]
262
        );
263
264
        static::assertEquals(
265
            [
266
                "File 1 Line 1",
267
                "File 1 Line 2",
268
                "File 1 Line 3",
269
                "File 2 Line 1",
270
                "File 2 Line 2",
271
                "File 2 Line 3",
272
                "File 3 Line 1",
273
                "File 3 Line 2",
274
                "File 3 Line 3",
275
            ],
276
            $file->getContents()
277
        );
278
279
        $exists = $collection->filter(function (FileNodeInterface $item) {
280
            return $item->exists();
281
        });
282
283
        static::assertCount(3, $exists);
284
    }
285
286
    public function testDeleteOldFilesWillDeleteAnyEmptyDirectories()
287
    {