PHPUnit Test for for C-I- <Code> - <UML>

class SortArray{
	/* Test Data */
  static function testArray(){
    return  Array (                                       
                    0 => Array
                        (
                            'lastName' => 'Abercrombie',
                            'firstName' => 'Neil',
                            'gender' => 'Male',
                            'dob' => '2/13/1943',
                            'color' => 'Tan',
                        ),                                      
                    1 => Array
                        (
                            'lastName' => 'Bishop',
                            'firstName' => 'Timothy',
                            'gender' => 'Male',
                            'dob' => '4/23/1967',
                            'color' => 'Yellow',
                        ),                                      
                    3 => Array
                        (
                            'lastName' => 'Smith',
                            'firstName' => 'Steve',
                            'mi' => 'D',
                            'gender' => 'Male',
                            'color' => 'Red',
                            'dob' => '3/3/1985',
                        ) ,                                      
                    2 => Array
                        (
                            'lastName' => 'Kelly',
                            'firstName' => 'Sue',
                            'gender' => 'Female',
                            'dob' => '7/12/1959',
                            'color' => 'Pink',
                        ),                                  
                    4 => Array
                        (
                            'lastName' => 'Bonk',
                            'firstName' => 'Radek',
                            'mi' => 'S',
                            'gender' => 'Male',
                            'color' => 'Green',
                            'dob' => '6/3/1975',
                        ),                                      
                    5 => Array
                        (
                            'lastName' => 'Bouillon',
                            'firstName' => 'Francis',
                            'mi' => 'G',
                            'gender' => 'Male',
                            'color' => 'Blue',
                            'dob' => '6/3/1975',
                        ),                               
                    6 => Array
                        (
                            'lastName' => 'Kournikova',
                            'firstName' => 'Anna',
                            'gender' => 'Female',
                            'color' => 'Red',
                            'dob' => '6/3/1975',
                        ),
                    7 => Array
                        (
                            'lastName' => 'Hingis',
                            'firstName' => 'Martina',
                            'gender' => 'Female',
                            'color' => 'Green',
                            'dob' => '4/2/1979'
                        ),                                      
                    8 => Array
                        (
                            'lastName' => 'Seles',
                            'firstName' => 'Monica',
                            'gender' => 'Female',
                            'color' => 'Black',
                            'dob' => '12/2/1973',
                        )                                     
                );
  }
};
                 
class SortDateTest extends PHPUnit_Framework_TestCase{
  /* how to sort */
  private $_order;
  /* sort index */
  private $_index;
  /* test against this array */
  private $_testOriginalList;
  
  protected function setUp(){
    $this->_testOriginalList = SortArray::testArray();
    $this->listAsc = new PersonsList( $this->_testOriginalList );
    $this->listAsc->sort( new SortDate() );
    $this->SortLastNameListAsc = array( 'Abercrombie', 'Kelly', 'Bishop', 'Seles', 'Bonk', 'Bouillon', 'Kournikova', 'Hingis', 'Smith' );
    
    $this->listDesc = new PersonsList( $this->_testOriginalList );
    $this->listDesc->sort( new SortDate( 'descending' ) );
    $this->SortLastNameListDesc = array_reverse( array( 'Abercrombie', 'Kelly', 'Bishop', 'Seles', 'Kournikova','Bouillon', 'Bonk',  'Hingis', 'Smith' ) );
  }
  public function testSortAsc(){
    $counter = 0;
    foreach( $this->listAsc->getList() as $value ){
      $this->assertEquals( $this->SortLastNameListAsc[$counter], $value['lastName'] );
      $counter++;
  	}
  }/* End of method testSortAsc() */
  public function testSortDesc(){
    $counter = 0;
    foreach( $this->listDesc->getList() as $value ){
      $this->assertEquals( $this->SortLastNameListDesc[$counter], $value['lastName'] );
      $counter++;
    }
  }/* End of method testSortAsc() */
    
  }/* End of class SortDateTest */


  $testSuite = new PHPUnit_Framework_TestSuite();
  $testSuite->addTest( new SortDateTest( 'testSortAsc' ) );
  $testSuite->addTest( new SortDateTest( 'testSortDesc' ) );
  PHPUnit_TextUI_TestRunner::run( $testSuite );
                
class SortGenderTest extends PHPUnit_Framework_TestCase{
  /* how to sort */
  private $_order;
  /* sort index */
  private $_index;
  /* test against this array */
  private $_testOriginalList;
                                      
  protected function setUp(){
    $this->_testOriginalList = SortArray::testArray();
    $this->list = new PersonsList( $this->_testOriginalList );
    $this->list->sort( new SortGender( ) );
    $this->SortLastList = array( 'Hingis', 'Kelly', 'Kournikova', 'Seles', 'Abercrombie', 'Bishop', 'Bonk', 'Bouillon', 'Smith' );
    }
  public function testSort(){
    $counter = 0;
    foreach( $this->list->getList() as $value ){
      $this->assertEquals( $this->SortLastList[$counter], $value['lastName'] );
      $counter++;
    }
  }/* End of method sort() */
    
}/* End of class SortGenderTest */


   $testSuite = new PHPUnit_Framework_TestSuite();
   $testSuite->addTest( new SortGenderTest( 'testSort' ) );
   PHPUnit_TextUI_TestRunner::run( $testSuite );
                 
class SortLastNameTest extends PHPUnit_Framework_TestCase{
  /* how to sort */
  private $_order;
  /* sort index */
  private $_index;
  /* test against this array */
  private $_testOriginalList;
   
  protected function setUp(){
    $this->_testOriginalList = SortArray::testArray();
    $this->listDesc = new PersonsList( $this->_testOriginalList );
    $this->listDesc->sort( new SortLastName( 'descending' ) );
    $this->SortLastNameListDesc = array( 'Smith', 'Seles', 'Kournikova', 'Kelly', 'Hingis', 'Bouillon', 'Bonk', 'Bishop', 'Abercrombie' );
          
    $this->listAsc = new PersonsList( $this->_testOriginalList );
    $this->listAsc->sort( new SortLastName( 'ascending' ) );
    $this->SortLastNameListAsc = array_reverse(array( 'Smith', 'Seles', 'Kournikova', 'Kelly', 'Hingis', 'Bouillon', 'Bonk', 'Bishop', 'Abercrombie' ));
  }
  public function testSortDesc(){
    $counter = 0;
    foreach( $this->listDesc->getList() as $value ){
      $this->assertEquals( $this->SortLastNameListDesc[$counter], $value['lastName'] );
      $counter++;
    }
  }/* End of method testSortDesc() */
    
  public function testSortAsc(){
    $counter = 0;
    foreach( $this->listAsc->getList() as $value ){
      $this->assertEquals( $this->SortLastNameListAsc[$counter], $value['lastName'] );
      $counter++;
    }
  }/* End of method testSortDesc() */
}/* End of class SortLastNameTest */


  $testSuite = new PHPUnit_Framework_TestSuite();
  $testSuite->addTest( new SortLastNameTest( 'testSortDesc' ) );
  $testSuite->addTest( new SortLastNameTest( 'testSortAsc' ) );
  PHPUnit_TextUI_TestRunner::run( $testSuite );