Page 1 of 1

Refresh errors

Posted: Tue Oct 31, 2006 6:51 am
by kpraman
After writing the testcase, when i run, i get the output like this...

TestCase CategoriesTest->testing_insert() passed
TestCase CategoriesTest->testing_insertNotable() passed
TestCase CategoriesTest->testing_update() passed
TestCase CategoriesTest->testing_updateNoTable() passed
TestCase CategoriesTest->testing_insertData() passed
TestCase CategoriesTest->testing_updateData() passed
TestCase CategoriesTest->test_Delete() passed


But if i press F5 sometimes i get error messages from the testcases. Is it normal or something is wrong with the testcase. I also want to know what is the next step after i get the output like above.

Posted: Tue Oct 31, 2006 8:37 am
by feyd
If they randomly fail, you likely have something wrong with your test cases that's allowing random information to corrupt them.

Posted: Tue Oct 31, 2006 8:56 am
by kpraman
It does not happen, if i press refresh cleanly. If i press F5 continously about 4> without letting it to run then if i leave i get errors

Posted: Tue Oct 31, 2006 9:16 am
by feyd
Spamming a refresh shouldn't alter the outcome of the tests.

Posted: Tue Oct 31, 2006 9:44 am
by Weirdan
Spamming a refresh shouldn't alter the outcome of the tests.
Unless unit under test isn't properly isolated from outside world (for example, it may use db directly)

Posted: Tue Oct 31, 2006 11:22 pm
by kpraman
Class:

Code: Select all

<?php
require_once('database.php');

// This class does the following:

// AddOrUpdateMember method adds records or updates
// DeleteMember method deletes member
// DisableMember method disables member
// EnableMember method enables member
// GetMemberList method returns records of all members


class Members
{

       function AddOrUpdateMember($memberTypeId,$memberFName,$memberLName,$memberAddress,$memberCity,$memberState,$memberZip,$memberCountry,$memberPhone,$memberEmail,$memberFax,$enableFlag,$memberId,$table)
		 {
			if(empty($memberId) && !empty($table)){
			      //if memberid is blank a new record is inserted
			       $query_ins=mysql_query("INSERT INTO $table SET memberTypeId='$memberTypeId', memberFName='$memberFName', memberLName='$memberLName', memberAddress='$memberAddress', memberCity='$memberCity', memberState='$memberState', memberZip='$memberZip', memberCountry='$memberCountry', memberPhone='$memberPhone', memberEmail='$memberEmail', memberFax='$memberFax',enableFlag='$enableFlag'");
				   if(mysql_affected_rows()>0)
				     return 'insert';
				}
			
			
			if(!empty($memberId) && !empty($table)){
			    //if memberid is not blank, the memberid's record is updated
			     $query_insNoTable=mysql_query("UPDATE $table SET memberTypeId='$memberTypeId', memberFName='$memberFName', memberLName='$memberLName', memberAddress='$memberAddress', memberCity='$memberCity', memberState='$memberState', memberZip='$memberZip', memberCountry='$memberCountry', memberPhone='$memberPhone', memberEmail='$memberEmail', memberFax='$memberFax',enableFlag='$enableFlag' WHERE memberId='$memberId'");
				     if($query_insNoTable)
					    return 'update';
				}
		 }

	 
	     function DeleteMember($memberId, $table)
	      {
		    //memberid's record is deleted
		    $query=mysql_query("DELETE FROM $table WHERE memberId='$memberId'");
				//on success 1 is returned
			return $query;	
		  }


          
		 function EnableMember($memberId, $table)
	      {
		    //enables a member
		    $query=mysql_query("UPDATE $table SET enableFlag='true' WHERE memberId='$memberId'");
           //on success 1 is returned
			return $query;
		  }


		    //disables a member
	     function DisableMember($memberId, $table)
		  {
		    $query=mysql_query("UPDATE $table SET enableFlag='false' WHERE memberId='$memberId'");
             //on success 1 is returned
			return $query;
		  }
		
	 

	    function GetMemberList($table)
	      {
		  //returns all records
		  $arr=array();
		  if(!empty($table)){
		   $query=mysql_query("SELECT * FROM $table");
			while($row=mysql_fetch_array($query))
			  {
			     array_push($arr,$row);
			  }
			}
			 return $arr;
		 }
		 
		 
	  function DeleteAll($table)
	   {
	     $query=mysql_query("DELETE FROM $table");
		 return $query;	   
	   }
	   
	   
	 function GetMemberDetails($memberId,$table)
	    {
		   if(!empty($memberId) && !empty($table)){
		   $query=mysql_query("SELECT * FROM $table WHERE memberId=$memberId");
		   $res=mysql_fetch_array($query);
		   return $res;
		  }		
		}	   
}

