xref: /dokuwiki/_test/tests/Remote/OpenApiDoc/DocBlockClassTest.php (revision d1f06eb4f0e4febc5434c97e319fce6d0253e533)
18ddd9b69SAndreas Gohr<?php
28ddd9b69SAndreas Gohr
38ddd9b69SAndreas Gohrnamespace dokuwiki\test\Remote\OpenApiDoc;
48ddd9b69SAndreas Gohr
58ddd9b69SAndreas Gohruse dokuwiki\Remote\OpenApiDoc\DocBlockClass;
68ddd9b69SAndreas Gohruse dokuwiki\Remote\OpenApiDoc\DocBlockMethod;
78ddd9b69SAndreas Gohruse dokuwiki\Remote\OpenApiDoc\DocBlockProperty;
8*d1f06eb4SAndreas Gohruse dokuwiki\Remote\OpenApiDoc\Type;
98ddd9b69SAndreas Gohr
108ddd9b69SAndreas Gohr/**
118ddd9b69SAndreas Gohr * Test cases for DocBlockClass
128ddd9b69SAndreas Gohr *
138ddd9b69SAndreas Gohr * This test class is also used in the tests itself
148ddd9b69SAndreas Gohr */
158ddd9b69SAndreas Gohrclass DocBlockClassTest extends \DokuWikiTest
168ddd9b69SAndreas Gohr{
178ddd9b69SAndreas Gohr    /** @var string This is a dummy */
188ddd9b69SAndreas Gohr    public $dummyProperty1 = 'dummy';
198ddd9b69SAndreas Gohr
208ddd9b69SAndreas Gohr    /**
218ddd9b69SAndreas Gohr     * Parse this test class with the DocBlockClass
228ddd9b69SAndreas Gohr     *
238ddd9b69SAndreas Gohr     * Also tests property and method access
248ddd9b69SAndreas Gohr     *
25*d1f06eb4SAndreas Gohr     * @return void Tests don't return anything
268ddd9b69SAndreas Gohr     */
278ddd9b69SAndreas Gohr    public function testClass()
288ddd9b69SAndreas Gohr    {
298ddd9b69SAndreas Gohr        $reflect = new \ReflectionClass($this);
308ddd9b69SAndreas Gohr        $doc = new DocBlockClass($reflect);
318ddd9b69SAndreas Gohr
328ddd9b69SAndreas Gohr        $this->assertStringContainsString('Test cases for DocBlockClass', $doc->getSummary());
338ddd9b69SAndreas Gohr        $this->assertStringContainsString('used in the tests itself', $doc->getDescription());
348ddd9b69SAndreas Gohr
35*d1f06eb4SAndreas Gohr        $property = $doc->getPropertyDocs()['dummyProperty1'];
36*d1f06eb4SAndreas Gohr        $this->assertInstanceOf(DocBlockProperty::class, $property);
37*d1f06eb4SAndreas Gohr        $this->assertEquals('This is a dummy', $property->getSummary());
388ddd9b69SAndreas Gohr
39*d1f06eb4SAndreas Gohr        $propertyType = $property->getType();
40*d1f06eb4SAndreas Gohr        $this->assertInstanceOf(Type::class, $propertyType);
41*d1f06eb4SAndreas Gohr        $this->assertEquals('string', $propertyType->getBaseType());
42*d1f06eb4SAndreas Gohr
43*d1f06eb4SAndreas Gohr        $method = $doc->getMethodDocs()['testClass'];
44*d1f06eb4SAndreas Gohr        $this->assertInstanceOf(DocBlockMethod::class, $method);
45*d1f06eb4SAndreas Gohr
46*d1f06eb4SAndreas Gohr        $methodReturn = $method->getReturn();
47*d1f06eb4SAndreas Gohr        $this->assertInstanceOf(Type::class, $methodReturn['type']);
48*d1f06eb4SAndreas Gohr        $this->assertEquals('Tests don\'t return anything', $methodReturn['description']);
498ddd9b69SAndreas Gohr    }
508ddd9b69SAndreas Gohr
518ddd9b69SAndreas Gohr}
52