You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.4 KiB
62 lines
1.4 KiB
<?php |
|
|
|
namespace yiiunit\framework\base; |
|
|
|
use yii\base\Behavior; |
|
use yii\base\Component; |
|
use yiiunit\TestCase; |
|
|
|
class BarClass extends Component |
|
{ |
|
} |
|
|
|
class FooClass extends Component |
|
{ |
|
public function behaviors() |
|
{ |
|
return array( |
|
'foo' => __NAMESPACE__ . '\BarBehavior', |
|
); |
|
} |
|
} |
|
|
|
class BarBehavior extends Behavior |
|
{ |
|
public $behaviorProperty = 'behavior property'; |
|
|
|
public function behaviorMethod() |
|
{ |
|
return 'behavior method'; |
|
} |
|
} |
|
|
|
class BehaviorTest extends TestCase |
|
{ |
|
protected function setUp() |
|
{ |
|
parent::setUp(); |
|
$this->mockApplication(); |
|
} |
|
|
|
public function testAttachAndAccessing() |
|
{ |
|
$bar = new BarClass(); |
|
$behavior = new BarBehavior(); |
|
$bar->attachBehavior('bar', $behavior); |
|
$this->assertEquals('behavior property', $bar->behaviorProperty); |
|
$this->assertEquals('behavior method', $bar->behaviorMethod()); |
|
$this->assertEquals('behavior property', $bar->getBehavior('bar')->behaviorProperty); |
|
$this->assertEquals('behavior method', $bar->getBehavior('bar')->behaviorMethod()); |
|
|
|
$behavior = new BarBehavior(array('behaviorProperty' => 'reattached')); |
|
$bar->attachBehavior('bar', $behavior); |
|
$this->assertEquals('reattached', $bar->behaviorProperty); |
|
} |
|
|
|
public function testAutomaticAttach() |
|
{ |
|
$foo = new FooClass(); |
|
$this->assertEquals('behavior property', $foo->behaviorProperty); |
|
$this->assertEquals('behavior method', $foo->behaviorMethod()); |
|
} |
|
}
|
|
|