Skip to content

Commit 6184680

Browse files
committed
Fix coverage
1 parent d28ed81 commit 6184680

11 files changed

+328
-94
lines changed

sonar-project.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ sonar.projectKey=SMillerDev_phpdraft
22
sonar.projectName=PHPDraft
33
sonar.organization=smillerdev-github
44
sonar.sources=src/PHPDraft
5-
sonar.php.coverage.reportPaths=coverage/coverage.xml
5+
sonar.php.coverage.reportPaths=coverage.xml
66
sonar.exclusions=src/PHPDraft/**/Tests/**, tests/**
77
sonar.coverage.exclusions=src/PHPDraft/Out/HTML/**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
<?php
2+
3+
namespace PHPDraft\Model\Elements\Tests;
4+
5+
use Lunr\Halo\LunrBaseTest;
6+
use PHPDraft\Model\Elements\ElementStructureElement;
7+
use ReflectionClass;
8+
9+
/**
10+
* Class ElementStructureElementTest
11+
* @covers \PHPDraft\Model\Elements\ElementStructureElement
12+
*/
13+
class ElementStructureElementTest extends LunrBaseTest
14+
{
15+
16+
/**
17+
* Set up
18+
*/
19+
public function setUp(): void
20+
{
21+
$this->class = new ElementStructureElement();
22+
$this->reflection = new ReflectionClass('PHPDraft\Model\Elements\ElementStructureElement');
23+
}
24+
25+
/**
26+
* Tear down
27+
*/
28+
public function tearDown(): void
29+
{
30+
unset($this->class);
31+
unset($this->reflection);
32+
}
33+
34+
/**
35+
* @covers \PHPDraft\Model\Elements\ElementStructureElement::parse
36+
*/
37+
public function testParse()
38+
{
39+
$json = '{"element": "Cow", "content": "stuff", "meta": {"description": {"content": "desc"}}}';
40+
$dep = [];
41+
$this->class->parse(json_decode($json), $dep);
42+
43+
$this->assertPropertySame('type', 'Cow');
44+
$this->assertPropertySame('value', 'stuff');
45+
$this->assertPropertySame('description', 'desc');
46+
$this->assertSame(['Cow'], $dep);
47+
}
48+
49+
/**
50+
* @covers \PHPDraft\Model\Elements\ElementStructureElement::string_value
51+
*/
52+
public function testStringValue()
53+
{
54+
$this->assertSame('<li class="list-group-item mdl-list__item"><a class="code" title="" href="#object-"></a></li>', $this->class->string_value());
55+
}
56+
57+
/**
58+
* @covers \PHPDraft\Model\Elements\ElementStructureElement::__toString
59+
*/
60+
public function testToString()
61+
{
62+
$this->set_reflection_property_value('type', 'string');
63+
64+
$this->assertSame('<li class="list-group-item mdl-list__item"><code>string</code></li>', $this->class->__toString());
65+
}
66+
67+
/**
68+
* @covers \PHPDraft\Model\Elements\ElementStructureElement::__toString
69+
*/
70+
public function testToStringCustomType()
71+
{
72+
$this->set_reflection_property_value('type', 'Cow');
73+
74+
$this->assertSame('<li class="list-group-item mdl-list__item"><a class="code" title="Cow" href="#object-cow">Cow</a></li>', $this->class->__toString());
75+
}
76+
77+
/**
78+
* @covers \PHPDraft\Model\Elements\ElementStructureElement::__toString
79+
*/
80+
public function testToStringDescription()
81+
{
82+
$this->set_reflection_property_value('type', 'Cow');
83+
$this->set_reflection_property_value('description', 'Something');
84+
85+
$this->assertSame('<li class="list-group-item mdl-list__item"><a class="code" title="Cow" href="#object-cow">Cow</a> - <span class="description">Something</span></li>', $this->class->__toString());
86+
}
87+
88+
/**
89+
* @covers \PHPDraft\Model\Elements\ElementStructureElement::__toString
90+
*/
91+
public function testToStringValue()
92+
{
93+
$this->set_reflection_property_value('type', 'Cow');
94+
$this->set_reflection_property_value('value', 'stuff');
95+
96+
$this->assertSame('<li class="list-group-item mdl-list__item"><a class="code" title="Cow" href="#object-cow">Cow</a> - <span class="example-value pull-right">stuff</span></li>', $this->class->__toString());
97+
}
98+
99+
/**
100+
* @covers \PHPDraft\Model\Elements\ElementStructureElement::__toString
101+
*/
102+
public function testToStringDescriptionAndValue()
103+
{
104+
$this->set_reflection_property_value('type', 'Cow');
105+
$this->set_reflection_property_value('value', 'stuff');
106+
$this->set_reflection_property_value('description', 'Something');
107+
108+
$this->assertSame('<li class="list-group-item mdl-list__item"><a class="code" title="Cow" href="#object-cow">Cow</a> - <span class="description">Something</span> - <span class="example-value pull-right">stuff</span></li>', $this->class->__toString());
109+
}
110+
}

src/PHPDraft/Out/Sorting.php

+6-6
Original file line numberDiff line numberDiff line change
@@ -22,28 +22,28 @@ class Sorting
2222
*
2323
* @var int
2424
*/
25-
public static $PHPD_SORT_ALL = 3;
25+
public const PHPD_SORT_ALL = 3;
2626

2727
/**
2828
* Sets sorting to all webservices.
2929
*
3030
* @var int
3131
*/
32-
public static $PHPD_SORT_WEBSERVICES = 2;
32+
public const PHPD_SORT_WEBSERVICES = 2;
3333

