Example #1
0
 public function testNextWithValidator()
 {
     $sut = new Dfp_Datafeed_File_Reader();
     $mockAdapter = $this->getMock('Dfp_Datafeed_File_Reader_Format_Interface');
     $mockAdapter->expects($this->once())->method('loadNextRecord')->will($this->returnValue(array('xyz')));
     $mockValidator = $this->getMock('Dfp_Datafeed_File_Record_Validator');
     $mockValidator->expects($this->once())->method('validateRecord')->with($this->equalTo(array('xyz')))->will($this->returnValue(true));
     $sut->setRecordValidator($mockValidator);
     $sut->setFormat($mockAdapter);
     $sut->next();
     $sut = new Dfp_Datafeed_File_Reader();
     $mockValidator = $this->getMock('Dfp_Datafeed_File_Record_Validator');
     $mockValidator->expects($this->never())->method('validateRecord');
     $mockAdapter = $this->getMock('Dfp_Datafeed_File_Reader_Format_Interface');
     $mockAdapter->expects($this->once())->method('loadNextRecord')->will($this->returnValue(null));
     //eg end of file
     $sut->setRecordValidator($mockValidator);
     $sut->setFormat($mockAdapter);
     $sut->next();
     //add test for invalid row
     $mockAdapter = $this->getMock('Dfp_Datafeed_File_Reader_Format_Interface');
     $mockAdapter->expects($this->exactly(2))->method('loadNextRecord')->will($this->returnValue(array('xyz')));
     $mockAdapter->expects($this->once())->method('addError')->with($this->equalTo('Validation error on line 1: error'));
     $mockValidator = $this->getMock('Dfp_Datafeed_File_Record_Validator');
     $mockValidator->expects($this->exactly(2))->method('validateRecord')->with($this->equalTo(array('xyz')))->will($this->onConsecutiveCalls(false, true));
     $mockValidator->expects($this->once())->method('getErrors')->will($this->returnValue(array('error')));
     $sut->setRecordValidator($mockValidator);
     $sut->setFormat($mockAdapter);
     $sut->next();
 }