public function testFlush()
 {
     $delegate = $this->getMock('Ddeboer\\DataImport\\Writer');
     $writer = new BatchWriter($delegate);
     $delegate->expects($this->exactly(20))->method('writeItem');
     $writer->prepare();
     for ($i = 0; $i < 20; $i++) {
         $writer->writeItem(['Test']);
     }
 }
 public function testFlushWithFlushableDelegate()
 {
     $prophet = new \Prophecy\Prophet();
     $prophecy = $prophet->prophesize();
     $prophecy->willExtend('stdClass');
     $prophecy->willImplement('Ddeboer\\DataImport\\Writer');
     $prophecy->willImplement('Ddeboer\\DataImport\\Writer\\FlushableWriter');
     $prophecy->writeItem(\Prophecy\Argument::any())->shouldBeCalledTimes(40);
     $prophecy->prepare()->shouldBeCalledTimes(2);
     $prophecy->flush()->shouldBeCalled();
     $writer = new BatchWriter($prophecy->reveal());
     $writer->prepare();
     for ($i = 0; $i < 40; $i++) {
         $writer->writeItem(['Test']);
     }
 }