3434
/**
3535
* Sets sorting to all data structures.
3636
*
3737
* @var int
3838
*/
39-
public static $PHPD_SORT_STRUCTURES = 1;
39+
public const PHPD_SORT_STRUCTURES = 1;
4040

4141
/**
4242
* Sets sorting to no data structures.
4343
*
4444
* @var int
4545
*/
46-
public static $PHPD_SORT_NONE = -1;
46+
public const PHPD_SORT_NONE = -1;
4747

4848
/**
4949
* Check if structures should be sorted.
@@ -54,7 +54,7 @@ class Sorting
5454
*/
5555
public static function sortStructures(int $sort): bool
5656
{
57-
return $sort === self::$PHPD_SORT_ALL || $sort === self::$PHPD_SORT_STRUCTURES;
57+
return $sort === self::PHPD_SORT_ALL || $sort === self::PHPD_SORT_STRUCTURES;
5858
}
5959

6060
/**
@@ -66,6 +66,6 @@ public static function sortStructures(int $sort): bool
6666
*/
6767
public static function sortServices(int $sort): bool
6868
{
69-
return $sort === self::$PHPD_SORT_ALL || $sort === self::$PHPD_SORT_WEBSERVICES;
69+
return $sort === self::PHPD_SORT_ALL || $sort === self::PHPD_SORT_WEBSERVICES;
7070
}
7171
}

src/PHPDraft/Out/TemplateGenerator.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public function __construct(string $template, ?string $image)
8989
$this->base_data['COLOR_2'] = $template_parts[2] ?? 'light_green';
9090
$this->image = $image;
9191
$this->http_status = new Httpstatus();
92-
$this->sorting = Sorting::$PHPD_SORT_NONE;
92+
$this->sorting = Sorting::PHPD_SORT_NONE;
9393
}
9494

9595
/**
+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?php
2+
3+
/**
4+
* This file contains the SortingTest.php
5+
*
6+
* @package PHPDraft\Out
7+
* @author Sean Molenaar<[email protected]>
8+
*/
9+
10+
namespace PHPDraft\Out\Tests;
11+
12+
use Lunr\Halo\LunrBaseTest;
13+
use PHPDraft\Out\Sorting;
14+
use PHPDraft\Out\Version;
15+
use ReflectionClass;
16+
17+
/**
18+
* Class SortingTest
19+
*
20+
* @covers \PHPDraft\Out\Sorting
21+
*/
22+
class SortingTest extends LunrBaseTest
23+
{
24+
25+
/**
26+
* Test if service sorting is determined correctly.
27+
*
28+
* @covers \PHPDraft\Out\Sorting::sortServices
29+
*/
30+
public function testSortsServicesIfNeeded(): void
31+
{
32+
$this->assertTrue(Sorting::sortServices(3));
33+
$this->assertTrue(Sorting::sortServices(2));
34+
$this->assertFalse(Sorting::sortServices(-1));
35+
$this->assertFalse(Sorting::sortServices(1));
36+
$this->assertFalse(Sorting::sortServices(0));
37+
}
38+
39+
/**
40+
* Test if structure sorting is determined correctly.
41+
*
42+
* @covers \PHPDraft\Out\Sorting::sortStructures
43+
*/
44+
public function testSortsStructureIfNeeded(): void
45+
{
46+
$this->assertTrue(Sorting::sortStructures(3));
47+
$this->assertTrue(Sorting::sortStructures(1));
48+
$this->assertFalse(Sorting::sortStructures(-1));
49+
$this->assertFalse(Sorting::sortStructures(2));
50+
$this->assertFalse(Sorting::sortStructures(0));
51+
}
52+
}

src/PHPDraft/Parse/BaseHtmlGenerator.php

+2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ abstract class BaseHtmlGenerator
3535
* JsonToHTML constructor.
3636
*
3737
* @param object $json JSON representation of an API Blueprint
38+
*
39+
* @return self
3840
*/
3941
public function init(object $json): self
4042
{

src/PHPDraft/Parse/LegacyDrafter.php

-77
This file was deleted.

src/PHPDraft/Parse/ParserFactory.php

+3-9
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class ParserFactory
1212
/**
1313
* Get the applicable Drafter parser.
1414
*
15-
* @return \PHPDraft\Parse\BaseParser The parser that can be used
15+
* @return BaseParser The parser that can be used
1616
*/
1717
public static function getDrafter(): BaseParser
1818
{
@@ -22,26 +22,20 @@ public static function getDrafter(): BaseParser
2222
if (DrafterAPI::available()) {
2323
return new DrafterAPI();
2424
}
25-
if (LegacyDrafter::available()) {
26-
throw new ResourceException('Drafter 3.x is no longer supported', 100);
27-
}
2825

29-
throw new ResourceException("Couldn't get an apib parser", 255);
26+
throw new ResourceException("Couldn't get an APIB parser", 255);
3027
}
3128

3229
/**
3330
* Get the applicable JSON parser.
3431
*
35-
* @return \PHPDraft\Parse\BaseHtmlGenerator The parser that can be used
32+
* @return BaseHtmlGenerator The parser that can be used
3633
*/
3734
public static function getJson(): BaseHtmlGenerator
3835
{
3936
if (Drafter::available() || DrafterAPI::available()) {
4037
return new HtmlGenerator();
4138
}
42-
if (LegacyDrafter::available()) {
43-
throw new ResourceException('Drafter 3.x is no longer supported', 100);
44-
}
4539

4640
throw new ResourceException("Couldn't get a JSON parser", 255);
4741
}

0 commit comments

Comments
 (0)