Skip to content

Commit

Permalink
Merge pull request #12 from JeroenDeDauw/SpyingFileFetcher
Browse files Browse the repository at this point in the history
Added getFirstFetchedUrl to SpyingFileFetcher
  • Loading branch information
KaiNissen committed Jun 8, 2017
2 parents 202ca4a + 631da99 commit c1a0333
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/SpyingFileFetcher.php
Expand Up @@ -40,4 +40,13 @@ public function getFetchedUrls(): array {
return $this->fetchedUrls;
}

/**
* @since 4.3
*
* @return string|null
*/
public function getFirstFetchedUrl() {
return empty( $this->fetchedUrls ) ? null : $this->fetchedUrls[0];
}

}
20 changes: 20 additions & 0 deletions tests/unit/SpyingFileFetcherTest.php
Expand Up @@ -6,6 +6,7 @@

use FileFetcher\FileFetchingException;
use FileFetcher\InMemoryFileFetcher;
use FileFetcher\NullFileFetcher;
use FileFetcher\SpyingFileFetcher;
use FileFetcher\ThrowingFileFetcher;
use PHPUnit\Framework\TestCase;
Expand Down Expand Up @@ -75,4 +76,23 @@ public function testCallsCausingExceptionsGetRecorded() {
$this->assertSame( [ 'url', 'foo' ], $spyingFetcher->getFetchedUrls() );
}

public function testWhenThereAreSomeCalls_getFirstFetchedUrlReturnsTheFirstOne() {
$innerFetcher = new InMemoryFileFetcher( [
'url' => 'content',
'foo' => 'bar'
] );

$spyingFetcher = new SpyingFileFetcher( $innerFetcher );
$spyingFetcher->fetchFile( 'url' );
$spyingFetcher->fetchFile( 'foo' );

$this->assertSame( 'url', $spyingFetcher->getFirstFetchedUrl() );
}

public function testWhenThereAreNoCalls_getFirstFetchedUrlReturnsNull() {
$spyingFetcher = new SpyingFileFetcher( new NullFileFetcher() );

$this->assertNull( $spyingFetcher->getFirstFetchedUrl() );
}

}

0 comments on commit c1a0333

Please sign in to comment.