?>

Tescase:

Code: Select all

<?php


		set_include_path("library/");

		require_once 'members.php';
		require_once 'PHPUnit/Framework/TestCase.php'; 
		require_once 'PHPUnit.php';
		
		
		print("<b>TEST CASE FOR MEMBERS CLASS</b>");
		
		

class MembersTest extends PHPUnit_TestCase {

      public function cleanup()
	     {
		      $qdel=mysql_query("SELECT * FROM members");
				if(mysql_num_rows($qdel)>0)
				   {
				       $del=mysql_query("TRUNCATE members");
				   }
 
		 }      


	   public function testing_insert()
	   	 {
				$this->cleanup();
         	    $newins=new Members;
          	    $actual=$newins->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
				$expected='insert';
				$this->assertEquals($expected, $actual, "COULD NOT INSERT");
				$this->cleanup();

		 }
		
	 
	 
	   public function testing_insertNotable()
	    {
		    $this->cleanup();
            $newinsnot=new Members;
            $actual_INoTable=$newinsnot->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','');
			$this->assertNull($actual_NoTable, "INSERTING WITHOUT TABLE NAME");
			$this->cleanup();

		}
		

       public function testing_update()
	   	 {
		        $this->cleanup();
         	    $newupdate=new Members;
          	    $newupdate->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
				$memberidU=mysql_insert_id();
          	    $actual_Update=$newupdate->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123456','true',$memberidU,'members');
				$expupdte='update';
				$this->assertEquals($expupdte, $actual_Update, "COULD NOT UPDATE");
				$this->cleanup();

		 }
		 
		 
       public function testing_updateNoTable()
	   	 {
		        $this->cleanup();
         	    $newupdatenot=new Members;
          	    $newupdatenot->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
				$memberidUnot=mysql_insert_id();
          	    $actual_UpdateNotable=$newupdatenot->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123456','true',$memberidU,'');
			    $this->assertNull($actual_UpdateNotable, "UPDATING WITHOUT TABLE NAME");
				$this->cleanup();				

		 }

		
	   
	 public function testing_insertData()
	    {
		    $this->cleanup();
			$newinsertdata=new Members;
            $dbActualinsertd=$newinsertdata->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
            $memberid_insertd=mysql_insert_id();
			$resExpectedInsertd=array((string)$memberid_insertd,'1','a','c','d','e','f','123','h','123','j','123','false');
		   
		    $query=mysql_query("SELECT * FROM members WHERE memberId=$memberid_insertd");
            $resActualInsertd=mysql_fetch_row($query);
			$this->assertEquals($resExpectedInsertd,$resActualInsertd, "COULD NOT INSERT DATA.");
			$this->cleanup();
		}



	
	public function testing_updateData()
	   {
		    $this->cleanup();
			$newupdatedata=new Members;
            $newupdatedata->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
            $memberid_updated=mysql_insert_id();
			
			$dbExpectedupdated=array((string)$memberid_updated,'2','b','d','e','f','g','456','i','456','k','456','true');
			
            $newupdatedata->AddOrUpdateMember('2','b','d','e','f','g','456','i','456','k','456','true',$memberid_updated,'members');
			$q1=mysql_query("SELECT * FROM members WHERE memberId=$memberid_updated");
			$dbActualupdated=mysql_fetch_row($q1);
			
			$this->assertEquals($dbExpectedupdated, $dbActualupdated, "COULD NOT UPDATE DATA");
			$this->cleanup();
	   }



