fruffl icon

ClassAlias

fruffl | 01/25/13 08:36:43 PM UTC | 0 ⭐ | 287 👁️ | Never ⏰ | []
PHP |

2.6 KB

|

None

|

0 👍

/

0 👎

/*
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