Skip to content
Snippets Groups Projects
Commit 584a4919 authored by Laurent Destailleur's avatar Laurent Destailleur
Browse files

New: Add phpunit tests

parent 193a51f7
No related branches found
No related tags found
No related merge requests found
report
<?php
/* Copyright (C) 2010 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/**
* \file test/CommandeTest.php
* \ingroup test
* \brief This file is an example for a PHPUnit test
* \version $Id$
* \remarks To run this script as CLI: phpunit filename.php
*/
global $conf,$user,$langs,$db;
//define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver
require_once 'PHPUnit/Framework.php';
require_once dirname(__FILE__).'/../htdocs/master.inc.php';
require_once dirname(__FILE__).'/../htdocs/commande/commande.class.php';
print "Load permissions for admin user with login 'admin'\n";
$user->fetch('admin');
$user->getrights();
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
*/
class CommandeTest extends PHPUnit_Framework_TestCase
{
protected $savconf;
protected $savuser;
protected $savlangs;
protected $savdb;
/**
* Constructor
* We save global variables into local variables
*
* @return CommandeTest
*/
function CommandeTest()
{
//$this->sharedFixture
global $conf,$user,$langs,$db;
$this->savconf=$conf;
$this->savuser=$user;
$this->savlangs=$langs;
$this->savdb=$db;
print __METHOD__." db->type=".$db->type." user->id=".$user->id;
//print " - db ".$db->db;
print "\n";
}
// Static methods
public static function setUpBeforeClass()
{
global $conf,$user,$langs,$db;
print __METHOD__."\n";
if (! $db->transaction_opened) $db->begin(); // This is to have all actions inside a transaction even if test launched without suite.
}
public static function tearDownAfterClass()
{
global $conf,$user,$langs,$db;
print __METHOD__."\n";
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
*/
protected function setUp()
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
print __METHOD__."\n";
//print $db->getVersion()."\n";
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
*/
protected function tearDown()
{
print __METHOD__."\n";
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
* @covers Commande::create
*/
public function testCommandeCreate()
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$localobject=new Commande($this->savdb);
$localobject->initAsSpecimen();
$result=$localobject->create($user);
$this->assertLessThan($result, 0);
print __METHOD__." result=".$result."\n";
return $result;
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
* @depends testCommandeCreate
* @covers Commande::fetch
* The depends says test is run only if previous is ok
*/
public function testCommandeFetch($id)
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$localobject=new Commande($this->savdb);
$result=$localobject->fetch($id);
$this->assertLessThan($result, 0);
print __METHOD__." id=".$id." result=".$result."\n";
return $localobject;
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
* @depends testCommandeFetch
* @covers Commande::update
* The depends says test is run only if previous is ok
*/
/* public function testCommandeUpdate($localobject)
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$localobject->note='New note after update';
$result=$localobject->update($user);
print __METHOD__." id=".$localobject->id." result=".$result."\n";
$this->assertLessThan($result, 0);
return $localobject->id;
}
*/
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
* @depends testCommandeFetch
* @covers Commande::valid
* The depends says test is run only if previous is ok
*/
public function testCommandeValid($localobject)
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$result=$localobject->valid($user);
print __METHOD__." id=".$localobject->id." result=".$result."\n";
$this->assertLessThan($result, 0);
return $localobject->id;
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
* @depends testCommandeValid
* @covers Commande::delete
* The depends says test is run only if previous is ok
*/
public function testCommandeDelete($id)
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$localobject=new Commande($this->savdb);
$result=$localobject->fetch($id);
$result=$localobject->delete($user);
print __METHOD__." id=".$id." result=".$result."\n";
$this->assertLessThan($result, 0);
return $result;
}
}
?>
\ No newline at end of file
...@@ -23,14 +23,23 @@ ...@@ -23,14 +23,23 @@
* \version $Id$ * \version $Id$
* \remarks To run this script as CLI: phpunit filename.php * \remarks To run this script as CLI: phpunit filename.php
*/ */
global $conf,$user,$langs,$db;
//define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver //define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver
require_once 'PHPUnit/Framework.php'; require_once 'PHPUnit/Framework.php';
require_once dirname(__FILE__).'/../htdocs/master.inc.php'; require_once dirname(__FILE__).'/../htdocs/master.inc.php';
require_once dirname(__FILE__).'/../htdocs/compta/facture/class/facture.class.php'; require_once dirname(__FILE__).'/../htdocs/compta/facture/class/facture.class.php';
print "Load permissions for admin user with login 'admin'\n";
$user->fetch('admin');
$user->getrights();
/** /**
* @backupGlobals enabled * @backupGlobals enabled
* @backupStaticAttributes enabled * @backupStaticAttributes enabled
* @covers DoliDb
* @covers User
* @covers Translate
*/ */
class FactureTest extends PHPUnit_Framework_TestCase class FactureTest extends PHPUnit_Framework_TestCase
{ {
...@@ -87,7 +96,6 @@ class FactureTest extends PHPUnit_Framework_TestCase ...@@ -87,7 +96,6 @@ class FactureTest extends PHPUnit_Framework_TestCase
$db=$this->savdb; $db=$this->savdb;
print __METHOD__."\n"; print __METHOD__."\n";
//print $db->getVersion()."\n";
} }
/** /**
* @backupGlobals enabled * @backupGlobals enabled
...@@ -158,10 +166,56 @@ class FactureTest extends PHPUnit_Framework_TestCase ...@@ -158,10 +166,56 @@ class FactureTest extends PHPUnit_Framework_TestCase
$db=$this->savdb; $db=$this->savdb;
$localobject->note='New note after update'; $localobject->note='New note after update';
$result=$localobject->update(); $result=$localobject->update($user);
print __METHOD__." id=".$localobject->id." result=".$result."\n";
$this->assertLessThan($result, 0);
return $localobject;
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
* @depends testFactureUpdate
* @covers Facture::set_valid
* The depends says test is run only if previous is ok
*/
public function testFactureValid($localobject)
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$result=$localobject->set_valid($user);
print __METHOD__." id=".$localobject->id." result=".$result."\n"; print __METHOD__." id=".$localobject->id." result=".$result."\n";
$this->assertLessThan($result, 0); $this->assertLessThan($result, 0);
return $localobject->id;
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
* @depends testFactureValid
* @covers Facture::delete
* The depends says test is run only if previous is ok
*/
public function testFactureDelete($id)
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$localobject=new Facture($this->savdb);
$result=$localobject->fetch($id);
$result=$localobject->delete($id);
print __METHOD__." id=".$id." result=".$result."\n";
$this->assertLessThan($result, 0);
return $result; return $result;
} }
} }
?> ?>
\ No newline at end of file
<?php <?php
/* Copyright (C) 2010 Laurent Destailleur <eldy@users.sourceforge.net> global $conf,$user,$langs,$db;
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/**
* \file test/FactureTestSuite.php
* \ingroup test
* \brief This file is an example for a PHPUnit test
* \version $Id$
* \remarks To run this script as CLI: phpunit filename.php
*/
require_once 'PHPUnit/Framework.php'; require_once 'PHPUnit/Framework.php';
require_once dirname(__FILE__).'/../htdocs/master.inc.php'; require_once dirname(__FILE__).'/../htdocs/master.inc.php';
require_once dirname(__FILE__).'/FactureTest.php'; require_once dirname(__FILE__).'/FactureTest.php';
require_once dirname(__FILE__).'/PropalTest.php';
require_once dirname(__FILE__).'/CommandeTest.php';
print "Load permissions for admin user with login 'admin'\n";
$user->fetch('admin');
$user->getrights();
class MyTestSuite extends PHPUnit_Framework_TestSuite
{
protected $savconf;
protected $savuser;
protected $savlangs;
protected $savdb;
protected function setUp() /**
* Class for the All test suite
*/
class MyTestSuite
{ {
//$this->sharedFixture public static function suite()
global $conf,$user,$langs,$db;
print __METHOD__." db->type=".$db->type." user->id=".$user->id;
//print " - db ".$db->db;
print "\n";
$this->savconf=$conf;
$this->savuser=$user;
$this->savlangs=$langs;
$this->savdb=$db;
$db->begin();
//print "TO=".$db->transaction_opened;
}
protected function tearDown()
{ {
global $conf,$langs,$db,$user; $suite = new PHPUnit_Framework_TestSuite('PHPUnit Framework');
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
print __METHOD__."\n";
//print $db->getVersion(); // Uncomment this to know if db handler is still working
//print "TO=".$db->transaction_opened;
$db->rollback();
}
$suite->addTestSuite('FactureTest');
$suite->addTestSuite('PropalTest');
$suite->addTestSuite('CommandeTest');
public static function suite() return $suite;
{
return new MyTestSuite('FactureTest');
} }
} }
?> ?>
\ No newline at end of file
<?php
/* Copyright (C) 2010 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/**
* \file test/PropalTest.php
* \ingroup test
* \brief This file is an example for a PHPUnit test
* \version $Id$
* \remarks To run this script as CLI: phpunit filename.php
*/
global $conf,$user,$langs,$db;
//define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver
require_once 'PHPUnit/Framework.php';
require_once dirname(__FILE__).'/../htdocs/master.inc.php';
require_once dirname(__FILE__).'/../htdocs/comm/propal/propal.class.php';
print "Load permissions for admin user with login 'admin'\n";
$user->fetch('admin');
$user->getrights();
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
*/
class PropalTest extends PHPUnit_Framework_TestCase
{
protected $savconf;
protected $savuser;
protected $savlangs;
protected $savdb;
/**
* Constructor
* We save global variables into local variables
*
* @return PropalTest
*/
function PropalTest()
{
//$this->sharedFixture
global $conf,$user,$langs,$db;
$this->savconf=$conf;
$this->savuser=$user;
$this->savlangs=$langs;
$this->savdb=$db;
print __METHOD__." db->type=".$db->type." user->id=".$user->id;
//print " - db ".$db->db;
print "\n";
}
// Static methods
public static function setUpBeforeClass()
{
global $conf,$user,$langs,$db;
print __METHOD__."\n";
if (! $db->transaction_opened) $db->begin(); // This is to have all actions inside a transaction even if test launched without suite.
}
public static function tearDownAfterClass()
{
global $conf,$user,$langs,$db;
print __METHOD__."\n";
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
*/
protected function setUp()
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
print __METHOD__."\n";
//print $db->getVersion()."\n";
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
*/
protected function tearDown()
{
print __METHOD__."\n";
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
* @covers Propal::create
*/
public function testPropalCreate()
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$localobject=new Propal($this->savdb);
$localobject->initAsSpecimen();
$result=$localobject->create($user);
$this->assertLessThan($result, 0);
print __METHOD__." result=".$result."\n";
return $result;
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
* @depends testPropalCreate
* @covers Propal::fetch
* The depends says test is run only if previous is ok
*/
public function testPropalFetch($id)
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$localobject=new Propal($this->savdb);
$result=$localobject->fetch($id);
$this->assertLessThan($result, 0);
print __METHOD__." id=".$id." result=".$result."\n";
return $localobject;
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
* @depends testPropalFetch
* @covers Propal::update
* The depends says test is run only if previous is ok
*/
/* public function testPropalUpdate($localobject)
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$localobject->note='New note after update';
$result=$localobject->update($user);
print __METHOD__." id=".$localobject->id." result=".$result."\n";
$this->assertLessThan($result, 0);
return $localobject->id;
}
*/
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
* @depends testPropalFetch
* @covers Propal::valid
* The depends says test is run only if previous is ok
*/
public function testPropalValid($localobject)
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$result=$localobject->valid($user);
print __METHOD__." id=".$localobject->id." result=".$result."\n";
$this->assertLessThan($result, 0);
return $localobject->id;
}
/**
* @backupGlobals enabled
* @backupStaticAttributes enabled
* @depends testPropalValid
* @covers Propal::delete
* The depends says test is run only if previous is ok
*/
public function testPropalDelete($id)
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$localobject=new Propal($this->savdb);
$result=$localobject->fetch($id);
$result=$localobject->delete($user);
print __METHOD__." id=".$id." result=".$result."\n";
$this->assertLessThan($result, 0);
return $result;
}
}
?>
\ No newline at end of file
...@@ -6,14 +6,17 @@ To use them, you must: ...@@ -6,14 +6,17 @@ To use them, you must:
* Install PHPUnit * Install PHPUnit
If using Eclipse, you must also add an entry as external tool for phpunit programm with: If using Eclipse, you must also add an entry as external tool for phpunit programm with:
-Name: PHPUnit -Name: PHPUnit
-Location: /usr/bin/php -Location: Linux: /usr/bin/php
Windows: C:\Program Files (x86)\wamp\bin\php\php5.2.8\php.exe
-Workspace: ${workspace_loc} -Workspace: ${workspace_loc}
-Arguments: /usr/bin/phpunit ${resource_path} -Arguments: Linux: /usr/bin/phpunit ${resource_path}
Windows: "C:\Program Files (x86)\PHPUnit-3.4.9\phpunit.php" ${resource_path}
* Run unit tests: * Run Unit tests:
Run > phpunit TestFile.php Run > phpunit TestFile.php
If using Eclipse, select the test and click on menu "Run external tools and choose PHPUnit". If using Eclipse, select the test and click on menu "Run external tools and choose PHPUnit".
* List code coverage by unit tests: * Generate a report of Unit tests code coverage:
Run > phpunit --coverage-html ./report TestFile.php Run > phpunit --coverage-html ./report MyTestSuite.php
Note that xdebug must be installed for this feature to work. Note that xdebug must be installed for this feature to work.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment