add ExtractTune use case

This commit is contained in:
2018-04-30 17:24:02 -04:00
parent 3817394951
commit e8c8709976
42 changed files with 1388 additions and 5047 deletions

View File

@@ -0,0 +1,41 @@
<?php
use XaiCorp\AbcParser\Application\UseCases\ExtractTuneFromCollection;
use XaiCorp\AbcParser\Application\UseCases\ImportAbcFile;
class ExtractTuneFromCollectionTest extends \Codeception\Test\Unit
{
/**
* @param string $filename
* @return bool|string
*/
private function getAbc($filename = '/abc/valid_abc_1.abc')
{
return file_get_contents(codecept_data_dir($filename));
}
public function testCreate()
{
$abc = $this->getAbc();
$tunes = ImportAbcFile::create()->import($abc);
$extractor = ExtractTuneFromCollection::create($tunes);
$this->assertInstanceOf(ExtractTuneFromCollection::class, $extractor);
}
public function testExtractTuneByTitle()
{
$title = "Emmett's Hedgehog";
$abc = $this->getAbc('/abc/jigs.abc');
$tunes = ImportAbcFile::create()->import($abc);
$extractor = ExtractTuneFromCollection::create($tunes);
$result = $extractor->extractTuneByTitle($title);
$this->assertCount(1, $result);
$this->assertNotEquals($tunes, $result);
}
}