/**
  * {@inheritdoc}
  */
 public function findOneByProviderAndLongUrl($providerName, $longUrl)
 {
     $provider = $this->chainProvider->getProvider($providerName);
     $link = $this->create();
     $link->setProviderName($provider->getName());
     $link->setLongUrl($longUrl);
     $provider->shorten($link);
     return $link;
 }
 /**
  * Tests to add and get some providers
  */
 public function testAddAndGetProviders()
 {
     $chainProvider = new ChainProvider();
     $bitlyProvider = $this->getMockBuilder('Mremi\\UrlShortener\\Provider\\Bitly\\BitlyProvider')->disableOriginalConstructor()->getMock();
     $bitlyProvider->expects($this->once())->method('getName')->will($this->returnValue('bitly'));
     $chainProvider->addProvider($bitlyProvider);
     $this->assertEquals($bitlyProvider, $chainProvider->getProvider('bitly'));
     $this->assertArrayHasKey('bitly', $chainProvider->getProviders());
     $this->assertTrue($chainProvider->hasProvider('bitly'));
     $this->assertCount(1, $chainProvider->getProviders());
     $googleProvider = $this->getMockBuilder('Mremi\\UrlShortener\\Provider\\Google\\GoogleProvider')->disableOriginalConstructor()->getMock();
     $googleProvider->expects($this->once())->method('getName')->will($this->returnValue('google'));
     $chainProvider->addProvider($googleProvider);
     $this->assertEquals($googleProvider, $chainProvider->getProvider('google'));
     $this->assertArrayHasKey('google', $chainProvider->getProviders());
     $this->assertTrue($chainProvider->hasProvider('google'));
     $this->assertCount(2, $chainProvider->getProviders());
 }