public function setUp()
 {
     $this->fingerPrinterMock = $this->getMockBuilder('Finga\\FingerPrinter\\FingerPrinterInterface')->getMock();
     //This mock fingerprinter accepts only strings and prefix them with a "xxx:" string.
     $this->fingerPrinterMock->expects($this->any())->method('isFingerprintable')->will($this->returnCallback(function ($value) {
         return is_string($value);
     }));
     $this->fingerPrinterMock->expects($this->any())->method('fingerPrint')->will($this->returnCallback(function ($value) {
         return 'xxx:' . $value;
     }));
     //This mock for the transformationFingerPrinter class transform each value to the string
     //"transform"
     $this->trFingerPrinterMock = $this->getMockBuilder('Finga\\FingerPrinter\\TransformationFingerPrinter')->setConstructorArgs(array($this->fingerPrinterMock))->setMethods(array('getTransformation'))->getMock();
     $this->trFingerPrinterMock->expects($this->any())->method('getTransformation')->will($this->returnValue(function () {
         return 'transformed';
     }));
 }
 public function testFingerPrintLeafValuesEscapesColumnsAndBackslashes()
 {
     $value = 'asdasd:asdasd\\asasd';
     $escapedFp = addcslashes($this->valueFingerPrinter->fingerPrint($value), '\\:');
     $this->assertEquals(sha1($escapedFp), $this->fingerPrinter->fingerPrint($value));
 }