public function testMergeScanned()
 {
     $existingMessage = new XliffMessage('foo');
     $existingMessage->setLocaleString('bar');
     $existingMessage->addSource(new FileSource('bar'));
     $existingMessage->setApproved(false);
     $existingMessage->setState(XliffMessage::STATE_NONE);
     $scannedMessage = new XliffMessage('foo');
     $scannedMessage->setDesc('foo');
     $scannedMessage->setApproved(true);
     $scannedMessage->setState(XliffMessage::STATE_TRANSLATED);
     $scannedMessage1 = new Message('foo');
     $scannedMessage1->setDesc('foo');
     $existingMessage1 = clone $existingMessage;
     $scannedMessage1 = clone $scannedMessage;
     $existingMessage1->mergeScanned($scannedMessage1);
     $this->assertEquals('foo', $existingMessage1->getDesc());
     $this->assertEquals('bar', $existingMessage1->getLocaleString());
     $this->assertFalse($existingMessage1->isNew());
     $this->assertEquals(array(), $existingMessage1->getSources());
     $this->assertTrue($existingMessage1->isApproved());
     $this->assertEquals(XliffMessage::STATE_TRANSLATED, $existingMessage1->getState());
     $existingMessage2 = clone $existingMessage;
     $existingMessage2->setDesc('bar');
     $existingMessage2->setApproved(true);
     $existingMessage2->setState(XliffMessage::STATE_TRANSLATED);
     $scannedMessage2 = clone $scannedMessage;
     $scannedMessage2->setDesc('foo');
     $scannedMessage2->setApproved(false);
     $scannedMessage2->setState(XliffMessage::STATE_NONE);
     $existingMessage2->mergeScanned($scannedMessage2);
     $this->assertEquals('bar', $existingMessage2->getDesc());
     $this->assertFalse($existingMessage2->isNew());
     $this->assertEquals(array(), $existingMessage2->getSources());
     $this->assertTrue($existingMessage2->isApproved());
     $this->assertEquals(XliffMessage::STATE_TRANSLATED, $existingMessage2->getState());
     $existingMessage3 = clone $existingMessage;
     $scannedMessage3 = clone $scannedMessage1;
     $existingMessage3->mergeScanned($scannedMessage3);
     $this->assertEquals('foo', $existingMessage3->getDesc());
     $this->assertEquals('bar', $existingMessage3->getLocaleString());
     $this->assertFalse($existingMessage3->isNew());
     $this->assertEquals(array(), $existingMessage3->getSources());
     $this->assertTrue($existingMessage3->isApproved());
     $this->assertEquals(XliffMessage::STATE_TRANSLATED, $existingMessage3->getState());
     $existingMessage4 = clone $existingMessage;
     $existingMessage4->setDesc('bar');
     $existingMessage4->setApproved(true);
     $existingMessage4->setState(XliffMessage::STATE_TRANSLATED);
     $scannedMessage4 = clone $scannedMessage1;
     $scannedMessage4->setDesc('foo');
     $existingMessage4->mergeScanned($scannedMessage4);
     $this->assertEquals('bar', $existingMessage4->getDesc());
     $this->assertEquals(array(), $existingMessage4->getSources());
     $this->assertTrue($existingMessage4->isApproved());
     $this->assertEquals(XliffMessage::STATE_TRANSLATED, $existingMessage4->getState());
 }