| 
<?php
/*
 *      Copyright (c) 2014 Chi Hoang
 *      All rights reserved
 */
 require_once '/usr/share/php5/PEAR/PHPUnit/Autoload.php';
 require("vehicle.php");
 
 class vehicleTest extends PHPUnit_Framework_TestCase
 {
 public function testcarInstanceOf()
 {
 $car=new Vehicle\Vehicle("car");
 $this->assertInstanceOf("Vehicle\Vehicle",$car);
 }
 
 public function testcarWheels()
 {
 $car=new Vehicle\Vehicle("car");
 $car=new Vehicle\AddWheels($car,"4");
 $this->assertEquals($car->wheels,4);
 }
 
 public function testcarEngine()
 {
 $car=new Vehicle\Vehicle("car");
 $car=new Vehicle\AddWheels($car,"4");
 $car=new Vehicle\AddEngine($car,true);
 $this->assertEquals($car->engine,true);
 }
 
 public function testbikeInstanceOf()
 {
 $bike=new Vehicle\Vehicle("bike");
 $this->assertInstanceOf("Vehicle\Vehicle",$bike);
 }
 
 public function testbikeWheels()
 {
 $bike=new Vehicle\Vehicle("bike");
 $bike=new Vehicle\AddWheels($bike,"4");
 $this->assertEquals($bike->wheels,4);
 }
 
 public function testbikeEngine()
 {
 $bike=new Vehicle\Vehicle("bike");
 $bike=new Vehicle\AddWheels($bike,"2");
 $this->assertEmpty($bike->engine);
 }
 
 public function testmbInstanceOf()
 {
 $mb=new Vehicle\Vehicle("mb");
 $this->assertInstanceOf("Vehicle\Vehicle",$mb);
 }
 
 public function testmbWheels()
 {
 $mb=new Vehicle\Vehicle("mb");
 $mb=new Vehicle\AddWheels($mb,"4");
 $this->assertEquals($mb->wheels,4);
 }
 
 public function testmbEngine()
 {
 $mb=new Vehicle\Vehicle("mb");
 $mb=new Vehicle\AddWheels($mb,"2");
 $mb=new Vehicle\AddEngine($mb,true);
 $this->assertEquals($mb->engine,true);
 }
 
 public function testPersonInstanceOf()
 {
 $subject=new Vehicle\Subject("Drive");
 echo $subject;
 $this->expectOutputString('Drive');
 }
 
 public function testDrive()
 {
 $mb=new Vehicle\Vehicle("mb");
 $mb=new Vehicle\AddWheels($mb,"2");
 $mb=new Vehicle\AddEngine($mb,true);
 $mb->travel(new Vehicle\Subject("Drive"));
 $this->assertEquals($mb->drive,true);
 }
 
 public function testArrived()
 {
 $mb=new Vehicle\Vehicle("mb");
 $mb=new Vehicle\AddWheels($mb,"2");
 $mb=new Vehicle\AddEngine($mb,true);
 $mb->travel(new Vehicle\Subject("Drive"));
 $mb->travel(new Vehicle\Subject("Arrived"));
 $this->assertEquals($mb->drive,false);
 }
 
 public function testDriveNoEngine()
 {
 $mb=new Vehicle\Vehicle("bike");
 $mb=new Vehicle\AddWheels($mb,"2");
 $mb->travel(new Vehicle\Subject("Drive"));
 $this->assertEquals($mb->drive,True);
 }
 }
 ?>
 |