FOSSology  3.2.0rc1
Open Source License Compliance by Open Source Software
ReflectoryTest.php
1 <?php
2 /*
3 Copyright (C) 2015, Siemens AG
4 
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 version 2 as published by the Free Software Foundation.
8 
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13 
14 You should have received a copy of the GNU General Public License along
15 with this program; if not, write to the Free Software Foundation, Inc.,
16 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 */
18 
19 namespace Fossology\Lib\Test;
20 
22 {
23  private $internal = 1;
24  private function add($inc)
25  {
26  $this->internal += $inc;
27  return $this->internal;
28  }
29  public function getInternal()
30  {
31  return $this->internal;
32  }
33 }
34 
35 class ReflectoryTest extends \PHPUnit\Framework\TestCase
36 {
37  protected function setUp()
38  {
39  $this->assertCountBefore = \Hamcrest\MatcherAssert::getCount();
40  }
41 
42  protected function tearDown()
43  {
44  $this->addToAssertionCount(\Hamcrest\MatcherAssert::getCount()-$this->assertCountBefore);
45  }
46 
47  public function testInvokeObjectsMethodnameWith()
48  {
49  $instanceWithPrivateMethod = new ClassWithPrivateMethod();
50  assertThat(Reflectory::invokeObjectsMethodnameWith($instanceWithPrivateMethod, 'add', array(2)),is(1+2));
51  assertThat(Reflectory::invokeObjectsMethodnameWith($instanceWithPrivateMethod, 'add', array(4)),is(1+2+4));
52  }
53 
54  public function testGetObjectsProperty()
55  {
56  $instanceWithPrivateMethod = new ClassWithPrivateMethod();
57  assertThat(Reflectory::getObjectsProperty($instanceWithPrivateMethod, 'internal'),is(1));
58  }
59 
60  public function testSetObjectsProperty()
61  {
62  $instanceWithPrivateMethod = new ClassWithPrivateMethod();
63  Reflectory::setObjectsProperty($instanceWithPrivateMethod, 'internal', 3);
64  assertThat($instanceWithPrivateMethod->getInternal(),is(3));
65  }
66 }