       public function test_GetMemberDetails()
	      {
		    $this->cleanup();
			$newGetMemberDetails=new Members;
            $newGetMemberDetails->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
            $IdGetMemberDetails=mysql_insert_id();
            
			$query_Get=mysql_query("SELECT * FROM members WHERE memberId=$IdGetMemberDetails");
		    $Expected_res=mysql_fetch_array($query_Get);
			
			$Actual_res=$newGetMemberDetails->GetMemberDetails($IdGetMemberDetails,'members');
			
			$this->assertEquals($Expected_res, $Actual_res, "COULD NOT UPDATE DATA");
			$this->cleanup();
		  }
		  
		  
	
	
	 public function test_GetMemberDetailsNoT()
	      {
		    $this->cleanup();
			$newGetMemberDetailsNoT=new Members;
            $newGetMemberDetailsNoT->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
            $IdGetMemberDetailsNoT=mysql_insert_id();
            
			$Actual_resNoT=$newGetMemberDetailsNoT->GetMemberDetails($IdGetMemberDetailsNoT,'');
			
			$this->assertNull($Actual_resNoT, "UPDATING WITHOUT TABLE NAME");
			$this->cleanup();
		  }
		  
	
		  
		  
  public function test_GetMemberDetailsNoId()
	      {
		    $this->cleanup();
			$newGetMemberDetailsNoId=new Members;
            $newGetMemberDetailsNoId->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
            $IdGetMemberDetailsNoId=mysql_insert_id();
            
			$Actual_resNoId=$newGetMemberDetailsNoId->GetMemberDetails($IdGetMemberDetailsNoId,'');
			
			$this->assertNull($Actual_resNoId, "UPDATING WITHOUT TABLE NAME");
			$this->cleanup();
		  }


     	public function test_DeleteNoid()
	    {
		  $this->cleanup();
		  $newDelNoId=new Members;
          $dbActualDelNoId=$newDelNoId->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','true','','members');
          $memberid_DeleteNoId=mysql_insert_id();
		  
		  $queryDelNoId=mysql_query("SELECT * FROM members WHERE memberId=$memberid_DeleteNoId");
		  $arrExp_delNoId=mysql_fetch_array($queryDelNoId);
			
	      $newDelNoId->DeleteMember('','members');
		  
		  $queryDelNoId1=mysql_query("SELECT * FROM members WHERE memberId=$memberid_DeleteNoId");
		  $arrActual_delNoId=mysql_fetch_array($queryDelNoId1);
		  $this->assertEquals($arrExp_delNoId, $arrActual_delNoId, "DELETING WITHOUT MEMBERID");
		  $this->cleanup();
	   }
	   


	   
	public function test_Delete()
	    {
		  $this->cleanup();
		  $newDel=new Members;
          $dbActualDel=$newDel->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','true','','members');
          $memberid_Delete=mysql_insert_id();
		  
		  $queryDel=mysql_query("SELECT * FROM members");
		  while($del=mysql_fetch_array($queryDel))
		    {
		          $arrExp_del[]=mysql_fetch_array($queryDel);
		    }
		   
	      $newDel->DeleteMember($memberid_Delete,'members');
		  
		  $queryDelA=mysql_query("SELECT * FROM members");
		  while($delA=mysql_fetch_array($queryDelA))
		    {
		          $arrExp_delA[]=mysql_fetch_array($delA);
		    }
		
		 if(count($arrExp_del)>0 && count($arrExp_delA==0))
		    {
			     $DelExp=0;
			}
		  
		  $this->assertEquals($DelExp, count($arrExp_delA), "DELETING WITHOUT TABLE NAME");
		  $this->cleanup();
	   }

	 
	 
	   
	 public function test_DeleteNotable()
	    {
		  $this->cleanup();
		  $newDelNoTable=new Members;
          $dbActualDelNoTable=$newDelNoTable->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','true','','members');
          $memberid_DeleteNoTable=mysql_insert_id();
		  
		  $queryDelNoTable=mysql_query("SELECT * FROM members WHERE memberId=$memberid_DeleteNoTable");
		  $arrExp_delNoTable=mysql_fetch_array($queryDelNoTable);
			
	      $newDelNoTable->DeleteMember($memberid_DeleteNoTable,'');
		  
		  $queryDelNoTable1=mysql_query("SELECT * FROM members WHERE memberId=$memberid_DeleteNoTable");
		  $arrActual_delNoTable=mysql_fetch_array($queryDelNoTable1);
		  $this->assertEquals($arrExp_delNoTable, $arrActual_delNoTable, "DELETING WITHOUT TABLE NAME");
		  $this->cleanup();
	   }


    public function test_EnableMember() 
	  {
		  $this->cleanup();
          $newEnable=new Members;
          $newEnable->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		  $memberidEnable=mysql_insert_id();
		  
		  $queryEnable=mysql_query("SELECT * FROM members WHERE memberId=$memberidEnable");
		  $queryresEnable=mysql_fetch_array($queryEnable);
		  
		  $newEnable->EnableMember($memberidEnable, 'members');
		  $expectedEnable='true';
		  
		  $queryEnable1=mysql_query("SELECT * FROM members WHERE memberId=$memberidEnable");
		  $queryresEnable1=mysql_fetch_array($queryEnable1);
		  $actualEnable=$queryresEnable1['enableFlag'];

		  $this->assertEquals($expectedEnable,$actualEnable, "COULD NOT ENABLE");
		  $this->cleanup();
	  }	


