public function testApply()
 {
     $this->validatorValidation->addSourceConstraint('sourceField', new Email());
     $this->validatorValidation->addTargetConstraint('targetField', new NotNull());
     $expectedSourceFilter = new ValidatorFilter($this->validatorMock);
     $expectedSourceFilter->setAllowExtraFields(true);
     $expectedSourceFilter->add('sourceField', new Email());
     $expectedTargetFilter = new ValidatorFilter($this->validatorMock);
     $expectedTargetFilter->setAllowExtraFields(true);
     $expectedTargetFilter->add('targetField', new NotNull());
     $workflow = $this->getMockBuilder('Ddeboer\\DataImport\\Workflow')->disableOriginalConstructor()->getMock();
     $workflow->expects($this->once())->method('addFilter')->with($expectedSourceFilter);
     $workflow->expects($this->once())->method('addFilterAfterConversion')->with($expectedTargetFilter);
     $this->validatorValidation->apply($workflow);
 }
 /**
  * @medium
  */
 public function test()
 {
     $data1 = [['foo' => 'bar1']];
     $data2 = [['foo' => 'bar2']];
     $targetData = array();
     $targetStorage = new ArrayStorage($targetData);
     $validator = Validation::createValidator();
     $validation = new ValidatorValidation($validator);
     $validation->addSourceConstraint('foo', new Choice(['choices' => ['a']]));
     $importer = Importer::build($targetStorage);
     $importer->validation($validation);
     $importRunner = ImportRunner::build();
     $import = Import::build($importer, new ArrayStorage($data1));
     $importRunner->dryRun($import);
     $this->assertEquals(1, count($importer->validation()->getViolations()['source']));
     $import = Import::build($importer, new ArrayStorage($data2));
     $importRunner->dryRun($import);
     $this->assertEquals(1, count($importer->validation()->getViolations()['source']));
 }