Files
abcParser/tests/unit/AbcParser/Application/UseCases/ImportAbcFileTest.php

73 lines
2.0 KiB
PHP

<?php
namespace Tests\Unit\AbcParser\Application\UseCases;
use XaiCorp\AbcParser\Application\UseCases\ImportAbcFile;
use XaiCorp\AbcParser\Domain\Core\TuneCollection;
use XaiCorp\AbcParser\Domain\Modules\Interpreter\Builder;
class ImportAbcFileTest 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()
{
$importer = ImportAbcFile::create();
$this->assertInstanceOf(ImportAbcFile::class, $importer);
}
public function testCreateInjectingBuilder()
{
$builder = new Builder();
$importer = ImportAbcFile::create($builder);
$this->assertInstanceOf(ImportAbcFile::class, $importer);
}
public function testImport()
{
$abc = $this->getAbc('/abc/jigs.abc');
$importer = ImportAbcFile::create();
$result = $importer->import($abc);
$this->assertInstanceOf(TuneCollection::class, $result);
$this->assertGreaterThan(1, $result->count());
}
public function testImport2FilesConsecutively()
{
$abc2 = $this->getAbc('/abc/valid_abc_2.abc');
$abc3 = $this->getAbc('/abc/valid_abc_3.abc');
$importer = ImportAbcFile::create();
$result1 = $importer->import($abc2);
$result2 = $importer->import($abc3);
$this->assertNotEquals($result1, $result2);
}
public function testImportMultiple()
{
$abc1 = $this->getAbc('/abc/valid_abc_1.abc');
$abc2 = $this->getAbc('/abc/valid_abc_2.abc');
$abc3 = $this->getAbc('/abc/valid_abc_3.abc');
$importer = ImportAbcFile::create();
$result = $importer->importMultiple([$abc1, $abc2, $abc3]);
$this->assertInstanceOf(TuneCollection::class, $result);
$this->assertGreaterThan(1, $result->count());
}
}