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 
4 require_once("libs/composer/vendor/autoload.php");
5 include_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 
53  public function testParseProperEntryToArray()
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 }