Ejemplo n.º 1
0
 public function testCanGetRawMixinsLists()
 {
     // entry conditions
     $mixins = MF_Obj_MixinsManager::getRawMixins();
     $this->assertEquals(0, MF_Obj_MixinsManager::$mixinAutoInc);
     $this->assertTrue(is_array($mixins));
     if (is_array($mixins)) {
         $this->assertEquals(0, count($mixins));
     }
     // make the changes
     __mf_extend('Test_ObjExt', 'Test_Obj_ExtMixin');
     // retest
     $mixins = MF_Obj_MixinsManager::getRawMixins();
     $this->assertEquals(1, MF_Obj_MixinsManager::$mixinAutoInc);
     $this->assertTrue(is_array($mixins));
     if (is_array($mixins)) {
         $this->assertEquals(1, count($mixins));
         $this->assertTrue(isset($mixins['Test_ObjExt']));
     }
 }
Ejemplo n.º 2
0
 public function testCanCallSameMethodWhenMultipleMixinsPerClass()
 {
     $this->assertEquals('Test_ObjExt', get_class($this->fixture));
     __mf_extend('Test_ObjBase', 'Test_Obj_BaseMixin');
     __mf_extend('Test_ObjExt', 'Test_Obj_ExtMixin2');
     // entry conditions
     $this->assertEquals(3, $this->fixture->mixinCount);
     // change state
     $result = $this->fixture->validateCalled();
     // test results
     $this->assertEquals(array('Test_Obj_ExtMixin', 'Test_Obj_ExtMixin2', 'Test_Obj_BaseMixin'), $result);
 }
Ejemplo n.º 3
0
 public function setup()
 {
     MF_Obj_MixinsManager::destroy();
     $this->fixture = new Test_ObjExt();
     __mf_extend('Test_ObjExt', 'Test_Obj_ExtMixin');
 }
Ejemplo n.º 4
0
 public function testCanGetDecoratorProperty()
 {
     // entry conditions
     $this->assertFalse(isset($this->fixture->decoratorProp));
     $this->assertfalse(isset($this->fixture->name));
     // change state
     $decorator = new Test_Obj_Decorator();
     __mf_extend($this->fixture, $decorator);
     // retest
     $this->assertTrue(isset($this->fixture->decoratorProp));
     $this->assertTrue(isset($this->fixture->name));
     $this->assertEquals('alice', $this->fixture->decoratorProp);
     $this->assertEquals('lisa', $this->fixture->name);
 }