[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/_test/tests/Remote/OpenApiDoc/ -> DocBlockMethodTest.php (source)

   1  <?php
   2  
   3  namespace dokuwiki\test\Remote\OpenApiDoc;
   4  
   5  use dokuwiki\Remote\OpenApiDoc\DocBlockMethod;
   6  use dokuwiki\Remote\OpenApiDoc\Type;
   7  
   8  class DocBlockMethodTest extends \DokuWikiTest {
   9  
  10  
  11      /**
  12       * This is a test
  13       *
  14       * With more information
  15       * in several lines
  16       * @param string $foo First variable
  17       * @param int $bar
  18       * @param string[] $baz
  19       * @something else
  20       * @something other
  21       * @another tag
  22       * @return string  The return
  23       */
  24      public function dummyMethod1($foo, $bar, $baz=['a default'])
  25      {
  26          return 'dummy';
  27      }
  28  
  29      public function testMethod()
  30      {
  31          $reflect = new \ReflectionMethod($this, 'dummyMethod1');
  32          $doc = new DocBlockMethod($reflect);
  33  
  34          $this->assertEquals('This is a test', $doc->getSummary());
  35          $this->assertEquals("With more information\nin several lines", $doc->getDescription());
  36  
  37          $this->assertEquals(
  38              [
  39                  'foo' => [
  40                      'type' => 'string',
  41                      'description' => 'First variable',
  42                      'optional' => false,
  43                  ],
  44                  'bar' => [
  45                      'type' => 'int',
  46                      'description' => '',
  47                      'optional' => false,
  48                  ],
  49                  'baz' => [
  50                      'type' => 'string[]',
  51                      'description' => '',
  52                      'optional' => true,
  53                      'default' => ['a default'],
  54                  ],
  55              ],
  56              $doc->getTag('param')
  57          );
  58  
  59          $params = $doc->getParameters();
  60          $this->assertInstanceOf(Type::class, $params['foo']['type']);
  61          $this->assertInstanceOf(Type::class, $params['bar']['type']);
  62          $this->assertInstanceOf(Type::class, $params['baz']['type']);
  63  
  64          $this->assertEquals(
  65              [
  66                  'type' => 'string',
  67                  'description' => 'The return'
  68              ],
  69              $doc->getTag('return')
  70          );
  71  
  72          $return = $doc->getReturn();
  73          $this->assertInstanceOf(Type::class, $return['type']);
  74  
  75          $this->assertEquals(
  76              [
  77                  'else',
  78                  'other',
  79              ],
  80              $doc->getTag('something')
  81          );
  82  
  83          $this->assertEquals(
  84              [
  85                  'tag',
  86              ],
  87              $doc->getTag('another')
  88          );
  89  
  90  
  91      }
  92  }