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.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.1 KiB
						
					
					
				| <?php | |
|  | |
| namespace yiiunit\framework\base; | |
|  | |
| class BarClass extends \yii\base\Component | |
| { | |
|  | |
| } | |
|  | |
| class FooClass extends \yii\base\Component | |
| { | |
| 	public function behaviors() | |
| 	{ | |
| 		return array( | |
| 			'foo' => __NAMESPACE__ . '\BarBehavior', | |
| 		); | |
| 	} | |
| } | |
|  | |
| class BarBehavior extends \yii\base\Behavior | |
| { | |
| 	public $behaviorProperty = 'behavior property'; | |
|  | |
| 	public function behaviorMethod() | |
| 	{ | |
| 		return 'behavior method'; | |
| 	} | |
| } | |
|  | |
| class BehaviorTest extends \yiiunit\TestCase | |
| { | |
| 	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->asa('bar')->behaviorProperty); | |
| 		$this->assertEquals('behavior method', $bar->asa('bar')->behaviorMethod()); | |
| 	} | |
|  | |
| 	public function testAutomaticAttach() | |
| 	{ | |
| 		$foo = new FooClass(); | |
| 		$this->assertEquals('behavior property', $foo->behaviorProperty); | |
| 		$this->assertEquals('behavior method', $foo->behaviorMethod()); | |
| 	} | |
| }
 | |
| 
 |