public function factory($fileOrigin, $testFile)
{
$mutation = new Mutation();
$tokenizer = new Tokenizer();
$mutation->setTokens($tokenizer->tokenize($fileOrigin))->setSourceFile($fileOrigin)->setTestFile($testFile);
foreach ($mutation->getTokens() as $index => $token) {
if ($this->mutaterFactory->isMutable($token)) {
$mutater = $this->mutaterFactory->factory($token);
$mutated = $mutater->mutate($mutation, $index);
if ($this->specification->isSatisfedBy($mutated, $index)) {
$mutation->addMutation($mutated);
}
}
}
return $mutation;
}