<?php 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->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); } }