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.
		
		
		
		
		
			
		
			
				
					
					
						
							57 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							57 lines
						
					
					
						
							1.3 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 | |
| { | |
| 	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()); | |
| 	} | |
| }
 | |
| 
 |