diff --git a/src/Adapter/SongScanner.php b/src/Adapter/SongScanner.php index d036399..130ff38 100644 --- a/src/Adapter/SongScanner.php +++ b/src/Adapter/SongScanner.php @@ -23,7 +23,7 @@ class SongScanner /** * @return ScannedSong[] */ - public function scanFunctional(): array { + public function scan(): array { $it = new RecursiveDirectoryIterator( $this->rootDir, FilesystemIterator::FOLLOW_SYMLINKS | FilesystemIterator::SKIP_DOTS @@ -35,7 +35,6 @@ class SongScanner public static function isMp3(iterable $files): iterable { return filter(function (SplFileInfo $file, string $_): bool { - echo $_ . "\n"; return $file->isFile() && strtolower($file->getExtension()) === 'mp3'; }, $files); } diff --git a/tests/Adapter/SongScannerTest.php b/tests/Adapter/SongScannerTest.php index 2b1a621..be2862e 100644 --- a/tests/Adapter/SongScannerTest.php +++ b/tests/Adapter/SongScannerTest.php @@ -2,15 +2,24 @@ namespace App\Tests\Adapter; +use App\Adapter\ScannedSong; use App\Adapter\SongScanner; use PHPUnit\Framework\TestCase; +use function Lambdish\Phunctional\map; class SongScannerTest extends TestCase { function testDefaultBehaviourFunctional() { $scanner = new SongScanner(__DIR__); - $songs = $scanner->scanFunctional(); - var_dump($songs); + $songs = $scanner->scan(); + + $this->assertCount(5, $songs); + + $combinations = map(fn(ScannedSong $song) => [$song->artist, $song->album, $song->title], $songs); + $this->assertContains(['Band A', 'Album A', 'Song 1'], $combinations); + $this->assertContains(['Band A', 'Album A', 'Song 2'], $combinations); + $this->assertContains(['Band A', 'Album B', 'Song 1'], $combinations); + $this->assertContains(['Band B', 'Album A', 'Song 1'], $combinations); } }