summaryrefslogtreecommitdiff
path: root/tests/Unit/Helpers/Schedule/XmlParserTest.php
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2019-11-27 23:43:21 +0100
committerIgor Scheller <igor.scheller@igorshp.de>2019-12-08 02:20:48 +0100
commit42721e95726559b4a601240bb5b0fe4e5d755b2a (patch)
tree6810e05f845ca787acc1d02fa82d3df15cd0ef9b /tests/Unit/Helpers/Schedule/XmlParserTest.php
parent377b390c97afb9106fd9a139819d00306f996f24 (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.php54
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());
+ }
+}