ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
EntriesYamlParserTest.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 2016 Timon Amstutz <timon.amstutz@ilub.unibe.ch> Extended GPL, see docs/LICENSE */
3
4require_once("libs/composer/vendor/autoload.php");
5include_once("tests/UI/Crawler/Fixture/Fixture.php");
6
8
10{
11
12
16 protected $parser;
17
21 protected $proper_entry;
22
23 protected function setUp()
24 {
25 $this->parser = new Crawler\EntriesYamlParser();
26 $this->proper_entry = new ProperEntryFixture();
27 }
28
32 public function testParseInvalidFile()
33 {
34 try {
35 $this->parser->parseYamlStringArrayFromFile("Invalid Path");
36 $this->assertFalse("This should not happen");
37 } catch (Crawler\Exception\CrawlerException $e) {
38 $this->assertEquals($e->getCode(), Crawler\Exception\CrawlerException::INVALID_FILE_PATH);
39 }
40 }
41
46 {
47 $yaml_entries = $this->parser->parseYamlStringArrayFromFile("tests/UI/Crawler/Fixture/ProperEntry.php");
48
49 $this->assertEquals($this->proper_entry->properEntryYamlString, $yaml_entries[0]);
50 $this->assertEquals($this->proper_entry->properEntryYamlString, $yaml_entries[0]);
51 }
52
54 {
55 $entries = $this->parser->parseArrayFromFile("tests/UI/Crawler/Fixture/ProperEntry.php");
56 $this->assertEquals($this->proper_entry->properEntryYamlArray, $entries);
57 }
58
62 public function testNoDescriptionEntry()
63 {
64 try {
65 $this->parser->parseYamlStringArrayFromFile("tests/UI/Crawler/Fixture/NoDescriptionEntry.php");
66 $this->assertFalse("This should not happen");
67 } catch (Crawler\Exception\CrawlerException $e) {
68 $this->assertEquals($e->getCode(), Crawler\Exception\CrawlerException::ENTRY_WITH_NO_YAML_DESCRIPTION);
69 }
70 }
74 public function testNoReturnValueEntry()
75 {
76 try {
77 $this->parser->parseYamlStringArrayFromFile("tests/UI/Crawler/Fixture/NoReturnValueEntry.php");
78 $this->assertFalse("This should not happen");
79 } catch (Crawler\Exception\CrawlerException $e) {
80 $this->assertEquals($e->getCode(), Crawler\Exception\CrawlerException::ENTRY_WITH_NO_VALID_RETURN_STATEMENT);
81 }
82 }
83
87 public function testInvalidYamlEntry()
88 {
89 try {
90 $this->parser->parseArrayFromFile("tests/UI/Crawler/Fixture/InvalidYamlEntry.php");
91 $this->assertFalse("This should not happen");
92 } catch (Crawler\Exception\CrawlerException $e) {
93 $this->assertEquals($e->getCode(), Crawler\Exception\CrawlerException::PARSING_YAML_ENTRY_FAILED);
94 }
95 }
96
97 public function testCamelCase()
98 {
99 $test_string = "Hello Camel Case";
100
101 $this->assertEquals("helloCamelCase", Crawler\EntriesYamlParser::toLowerCamelCase($test_string, ' '));
102 $this->assertEquals("HelloCamelCase", Crawler\EntriesYamlParser::toUpperCamelCase($test_string, ' '));
103 }
104
108 public function testGenerateEntry()
109 {
110 $entries = $this->parser->parseEntriesFromFile("tests/UI/Crawler/Fixture/ProperEntry.php");
111
112 $this->assertEquals(1, count($entries));
113 $this->assertEquals("CrawlerFixtureProperEntryProperEntry", $entries->getEntryById("CrawlerFixtureProperEntryProperEntry")->getId());
114 $this->assertEquals("src/UI/Crawler/Fixture/ProperEntry", $entries->getEntryById("CrawlerFixtureProperEntryProperEntry")->getPath());
115 }
116}
An exception for terminatinating execution or to throw for unit testing.