  public function test_EnableMemberNoMemberid() 
	  {
		  $this->cleanup();
          $newEnableNoId=new Members;
          $newEnableNoId->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		  $memberidEnableNoId=mysql_insert_id();
		  
		  $queryEnableNoId=mysql_query("SELECT * FROM members WHERE memberId=$memberidEnableNoId");
		  $queryresEnableNoId=mysql_fetch_array($queryEnableNoId);
		  $expectedEnableNoId=$queryresEnableNoId['enableFlag'];
		  
		  $newEnableNoId->EnableMember('', 'members');
		  
		  $queryEnableNoId1=mysql_query("SELECT * FROM members WHERE memberId=$memberidEnableNoId");
		  $queryresEnableNoId1=mysql_fetch_array($queryEnableNoId1);
		  $actualEnableNoId=$queryresEnableNoId1['enableFlag'];
		  
		  $this->assertEquals($expectedEnableNoId,$actualEnableNoId, "ENABLING WITHOUT MEMBERID");
		  $this->cleanup();
	  }	



    public function test_EnableMemberNoTable() 
	  {
		  $this->cleanup();
          $newEnableNoTable=new Members;
          $newEnableNoTable->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		  $memberidEnableNoTable=mysql_insert_id();
		  
		  $queryEnableNoTable=mysql_query("SELECT * FROM members WHERE memberId=$memberidEnableNoTable");
		  $queryresEnableNoTable=mysql_fetch_array($queryEnableNoTable);
		  $expectedEnableNoT=$queryresEnableNoTable['enableFlag'];
		  
		  $newEnableNoTable->EnableMember('', 'members');
		  
		  $queryEnableNoTable1=mysql_query("SELECT * FROM members WHERE memberId=$memberidEnableNoTable");
		  $queryresEnableNoTable1=mysql_fetch_array($queryEnableNoTable1);
		  $actualEnableNoT=$queryresEnableNoTable1['enableFlag'];
		  
		  $this->assertEquals($expectedEnableNoT,$actualEnableNoT, "ENABLING WITHOUT TABLE NAME");
		  $this->cleanup();
	  }	



    public function test_DisableMember() 
	  {
		  $this->cleanup();
          $newDisable=new Members;
          $newDisable->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','true','','members');
		  $memberidDisable=mysql_insert_id();
		  
		  $queryDisable=mysql_query("SELECT * FROM members WHERE memberId=$memberidDisable");
		  $queryresDisable=mysql_fetch_array($queryDisable);
		  
		  $newDisable->DisableMember($memberidDisable, 'members');
		  $expectedDisable='false';
		  
		  $queryDisable1=mysql_query("SELECT * FROM members WHERE memberId=$memberidDisable");
		  $queryresDisable1=mysql_fetch_array($queryDisable1);
		  $actualDisable=$queryresDisable1['enableFlag'];
		  $this->assertEquals($expectedDisable,$actualDisable, "COULD NOT DISABLE");
		  $this->cleanup();
	  }	


  public function test_DisableMemberNoMemberid() 
	  {
		  $this->cleanup();
          $newDisableNoId=new Members;
          $newDisableNoId->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		  $memberidDisableNoId=mysql_insert_id();
		  
		  $queryDisableNoId=mysql_query("SELECT * FROM members WHERE memberId=$memberidDisableNoId");
		  $queryresDisableNoId=mysql_fetch_array($queryDisableNoId);
		  $expectedDisableNoId=$queryresDisableNoId['enable'];
		  
		  $newDisableNoId->DisableMember('', 'members');
		  
		  $queryDisableNoId1=mysql_query("SELECT * FROM members WHERE memberId=$memberidDisableNoId");
		  $queryresDisableNoId1=mysql_fetch_array($queryDisableNoId1);
		  $actualDisalbeNoId=$queryresDisableNoId1['enable'];
		  
		  $this->assertEquals($expectedDisableNoId,$actualDisalbeNoId, "DISABLING WITHOUT MEMBERID");
		  $this->cleanup();
	  }	



