api4 - Apply standard headers
[civicrm-core.git] / tests / phpunit / api / v4 / Utils / ReflectionUtilsTest.php
CommitLineData
19b53e5b
C
1<?php
2
380f3545
TO
3/*
4 +--------------------------------------------------------------------+
5 | CiviCRM version 5 |
6 +--------------------------------------------------------------------+
7 | Copyright CiviCRM LLC (c) 2004-2019 |
8 +--------------------------------------------------------------------+
9 | This file is a part of CiviCRM. |
10 | |
11 | CiviCRM is free software; you can copy, modify, and distribute it |
12 | under the terms of the GNU Affero General Public License |
13 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
14 | |
15 | CiviCRM is distributed in the hope that it will be useful, but |
16 | WITHOUT ANY WARRANTY; without even the implied warranty of |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
18 | See the GNU Affero General Public License for more details. |
19 | |
20 | You should have received a copy of the GNU Affero General Public |
21 | License and the CiviCRM Licensing Exception along |
22 | with this program; if not, contact CiviCRM LLC |
23 | at info[AT]civicrm[DOT]org. If you have questions about the |
24 | GNU Affero General Public License or the licensing of CiviCRM, |
25 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
26 +--------------------------------------------------------------------+
27 */
28
29/**
30 *
31 * @package CRM
32 * @copyright CiviCRM LLC (c) 2004-2019
33 * $Id$
34 *
35 */
36
37
19b53e5b
C
38namespace api\v4\Utils;
39
40use Civi\Api4\Utils\ReflectionUtils;
41use api\v4\Mock\MockV4ReflectionGrandchild;
42use api\v4\UnitTestCase;
43
44/**
45 * @group headless
46 */
47class ReflectionUtilsTest extends UnitTestCase {
48
49 /**
50 * Test that class annotations are returned across @inheritDoc
51 */
52 public function testGetDocBlockForClass() {
53 $grandChild = new MockV4ReflectionGrandchild();
54 $reflection = new \ReflectionClass($grandChild);
55 $doc = ReflectionUtils::getCodeDocs($reflection);
56
57 $this->assertEquals(TRUE, $doc['internal']);
58 $this->assertEquals('Grandchild class', $doc['description']);
59
60 $expectedComment = 'This is an extended description.
61
62There is a line break in this description.
63
64This is the base class.';
65
66 $this->assertEquals($expectedComment, $doc['comment']);
67 }
68
69 /**
70 * Test that property annotations are returned across @inheritDoc
71 */
72 public function testGetDocBlockForProperty() {
73 $grandChild = new MockV4ReflectionGrandchild();
74 $reflection = new \ReflectionClass($grandChild);
75 $doc = ReflectionUtils::getCodeDocs($reflection->getProperty('foo'), 'Property');
76
77 $this->assertEquals('This is the foo property.', $doc['description']);
78 $this->assertEquals("In the child class, foo has been barred.\n\nIn general, you can do nothing with it.", $doc['comment']);
79 }
80
81}