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