public function testSplitGenerateOutputFiles()
 {
     $outputDir = '/tmp/';
     $outputName = 'output';
     $items = array(array('sku', 'qty'), array('teste', '4'), array('teste1', '5'), array('teste2', '6'), array('teste3', '7'), array('teste4', '8'), array('teste5', '9'), array('teste6', '4'), array('teste7', '7'));
     $currentFilename = '/tmp/' . $outputName;
     $csvFile = $this->getMockBuilder('Keboola\\Csv\\CsvFile')->disableOriginalConstructor()->getMock();
     $csvFile->expects($this->at(0))->method('getHeader')->will($this->returnValue($items[0]));
     $csvFileMock = $this->iteratorHelper($csvFile, $items, 1);
     $csvFileHandlerMock = m::mock('Helpers\\CSV\\CsvHandler');
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '1.csv', $items[0]);
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '1.csv', $items[1]);
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '2.csv', $items[0]);
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '2.csv', $items[2]);
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '2.csv', $items[3]);
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '3.csv', $items[0]);
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '3.csv', $items[4]);
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '3.csv', $items[5]);
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '4.csv', $items[0]);
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '4.csv', $items[6]);
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '4.csv', $items[7]);
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '5.csv', $items[0]);
     $csvFileHandlerMock->shouldReceive('writeRow')->with($currentFilename . '5.csv', $items[8]);
     $fileHandlerMock = m::mock('stdClass');
     $fileHandlerMock->shouldReceive('exists')->andReturn(true);
     $fileHandlerMock->shouldReceive('touch')->with($currentFilename . '1.csv');
     $fileHandlerMock->shouldReceive('touch')->with($currentFilename . '2.csv');
     $fileHandlerMock->shouldReceive('touch')->with($currentFilename . '3.csv');
     $fileHandlerMock->shouldReceive('touch')->with($currentFilename . '4.csv');
     $fileHandlerMock->shouldReceive('touch')->with($currentFilename . '5.csv');
     $csvSplitter = new CsvSplitter($csvFileMock, $outputDir);
     $csvSplitter->setCsvHandler($csvFileHandlerMock);
     $csvSplitter->setFileHandler($fileHandlerMock);
     $csvSplitter->split(2);
 }
<?php

require_once __DIR__ . '/../config/config.php';
use Helpers\CSV\CsvSplitter;
use Keboola\Csv\CsvFile;
$splitter = new CsvSplitter(new CsvFile(__DIR__ . '/../../sample.csv'), __DIR__ . '/tmp/output/');
$splitter->split(5);
$splitter->clearOutputFiles();