    public function test_DisableMemberNoTable() 
	  {
		  $this->cleanup();
          $newDisableNoTable=new Members;
          $newDisableNoTable->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		  $memberidDisableNoTable=mysql_insert_id();
		  
		  $queryDisableNoTable=mysql_query("SELECT * FROM members WHERE memberId=$memberidDisableNoTable");
		  $queryresDisableNoTable=mysql_fetch_array($queryDisableNoTable);
		  $expectedDisableNoT=$queryresDisableNoTable['enable'];
		  
		  $newDisableNoTable->DisableMember('', 'members');
		  
		  $queryDisableNoTable1=mysql_query("SELECT * FROM members WHERE memberId=$memberidDisableNoTable");
		  $queryresDisableNoTable1=mysql_fetch_array($queryDisableNoTable1);
		  $actualDisableNoT=$queryresDisableNoTable1['enable'];
		  $this->assertEquals($expectedDisableNoT,$actualDisableNoT, "DISABLING WITHOUT TABLE NAME");
		  $this->cleanup();
	  }	



     public function test_GetMemberList()
	    {
		   $this->cleanup();
		   $newGetMemberListTest=new Members;
		   for($i=0;$i<=2;$i++){
		   $newGetMemberListTest->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		   }
		   
		  $query_get=mysql_query("SELECT * FROM members");
		  while($res=mysql_fetch_array($query_get))
		    {
			    $arrExpected[]=$res;
			}
		  $arrActual=$newGetMemberListTest->GetMemberList('members');
		  $this->assertEquals($arrExpected,$arrActual, "COULD NOT FETCH DATA");
		  $this->cleanup();
		}
		
		

     public function test_GetMemberListNoTable()
	    {
		   $this->cleanup();
		   $newGetMemberListTest=new Members;
		   for($i=0;$i<=2;$i++){
		   $newGetMemberListTest->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		   }
		  $expGetMemListNoTable=array();
		  $arrActualNoTable=$newGetMemberListTest->GetMemberList('');
		  $this->assertEquals($expGetMemListNoTable,$arrActualNoTable, "RETRIVING DATA WITHOUT TABLE NAME");
		  $this->cleanup();
		}




     public function test_DeleteAll()
	   {
		  $this->cleanup();
	      $newDeleteAll=new Members;
		  for($i=0;$i<=6;$i++){
          $newDeleteAll->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
          }
	      $queryDeleteAll=mysql_query("SELECT * FROM members");
          while($resDeleteAll=mysql_fetch_array($queryDeleteAll))
		    {
			   $resD[]=$resDeleteAll;
			}
			
	      $befdel=count($resD);
		  $newDeleteAll->DeleteAll('members');
		  
		  $queryDeleteAll1=mysql_query("SELECT * FROM members");
          while($resDeleteAll1=mysql_fetch_array($queryDeleteAll1))
		    {
			   $resD1[]=$resDeleteAll1;
			}
         $aftdel=count($resD1);
		 
		 if($befdel>0 && aftdel==0)
		   {
		      $expDeleteAll=0;
		   }
		  $this->assertEquals($expDeleteAll,$aftdel, "COULD NOT DELETE DATA");
		  $this->cleanup();
	   }		



    public function test_DeleteAllNoTable()
	   {
		  $this->cleanup();
	      $newDeleteAllNoT=new Members;
		  for($i=0;$i<=6;$i++){
          $newDeleteAllNoT->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
          }
	      $queryDeleteAllNoT=mysql_query("SELECT * FROM members");
          while($resDeleteAllNoT=mysql_fetch_array($queryDeleteAllNoT))
		    {
			   $resDNoT[]=$resDeleteAllNoT;
			}
			
		  $newDeleteAllNoT->DeleteAll('');
		  
	      $queryDeleteAllNoT1=mysql_query("SELECT * FROM members");
          while($resDeleteAllNoT1=mysql_fetch_array($queryDeleteAllNoT1))
		    {
			   $resDNoT1[]=$resDeleteAllNoT1;
			}
			
	    $this->assertEquals($resDNoT,$resDNoT1, "DELETING DATA WITHOUT TABLE NAME");
		
	    $this->cleanup();
	   }
	   
	
 }
 
 $suite  = new PHPUnit_TestSuite('MembersTest');
 $result = PHPUnit::run($suite);
 
 print $result->toHTML();
 ?>

So, what's wrong with the above code. if i had to isolate. anything how to do that?

