/*
ILLI\Dev\Unit\Core\Object\TestClass
testClassRegisterAlias
assertEqual
result: pass
testClassAliasInstanceOfClass
assertEqual
result: pass
testClassAliasWithConfig
assertEqual
result: pass
testClassUnregisterAlias
assertEqual
result: pass
*/
<?PHP
NAMESPACE ILLI\Dev\Unit\Core\Object;
CLASS TestClass EXTENDS \ILLI\Test\Unit
{
static protected $__defaultConfig =
[
self::DEF_CLASS =>
[
'ILLI\Dev\Mock\Core\Object\MockClass'
]
];
public function testClassRegisterAlias()
{
$result = $this
->Core_Object_T_Class_register
(
'ILLI\Dev\Mock\Core\Object\MockClass',
'ILLI\Dev\Mock\Core\Object\MockClassAlias'
)
->Core_Object_T_Class_emit
(
'ILLI\Dev\Mock\Core\Object\MockClass',
[],
['instance' => FALSE]
);
$expected = 'ILLI\Dev\Mock\Core\Object\MockClassAlias';
$this->assertEqual($expected, $result);
}
public function testClassAliasInstanceOfClass()
{
$result = $this
->Core_Object_T_Class_register
(
'ILLI\Dev\Mock\Core\Object\MockClass',
'ILLI\Dev\Mock\Core\Object\MockClassAlias'
)
->Core_Object_T_Class_emit
(
'ILLI\Dev\Mock\Core\Object\MockClass',
[],
[
'instance' => TRUE,
'instanceOf' => 'ILLI\Dev\Mock\Core\Object\MockClass'
]
);
$expected = 'ILLI\Dev\Mock\Core\Object\MockClassAlias';
$this->assertEqual($expected, get_class($result));
}
public function testClassAliasWithConfig()
{
$result = $this
->Core_Object_T_Class_emit
(
'ILLI\Dev\Mock\Core\Object\MockClass',
[
'privatePropertyWithSetter' => 'PASSED',
'protectedPropertyWithSetter' => 'PASSED',
'publicPropertyWithSetter' => 'PASSED',
'protectedProperty' => 'PASSED',
'publicProperty' => 'PASSED',
'noSetterAndNoPropertyDefined' => 'undefinedProperty'
],
['instance' => TRUE]
)
->to('array');
$expected =
[
'protectedPropertyWithSetter' => 'PASSED',
'protectedProperty' => 'PASSED',
'publicPropertyWithSetter' => 'PASSED',
'publicProperty' => 'PASSED',
];
$this->assertEqual($expected, $result);
}
public function testClassUnregisterAlias()
{
$result = $this
->Core_Object_T_Class_unregister('ILLI\Dev\Mock\Core\Object\MockClass')
->Core_Object_T_Class_emit
(
'ILLI\Dev\Mock\Core\Object\MockClass',
[],
['instance' => FALSE]
);
$expected = 'ILLI\Dev\Mock\Core\Object\MockClass';
$this->assertEqual($expected, $result);
}
}
Comments