diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2019-11-27 23:43:21 +0100 |
---|---|---|
committer | Igor Scheller <igor.scheller@igorshp.de> | 2019-12-08 02:20:48 +0100 |
commit | 42721e95726559b4a601240bb5b0fe4e5d755b2a (patch) | |
tree | 6810e05f845ca787acc1d02fa82d3df15cd0ef9b /tests/Unit/Helpers/Schedule/XmlParserTest.php | |
parent | 377b390c97afb9106fd9a139819d00306f996f24 (diff) |
Added Schedule parsing and replaced old Fahrplan importer
Resolves #553 (Change Frab Import from xCal to XML)
Resolves #538 (Feature Request: Multi Frab Import)
Diffstat (limited to 'tests/Unit/Helpers/Schedule/XmlParserTest.php')
-rw-r--r-- | tests/Unit/Helpers/Schedule/XmlParserTest.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/Unit/Helpers/Schedule/XmlParserTest.php b/tests/Unit/Helpers/Schedule/XmlParserTest.php new file mode 100644 index 00000000..023e9c7d --- /dev/null +++ b/tests/Unit/Helpers/Schedule/XmlParserTest.php @@ -0,0 +1,54 @@ +<?php + +namespace Engelsystem\Test\Unit\Helpers\Schedule; + +use Engelsystem\Helpers\Schedule\Day; +use Engelsystem\Helpers\Schedule\Event; +use Engelsystem\Helpers\Schedule\Room; +use Engelsystem\Helpers\Schedule\XmlParser; +use Engelsystem\Test\Unit\TestCase; +use Illuminate\Support\Arr; + +class XmlParserTest extends TestCase +{ + /** + * @covers \Engelsystem\Helpers\Schedule\XmlParser::load + * @covers \Engelsystem\Helpers\Schedule\XmlParser::parseXml + * @covers \Engelsystem\Helpers\Schedule\XmlParser::parseEvents + * @covers \Engelsystem\Helpers\Schedule\XmlParser::getFirstXpathContent + * @covers \Engelsystem\Helpers\Schedule\XmlParser::getListFromSequence + * @covers \Engelsystem\Helpers\Schedule\XmlParser::getSchedule + */ + public function testLoad() + { + libxml_use_internal_errors(true); + + $parser = new XmlParser(); + $this->assertFalse($parser->load('foo')); + $this->assertTrue($parser->load(file_get_contents(__DIR__ . '/Assets/schedule.xml'))); + + $schedule = $parser->getSchedule(); + $this->assertEquals('Some version string', $schedule->getVersion()); + $this->assertEquals('Test Event', $schedule->getConference()->getTitle()); + + /** @var Room $room */ + $room = Arr::first($schedule->getRooms()); + $this->assertEquals('Rooming', $room->getName()); + + /** @var Day $day */ + $day = Arr::first($schedule->getDay()); + $this->assertEquals('2042-01-01', $day->getDate()); + $this->assertEquals(1, $day->getIndex()); + + /** @var Room $room */ + $room = Arr::first($day->getRoom()); + /** @var Event $event */ + $event = Arr::first($room->getEvent()); + + $this->assertEquals('Foo Bar Test', $event->getTitle()); + $this->assertEquals('WTFPL', $event->getRecording()); + $this->assertEquals('de', $event->getLanguage()); + $this->assertEquals('12:30', $event->getStart()); + $this->assertEquals([1234 => 'Some Person'], $event->getPersons()); + } +} |