suricate-php /
framework
| 1 | <?php |
||
| 2 | class ServiceTest extends \PHPUnit\Framework\TestCase |
||
| 3 | { |
||
| 4 | public function testGetException() |
||
| 5 | { |
||
| 6 | $this->expectException(InvalidArgumentException::class); |
||
| 7 | $service = new \Suricate\Service(); |
||
| 8 | $service->undefVar; |
||
|
0 ignored issues
–
show
Bug
Best Practice
introduced
by
Loading history...
|
|||
| 9 | } |
||
| 10 | |||
| 11 | public function testSetException() |
||
| 12 | { |
||
| 13 | $this->expectException(InvalidArgumentException::class); |
||
| 14 | $service = new \Suricate\Service(); |
||
| 15 | $service->undefVar = "123"; |
||
|
0 ignored issues
–
show
The property
undefVar does not exist on Suricate\Service. Since you implemented __set, consider adding a @property annotation.
Loading history...
|
|||
| 16 | } |
||
| 17 | |||
| 18 | public function testGet() |
||
| 19 | { |
||
| 20 | $testService = new \Suricate\Service(); |
||
| 21 | |||
| 22 | self::mockProperty($testService, 'parametersList', [ |
||
| 23 | 'param_1', |
||
| 24 | 'param_2' |
||
| 25 | ]); |
||
| 26 | $this->assertNull($testService->param_1); |
||
|
0 ignored issues
–
show
The property
param_1 does not exist on Suricate\Service. Since you implemented __get, consider adding a @property annotation.
Loading history...
|
|||
| 27 | self::mockProperty($testService, 'parametersValues', [ |
||
| 28 | 'param_1' => 'value1', |
||
| 29 | 'param_2' => 'value2' |
||
| 30 | ]); |
||
| 31 | $this->assertNotNull($testService->param_1); |
||
| 32 | $this->assertEquals($testService->param_1, 'value1'); |
||
| 33 | } |
||
| 34 | |||
| 35 | public function testSet() |
||
| 36 | { |
||
| 37 | $testService = new \Suricate\Service(); |
||
| 38 | |||
| 39 | self::mockProperty($testService, 'parametersList', [ |
||
| 40 | 'param_1', |
||
| 41 | 'param_2' |
||
| 42 | ]); |
||
| 43 | $this->assertNull($testService->param_1); |
||
|
0 ignored issues
–
show
The property
param_1 does not exist on Suricate\Service. Since you implemented __get, consider adding a @property annotation.
Loading history...
|
|||
| 44 | $testService->param_1 = 'new_value'; |
||
|
0 ignored issues
–
show
The property
param_1 does not exist on Suricate\Service. Since you implemented __set, consider adding a @property annotation.
Loading history...
|
|||
| 45 | $this->assertEquals($testService->param_1, 'new_value'); |
||
| 46 | } |
||
| 47 | |||
| 48 | public function testConfigure() |
||
| 49 | { |
||
| 50 | $testService = new \Suricate\Service(); |
||
| 51 | |||
| 52 | self::mockProperty($testService, 'parametersList', [ |
||
| 53 | 'param_1', |
||
| 54 | 'param_2' |
||
| 55 | ]); |
||
| 56 | $testService->configure(['param_1' => 'value1', 'param_2' => 'value2']); |
||
| 57 | |||
| 58 | $this->assertEquals($testService->param_1, 'value1'); |
||
|
0 ignored issues
–
show
The property
param_1 does not exist on Suricate\Service. Since you implemented __get, consider adding a @property annotation.
Loading history...
|
|||
| 59 | $this->assertEquals($testService->param_2, 'value2'); |
||
|
0 ignored issues
–
show
The property
param_2 does not exist on Suricate\Service. Since you implemented __get, consider adding a @property annotation.
Loading history...
|
|||
| 60 | |||
| 61 | $this->expectException(InvalidArgumentException::class); |
||
| 62 | $testService->configure(['param_3' => 'value3']); |
||
| 63 | } |
||
| 64 | |||
| 65 | public static function mockProperty($object, string $propertyName, $value) |
||
| 66 | { |
||
| 67 | $reflectionClass = new \ReflectionClass($object); |
||
| 68 | |||
| 69 | $property = $reflectionClass->getProperty($propertyName); |
||
| 70 | $property->setAccessible(true); |
||
| 71 | $property->setValue($object, $value); |
||
| 72 | $property->setAccessible(false); |
||
| 73 | } |
||
| 74 | } |
||
| 75 |