/**
  * @covers Alchemy\Zippy\Resource\RequestMapper::map
  */
 public function testMap()
 {
     $locator = $this->getMockBuilder('Alchemy\\Zippy\\Resource\\TargetLocator')->disableOriginalConstructor()->getMock();
     $locator->expects($this->any())->method('locate')->will($this->returnValue('computed-location'));
     $mapper = new RequestMapper($locator);
     $collection = $mapper->map(__DIR__, array(__DIR__ . '/input/path/to/local/file.ext', __DIR__ . '/input/path/to/local/file2.ext', 'here' => __DIR__ . '/input/path/to/local/file3.ext'));
     $this->assertInstanceOf('Alchemy\\Zippy\\Resource\\ResourceCollection', $collection);
     $this->assertCount(3, $collection);
     $firstFound = $secondFound = $thirdFound = false;
     foreach ($collection as $resource) {
         $this->assertInstanceOf('Alchemy\\Zippy\\Resource\\Resource', $resource);
         if (__DIR__ . '/input/path/to/local/file.ext' === $resource->getOriginal()) {
             $firstFound = true;
             $this->assertEquals('computed-location', $resource->getTarget());
         } elseif (__DIR__ . '/input/path/to/local/file2.ext' === $resource->getOriginal()) {
             $secondFound = true;
             $this->assertEquals('computed-location', $resource->getTarget());
         } elseif (__DIR__ . '/input/path/to/local/file3.ext' === $resource->getOriginal()) {
             $thirdFound = true;
             $this->assertEquals('here', $resource->getTarget());
         } else {
             $this->fail('Unexpected content');
         }
     }
     if (!$firstFound || !$secondFound) {
         $this->fail('Unable to find all of the input in the output');
     }
 }