Code Duplication    Length = 43-47 lines in 2 locations

tests/unit/IO/FileWriterTest.php 2 locations

@@ 124-170 (lines=47) @@
121
        return $stream;
122
    }
123
124
    public function testInsertAll()
125
    {
126
        $data = [
127
            ['a', 'b', 'c', 'd'],
128
            ['e', 'f', 'g', 'h'],
129
        ];
130
131
        $stream = $this->getStream();
132
133
        $file = m::mock(FileNodeInterface::class, NodeStreamInterface::class);
134
        $file->shouldReceive('getStream')
135
             ->with('a+')
136
             ->andReturn($stream);
137
138
        $format = m::mock(CsvFormat::class)->makePartial();
139
        $formatter = m::mock(FormatterInterface::class);
140
        $factory = m::mock(FormatterFactoryInterface::class);
141
        $factory->shouldReceive('getFormatter')
142
                ->with($format)
143
                ->andReturn($formatter);
144
        $writer = new FileWriter($file, $format, $factory);
145
146
        $formatter->shouldReceive('format')
147
                  ->with(['a', 'b', 'c', 'd'])
148
                  ->andReturn('first line');
149
        $formatter->shouldReceive('format')
150
                  ->with(['e', 'f', 'g', 'h'])
151
                  ->andReturn('second line');
152
        $formatter->shouldReceive('getInitialBlock')
153
                  ->andReturn('initial' . "\n");
154
        $formatter->shouldReceive('getClosingBlock')
155
                  ->andReturn("\n" . 'close');
156
        $formatter->shouldReceive('getRowSeparator')
157
                  ->andReturn("\n");
158
159
        $expected = <<<CSV
160
initial
161
first line
162
second line
163
close
164
CSV;
165
166
        $writer->insertAll($data);
167
168
        $stream->rewind();
169
        static::assertEquals($expected, $stream->getContents());
170
    }
171
172
    public function testInsertOne()
173
    {
@@ 172-214 (lines=43) @@
169
        static::assertEquals($expected, $stream->getContents());
170
    }
171
172
    public function testInsertOne()
173
    {
174
        $stream = $this->getStream();
175
176
        $file = m::mock(FileNodeInterface::class, NodeStreamInterface::class);
177
        $file->shouldReceive('getStream')
178
             ->with('a+')
179
             ->andReturn($stream);
180
181
        $format = m::mock(CsvFormat::class)->makePartial();
182
        $formatter = m::mock(FormatterInterface::class);
183
        $factory = m::mock(FormatterFactoryInterface::class);
184
        $factory->shouldReceive('getFormatter')
185
                ->with($format)
186
                ->andReturn($formatter);
187
        $writer = new FileWriter($file, $format, $factory);
188
189
        $formatter->shouldReceive('format')
190
                  ->with(['a', 'b', 'c', 'd'])
191
                  ->andReturn('first line');
192
        $formatter->shouldReceive('format')
193
                  ->with(['e', 'f', 'g', 'h'])
194
                  ->andReturn('second line');
195
        $formatter->shouldReceive('getInitialBlock')
196
                  ->andReturn('initial' . "\n");
197
        $formatter->shouldReceive('getClosingBlock')
198
                  ->andReturn("\n" . 'close');
199
        $formatter->shouldReceive('getRowSeparator')
200
                  ->andReturn("\n");
201
202
        $expected = <<<CSV
203
initial
204
first line
205
second line
206
close
207
CSV;
208
209
        $writer->insertOne(['a', 'b', 'c', 'd']);
210
        $writer->insertOne(['e', 'f', 'g', 'h']);
211
212
        $stream->rewind();
213
        static::assertEquals($expected, $stream->getContents());
214
    }
215
}
216