add authors, composers, history and settings to Tune::merge()

This commit is contained in:
2018-05-10 21:34:53 -04:00
parent 82dc3de079
commit d4d3654653
12 changed files with 640 additions and 28 deletions

View File

@@ -26,12 +26,14 @@ class TuneAttributeArrayBuilderTest extends \Codeception\Test\Unit
public function testAppendMusic()
{
$music = new \Enzyme\Axiom\Atoms\StringAtom('Abcd|');
$music = 'Abcd|';
$builder = new TuneAttributeArrayBuilder();
$tune = $builder->appendMusic($music)->getTune();
$this->assertInstanceOf(Tune::class, $tune);
$this->assertEquals($music->getValue(), trim($tune->getMusic()));
$settings = $tune->getSettings();
$this->assertEquals($music, trim($settings[0]->getMusic()));
}
}

View File

@@ -188,19 +188,31 @@ class TuneTest extends \PHPUnit_Framework_TestCase
{
$targetTune = TuneAttributeArrayBuilder::create()
->addTitle('target')
->appendMusic('|:BAG BAG|')
->getTune();
$sourceTune = TuneAttributeArrayBuilder::create()
->addTitle('source')
->appendMusic('|:GAB GAB|')
->addAuthor('a.non')
->addComposer('composer')
->addHistory('some story')
->getTune();
$expected = TuneAttributeArrayBuilder::create()
->addTitle('target')
->addTitle('source')
->appendMusic('|:BAG BAG|')
->handleEndOfMusic()
->appendMusic('|:GAB GAB|')
->addAuthor('a.non')
->addComposer('composer')
->addHistory('some story')
->getTune($targetTune->identity());
$result = $targetTune->merge($sourceTune);
$this->assertEquals($expected, $result);
}
}