PrependingWriterTest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 101
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 2
Bugs 0 Features 2
Metric Value
wmc 5
c 2
b 0
f 2
lcom 1
cbo 2
dl 0
loc 101
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testWriteBeginning() 0 13 1
A testWriteMiddle() 0 15 1
A testWriteEnd() 0 15 1
A testWriteMiddleNewLine() 0 19 1
A testWriteBeginningNewLine() 0 17 1
1
<?php
2
3
namespace TextFile\Tests\Writer;
4
5
use TextFile\Tests\TextFileTestCase;
6
use TextFile\Writer\PrependingWriter;
7
8
/**
9
 * Class PrependingWriterTest
10
 *
11
 * @package TextFile\Tests\Writer
12
 */
13
class PrependingWriterTest extends TextFileTestCase
14
{
15
    /**
16
     * @covers TextFile\Writer\PrependingWriter::write
17
     */
18
    public function testWriteBeginning()
19
    {
20
        $prependingWriter = new PrependingWriter();
21
22
        $filePath = $this->createTestFileFromFixtures('complex_singleline_file.txt');
23
        $file     = new \SplFileObject($filePath, 'r+');
24
25
        $prependingWriter->write($file, 'test');
26
27
        $file->rewind();
28
29
        $this->assertEquals('testfirstsecondthirdfourthfifth', trim($file->current()));
30
    }
31
32
    /**
33
     * @covers TextFile\Writer\PrependingWriter::write
34
     */
35
    public function testWriteMiddle()
36
    {
37
        $prependingWriter = new PrependingWriter();
38
39
        $filePath = $this->createTestFileFromFixtures('complex_singleline_file.txt');
40
        $file     = new \SplFileObject($filePath, 'r+');
41
42
        $file->fseek(5);
43
44
        $prependingWriter->write($file, 'test');
45
46
        $file->rewind();
47
48
        $this->assertEquals('firsttestsecondthirdfourthfifth', trim($file->current()));
49
    }
50
51
    /**
52
     * @covers TextFile\Writer\PrependingWriter::write
53
     */
54
    public function testWriteEnd()
55
    {
56
        $prependingWriter = new PrependingWriter();
57
58
        $filePath = $this->createTestFileFromFixtures('complex_singleline_file.txt');
59
        $file     = new \SplFileObject($filePath, 'r+');
60
61
        $file->fseek(27);
62
63
        $prependingWriter->write($file, 'test');
64
65
        $file->rewind();
66
67
        $this->assertEquals('firstsecondthirdfourthfifthtest', trim($file->current()));
68
    }
69
70
    /**
71
     * @covers TextFile\Writer\ErasingWriter::write
72
     */
73
    public function testWriteMiddleNewLine()
74
    {
75
        $prependingWriter = new PrependingWriter();
76
77
        $filePath = $this->createTestFileFromFixtures('complex_singleline_file.txt');
78
        $file     = new \SplFileObject($filePath, 'r+');
79
80
        $file->fseek(5);
81
82
        $prependingWriter->write($file, 'test', true);
83
84
        $file->rewind();
85
86
        $this->assertEquals('firsttest', trim($file->current()));
87
88
        $file->next();
89
90
        $this->assertEquals('secondthirdfourthfifth', trim($file->current()));
91
    }
92
93
    /**
94
     * @covers TextFile\Writer\PrependingWriter::write
95
     */
96
    public function testWriteBeginningNewLine()
97
    {
98
        $prependingWriter = new PrependingWriter();
99
100
        $filePath = $this->createTestFileFromFixtures('complex_singleline_file.txt');
101
        $file     = new \SplFileObject($filePath, 'r+');
102
103
        $prependingWriter->write($file, 'test', true);
104
105
        $file->rewind();
106
107
        $this->assertEquals('test', trim($file->current()));
108
109
        $file->next();
110
111
        $this->assertEquals('firstsecondthirdfourthfifth', trim($file->current()));
112
    }
113
}
114