_facade = new AbcParser(); } public function test_not_header_data_no_crash() { $result = $this->_facade->parseABC($this->valid_abc_1); $this->assertTrue(is_a($result, 'App\Libraries\abcParse\TuneCollection')); } public function test_all_parameters_for_tune() { $result = $this->_facade->parseABC($this->valid_abc_2); $this->assertTrue(is_a($result, 'App\Libraries\abcParse\TuneCollection')); // Tune details $tune = $result[0]; // var_dump($tune); die(); $this->assertEquals('40', $result[0]->get('X')); $this->assertEquals('Abbotts Bromley Horn Dance', array_shift($tune->get('T')) ); $this->assertEquals('England', array_shift($tune->get('O')) ); $this->assertEquals(new App\Libraries\abcParse\Person(array('name'=>'trad')), array_shift($tune->get('A')) ); $this->assertEquals(new App\Libraries\abcParse\Person(array('name'=>'trad.')), array_shift($tune->get('C')) ); $this->assertEquals('England', array_shift($tune->get('O')) ); $this->assertEquals('lute', array_shift($tune->get('G')) ); $history = $tune->get('H'); $this->assertEquals(2, count($history)); $this->assertEquals('Thousand year old tradition', $history[0] ); $this->assertEquals('The Horns live in the church and are removed for the dance once a year', $history[1] ); $this->assertEquals('Jig', array_shift($tune->get('R')) ); // setting details $setting = $tune[0]; // var_dump($setting);die; $this->assertEquals('Traditional English', array_shift($setting->get('N')) ); $this->assertEquals('1/8', $setting->get('L') ); $this->assertEquals('6/8', $setting->get('M') ); $this->assertEquals('G', $setting->get('K') ); $expectedMusic = " e|B2e G2e|B2e E2G|FGA GAB|1AGF G2:|2AGF E2| |e|c2e cde|A2c ABc|FGA GFE|_E=EF B,2g| e2g efg|c2e cde|dcB AGF|E3E2 |:A|BcB e3|BcB f3|BcB AGF|1G2F G2:|2E3-E2|] "; $this->assertEquals(trim($expectedMusic), $setting->get('music'), "music strings should match" ); $Z = new App\Libraries\abcParse\Person(array('name'=>'Andy Hornby')); $this->assertEquals($Z, array_shift($setting->get('Z')) ); $this->assertEquals('None', array_shift($setting->get('D')) ); $this->assertEquals('http://www.leeds.ac.uk/music/Info/RRTuneBk/gettune/00000dab.html', array_shift($setting->get('S')) ); $this->assertEquals('None', array_shift($setting->get('W')) ); $this->assertEquals('Traditional English tunes', array_shift($setting->get('B')) ); $this->assertEquals('none.abc', array_shift($setting->get('F')) ); $this->assertEquals('ABC', $setting->get('P') ); $this->assertEquals('1/8=80', $setting->get('Q') ); } public function test_all_parameters_for_collection() { $collection = $this->_facade->parseABC($this->valid_abc_3); $this->assertTrue(is_a($collection, 'App\Libraries\abcParse\TuneCollection')); $this->assertEquals(new App\Libraries\abcParse\Person(array('name'=>'trad')), array_shift($collection->get('A')) ); $this->assertEquals('Traditional English tunes', array_shift($collection->get('B')) ); $this->assertEquals(new App\Libraries\abcParse\Person(array('name'=>'trad.')), array_shift($collection->get('C')) ); $this->assertEquals('None', array_shift($collection->get('D')) ); $this->assertEquals('none.abc', array_shift($collection->get('F')) ); $this->assertEquals('Thousand year old tradition', array_shift($collection->get('H')) ); $this->assertEquals('1/8', $collection->get('L') ); $this->assertEquals('6/8', $collection->get('M') ); $this->assertEquals('Traditional English', array_shift($collection->get('N')) ); $this->assertEquals('England', array_shift($collection->get('O')) ); $this->assertEquals('Jig', $collection->get('R') ); $this->assertEquals('http://www.leeds.ac.uk/music/Info/RRTuneBk/gettune/00000dab.html', array_shift($collection->get('S')) ); $this->assertEquals(new App\Libraries\abcParse\Person(array('name'=>'Andy Hornby')), array_shift($collection->get('Z')) ); } }