Posted: Wed Nov 01, 2006 6:31 am
by Maugrim_The_Reaper
Typically the database - you should be using a clean database with each new test run. i.e. set it up, use it, get rid of it... This also ensures subsequent tests using the same database schema can be run without earlier tests contaminating it.

Posted: Wed Nov 01, 2006 7:06 am
by kpraman
You meant to say that I should connect to database for each method then at the end of the method i.e after cleanup() i should close the database connection?

Posted: Wed Nov 01, 2006 7:23 am
by Chris Corbyn
kpraman wrote:You meant to say that I should connect to database for each method then at the end of the method i.e after cleanup() i should close the database connection?
Yes. setUp() and tearDown() in your testing framework are for this.

Don't think too much about the overhead of creating such an environment. These are only the tests.

Posted: Wed Nov 01, 2006 8:04 am
by kpraman
Weirdan | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


Thanks.  Can i use same variable names in all the methods?

For example,

Code: Select all

public function testing_UpdateInv()
 {
	$this->cleanup();
	$newinsert=new invoice;
	$newinsertdata=new InvoiceItems;
	$dbActualinsertd=$newinsert->CreateInvoice('1','100','2006-01-01','invoice');
	$invid_insertd=mysql_insert_id();
				
          	$newinsertdata->AddOrUpdInvItem('book2', '600', '6', $invid_insertd,'','invoiceitems');
	$id=mysql_insert_id();
	$newinsertdata->AddOrUpdInvItem('book4', '1000', '10', $invid_insertd,$id,'invoiceitems');
				
	$expected=array((string)$invid_insertd, (string)$invid_insertd, 'book4', '1000', '10');
				
	$query=mysql_query("SELECT * FROM invoiceitems WHERE invoiceId=$invid_insertd");
	$actual=mysql_fetch_row($query);
				
	$this->assertEquals($expected, $actual, "COULD NOT INSERT");
	$this->cleanup();
			
}
		 
		 
public function testing_UpdateInvNoT()

  {
	$this->cleanup();
	$newinsert=new invoice;
	$newinsertdata=new InvoiceItems;
	$dbActualinsertd=$newinsert->CreateInvoice('1','100','2006-01-01','invoice');
	$invid_insertd=mysql_insert_id();
				
          	$newinsertdata->AddOrUpdInvItem('book2', '600', '6', $invid_insertd,'','invoiceitems');
	$id=mysql_insert_id();
				
	$newinsertdata->AddOrUpdInvItem('book4', '1000', '10','',invid_insertd,'invoiceitems');
				
	$expected=array((string)$invid_insertd, (string)$invid_insertd, 'book2', '600', '6');
				
	$query=mysql_query("SELECT * FROM invoiceitems WHERE invoiceId=$invid_insertd");
	$actual=mysql_fetch_row($query);
			
	$this->assertEquals($expected, $actual, "COULD NOT INSERT");
	$this->cleanup();

 }
The first method is for update and second method is for updating without table name


Weirdan | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]

Posted: Wed Nov 01, 2006 10:00 am
by John Cartwright
$normal variables are limited in the scopeof the method.

Posted: Wed Nov 01, 2006 5:13 pm
by Chris Corbyn
I can't recommend strongly enough that you use at least some level of abstraction to access your database... even if that simply means wrapping calls to the native MySQL functions in a class. It will make testing much easier to simulate situations with your data (i.e. you can mock the db completely).

It may also be worth refactoring your test case so that you can have a factory method return the invoice your are creating each time here :)

Posted: Thu Nov 02, 2006 1:26 am
by kpraman
Variables are limited in its scope? if yes, can i safely use same variable names in all the methods?

Posted: Thu Nov 02, 2006 3:41 am
by kpraman
feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


I have written the code like this,

Code: Select all

public function DB()
 {
    mysql_connect(localhost,'root','');
    mysql_select_db('pics4news');
 }     


public function cleanup()
{
     $this->DB();
     $qdel=mysql_query("SELECT * FROM members");

    if(mysql_num_rows($qdel)>0)
      {
         $del=mysql_query("TRUNCATE members");
      }
 
} 
		 


public function testing_insert()
 {
     $this->cleanup();
     $this->DB();
     $newins=new Members;
     $actual=$newins->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
$expected='insert';
$this->assertEquals($expected, $actual, "COULD NOT INSERT");
$this->cleanup();
mysql_close();

 }
to seperate the db connection. I am calling the DB() method for each methods and at the end of each method i am closing the DB with mysql_close(). Is the above method correct?


feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]