Skip to content

Commit f06c567

Browse files
committed
Cleanups
1 parent 78dc9f6 commit f06c567

31 files changed

+983
-678
lines changed

src/PHPDraft/Core/BaseTest.php

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
<?php
22
/**
3-
* This file contains the TestBase.php
3+
* This file contains the BaseTest.php
44
*
5-
* @package php-drafter\SOMETHING
5+
* @package PHPDraft\Core
66
* @author Sean Molenaar<[email protected]>
77
*/
88

99
namespace PHPDraft\Core;
1010

11-
1211
use PHPUnit_Framework_TestCase;
1312
use ReflectionClass;
1413

14+
/**
15+
* Class BaseTest
16+
*/
1517
class BaseTest extends PHPUnit_Framework_TestCase
1618
{
1719
const FUNCTION_ID = '_phpdraftbu';
@@ -27,14 +29,34 @@ class BaseTest extends PHPUnit_Framework_TestCase
2729
*/
2830
protected $reflection;
2931

32+
/**
33+
* Clear up tests
34+
* @return void
35+
*/
36+
public function tearDown()
37+
{
38+
unset($this->class);
39+
unset($this->reflection);
40+
}
41+
42+
/**
43+
* Mock an internal function
44+
*
45+
* @param string $name function name
46+
* @param string $mock function to replace it with
47+
*
48+
* @return void
49+
*/
3050
protected function mock_function($name, $mock)
3151
{
3252
if (function_exists($name . self::FUNCTION_ID) === FALSE)
3353
{
3454
runkit_function_copy($name, $name . self::FUNCTION_ID);
3555
}
56+
3657
runkit_function_redefine($name, '', $mock);
3758
}
59+
3860
/**
3961
* Unmock a PHP function.
4062
*

src/PHPDraft/In/ApibFileParser.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88

99
namespace PHPDraft\In;
1010

11+
/**
12+
* Class ApibFileParser
13+
*/
1114
class ApibFileParser
1215
{
1316
/**
@@ -33,7 +36,7 @@ public function __construct($filename = 'index.apib')
3336
{
3437
$this->location = pathinfo($filename, PATHINFO_DIRNAME) . '/';
3538

36-
set_include_path(get_include_path().':'.$this->location);
39+
set_include_path(get_include_path() . ':' . $this->location);
3740

3841
$this->full_apib = $this->get_apib($filename);
3942
}
@@ -60,9 +63,17 @@ function get_apib($filename)
6063
return $file;
6164
}
6265

66+
/**
67+
* Check if an APIB file exists
68+
*
69+
* @param string $filename File to check
70+
*
71+
* @return void
72+
*/
6373
private function file_check($filename)
6474
{
65-
if (!file_exists($filename)) {
75+
if (!file_exists($filename))
76+
{
6677
file_put_contents('php://stderr', "API File not found: $filename\n");
6778
exit(1);
6879
}

src/PHPDraft/In/Tests/ApibFileParserTest.php

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,42 @@
22
/**
33
* This file contains the ApibFileParserTest.php
44
*
5-
* @package php-drafter\SOMETHING
5+
* @package PHPDraft\In
66
* @author Sean Molenaar<[email protected]>
77
*/
88

99
namespace PHPDraft\In\Tests;
1010

11-
1211
use PHPDraft\Core\BaseTest;
1312
use PHPDraft\In\ApibFileParser;
1413
use ReflectionClass;
1514

15+
/**
16+
* Class ApibFileParserTest
17+
* @covers PHPDraft\In\ApibFileParser
18+
*/
1619
class ApibFileParserTest extends BaseTest
1720
{
21+
22+
/**
23+
* Set up tests
24+
* @return void
25+
*/
1826
public function setUp()
1927
{
20-
$this->class = new ApibFileParser(__DIR__.'/ApibFileParserTest.php');
28+
$this->class = new ApibFileParser(__DIR__ . '/ApibFileParserTest.php');
2129
$this->reflection = new ReflectionClass('PHPDraft\In\ApibFileParser');
2230
}
2331

24-
public function tearDown()
25-
{
26-
unset($this->class);
27-
unset($this->reflection);
28-
}
29-
32+
/**
33+
* Test if setup is successful
34+
* @return void
35+
*/
3036
public function testSetup()
3137
{
3238
$property = $this->reflection->getProperty('location');
3339
$property->setAccessible(TRUE);
34-
$this->assertSame(__DIR__.'/', $property->getValue($this->class));
40+
$this->assertSame(__DIR__ . '/', $property->getValue($this->class));
3541
}
3642

37-
3843
}

src/PHPDraft/Model/Category.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,17 @@
88

99
namespace PHPDraft\Model;
1010

11-
use PHPDraft\Model\Elements\DataStructureElement;
11+
use PHPDraft\Model\Elements\ObjectStructureElement;
1212

13+
/**
14+
* Class Category
15+
*/
1316
class Category extends HierarchyElement
1417
{
1518
/**
1619
* API Structure element
1720
*
18-
* @var DataStructureElement[]
21+
* @var ObjectStructureElement[]
1922
*/
2023
public $structures = [];
2124

@@ -29,19 +32,20 @@ class Category extends HierarchyElement
2932
function parse($object)
3033
{
3134
parent::parse($object);
32-
foreach ($object->content as $key => $item) {
35+
foreach ($object->content as $item) {
3336
switch ($item->element) {
3437
case 'resource':
3538
$resource = new Resource($this);
3639
$this->children[] = $resource->parse($item);
3740
break;
3841
case 'dataStructure':
3942
$deps = [];
40-
$struct = new DataStructureElement();
43+
$struct = new ObjectStructureElement();
4144
$struct->deps = $deps;
4245
$struct->parse($item, $deps);
4346

44-
if (isset($item->content[0]->meta->id)) {
47+
if (isset($item->content[0]->meta->id))
48+
{
4549
$this->structures[$item->content[0]->meta->id] = $struct;
4650
} else {
4751
$this->structures[] = $struct;
Lines changed: 48 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,80 @@
11
<?php
22
/**
3-
* Created by PhpStorm.
4-
* User: smillernl
5-
* Date: 2-9-16
6-
* Time: 15:21
3+
* This file contains the ArrayStructureElement.php
4+
*
5+
* @package PHPDraft\Model\Elements
6+
* @author Sean Molenaar<[email protected]>
77
*/
88

99
namespace PHPDraft\Model\Elements;
1010

1111
use PHPDraft\Model\StructureElement;
1212

13-
class ArrayStructureElement extends DataStructureElement implements StructureElement
13+
/**
14+
* Class ArrayStructureElement
15+
*/
16+
class ArrayStructureElement extends ObjectStructureElement implements StructureElement
1417
{
1518

1619
/**
17-
* Type of objects in the array
20+
* Parse an array object
21+
*
22+
* @param \stdClass $object APIb Item to parse
23+
* @param array $dependencies List of dependencies build
1824
*
19-
* @var
25+
* @return $this
2026
*/
21-
public $type_of;
22-
23-
public function parse($item, &$dependencies)
27+
public function parse($object, &$dependencies)
2428
{
25-
$this->element = (isset($item->element)) ? $item->element : 'array';
26-
$this->value = (isset($item->content)) ? $item->content : null;
27-
28-
if (isset($item->content)) {
29-
foreach ($item->content as $key => $sub_item) {
30-
$this->type[$key] = $sub_item->element;
31-
switch ($sub_item->element) {
32-
case 'array':
33-
$value = new ArrayStructureElement();
34-
$this->value[$key] = $value->parse($sub_item, $dependencies);
35-
break;
36-
case 'object':
37-
$value = new DataStructureElement();
38-
$this->value[$key] = $value->parse($sub_item, $dependencies);
39-
break;
40-
case 'enum':
41-
$value = new EnumStructureElement();
42-
$this->value[$key] = $value->parse($sub_item, $dependencies);
43-
break;
44-
default:
45-
$this->value[$key] = (isset($sub_item->content)) ? $sub_item->content : null;
46-
break;
47-
}
29+
$this->element = (isset($object->element)) ? $object->element : 'array';
30+
31+
$this->parse_common($object, $dependencies);
32+
33+
if(!isset($object->content->value->content))
34+
{
35+
$this->value = [];
36+
return $this;
37+
}
38+
39+
foreach ($object->content->value->content as $sub_item)
40+
{
41+
if (!in_array($sub_item->element, self::DEFAULTS))
42+
{
43+
$dependencies[] = $sub_item->element;
4844
}
45+
46+
$this->value[] = (isset($sub_item->element)) ? $sub_item->element : '';
4947
}
5048

49+
$this->deps = $dependencies;
50+
5151
return $this;
5252
}
5353

54+
/**
55+
* Provide HTML representation
56+
*
57+
* @return string
58+
*/
5459
function __toString()
5560
{
56-
if (!is_array($this->type)) {
57-
return '';
58-
}
5961
$return = '<ul class="list-group">';
60-
foreach ($this->type as $key => $item) {
61-
$type =
62-
(in_array($item, self::DEFAULTS)) ? $item : '<a href="#object-' . str_replace(' ', '-',
63-
strtolower($item)) . '">' . $item . '</a>';
6462

65-
$value =
66-
(isset($this->value[$key])) ? ': <span class="example-value pull-right">' . json_encode($this->value[$key]) . '</span>' : null;
63+
if (!is_array($this->value))
64+
{
65+
return '<span class="example-value pull-right">[ ]</span>';
66+
}
67+
68+
foreach ($this->value as $item) {
69+
$type = (in_array($this->value, self::DEFAULTS)) ? $item : '<a href="#object-' . str_replace(' ', '-',
70+
strtolower($item)) . '">' . $item . '</a>';
6771

68-
$return .= '<li class="list-group-item">' . $type . $value . '</li>';
72+
$return .= '<li class="list-group-item">' . $type . '</li>';
6973
}
74+
7075
$return .= '</ul>';
7176

7277
return $return;
7378
}
7479

75-
7680
}

0 commit comments

Comments
 (0)