2010-04-27 13:21:34 +02:00
< ? php
/* Copyright ( C ) 2010 Laurent Destailleur < eldy @ users . sourceforge . net >
2013-01-10 12:26:02 +01:00
* Copyright ( C ) 2013 Marcos García < marcosgdf @ gmail . com >
2010-04-27 13:21:34 +02:00
*
* 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
2013-01-16 15:36:08 +01:00
* the Free Software Foundation ; either version 3 of the License , or
2010-04-27 13:21:34 +02:00
* ( 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
2011-12-17 21:58:44 +01:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
* or see http :// www . gnu . org /
2010-04-27 13:21:34 +02:00
*/
/**
2010-08-16 01:19:46 +02:00
* \file test / phpunit / AdherentTest . php
2010-04-27 13:21:34 +02:00
* \ingroup test
2010-10-03 20:53:40 +02:00
* \brief PHPUnit test
2010-04-27 13:21:34 +02:00
* \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
2014-05-01 19:57:53 +02:00
//require_once 'PHPUnit/Autoload.php';
2010-08-16 01:19:46 +02:00
require_once dirname ( __FILE__ ) . '/../../htdocs/master.inc.php' ;
require_once dirname ( __FILE__ ) . '/../../htdocs/adherents/class/adherent.class.php' ;
2013-06-05 16:12:07 +02:00
require_once dirname ( __FILE__ ) . '/../../htdocs/adherents/class/adherent_type.class.php' ;
2010-04-27 13:21:34 +02:00
if ( empty ( $user -> id ))
{
2010-04-28 09:31:34 +02:00
print " Load permissions for admin user nb 1 \n " ;
$user -> fetch ( 1 );
2010-04-27 13:21:34 +02:00
$user -> getrights ();
}
2010-07-15 01:10:56 +02:00
$conf -> global -> MAIN_DISABLE_ALL_MAILS = 1 ;
2010-04-27 13:21:34 +02:00
/**
2011-09-23 14:21:00 +02:00
* Class for PHPUnit tests
2010-10-26 21:47:19 +02:00
*
2010-04-27 13:21:34 +02:00
* @ backupGlobals disabled
* @ backupStaticAttributes enabled
* @ remarks backupGlobals must be disabled to have db , conf , user and lang not erased .
*/
class AdherentTest extends PHPUnit_Framework_TestCase
{
protected $savconf ;
protected $savuser ;
protected $savlangs ;
protected $savdb ;
/**
* Constructor
* We save global variables into local variables
*
* @ return AdherentTest
*/
2012-07-30 17:17:33 +02:00
function __construct ()
2010-04-27 13:21:34 +02:00
{
//$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 ;
$db -> begin (); // This is to have all actions inside a transaction even if test launched without suite.
2014-05-01 19:17:45 +02:00
if ( ! empty ( $conf -> global -> MAIN_FIRSTNAME_NAME_POSITION )) { print " \n " . __METHOD__ . " Company must be setup to have name-firstname in order 'Firstname Lastname' \n " ; die (); }
2010-04-27 13:21:34 +02:00
print __METHOD__ . " \n " ;
}
public static function tearDownAfterClass ()
{
global $conf , $user , $langs , $db ;
$db -> rollback ();
print __METHOD__ . " \n " ;
}
/**
2012-02-05 19:37:52 +01:00
* Init phpunit tests
*
* @ return void
2010-04-27 13:21:34 +02:00
*/
protected function setUp ()
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
print __METHOD__ . " \n " ;
}
/**
2012-02-05 19:37:52 +01:00
* End phpunit tests
*
* @ return void
2010-04-27 13:21:34 +02:00
*/
protected function tearDown ()
{
print __METHOD__ . " \n " ;
}
2013-06-04 22:52:58 +02:00
/**
* testAdherentTypeCreate
*
* @ return void
*/
public function testAdherentTypeCreate ()
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
$localobject = new AdherentType ( $this -> savdb );
$localobject -> statut = 1 ;
$localobject -> libelle = 'Adherent type test' ;
$localobject -> cotisation = 1 ;
$localobject -> vote = 1 ;
$result = $localobject -> create ( $user );
print __METHOD__ . " result= " . $result . " \n " ;
$this -> assertLessThan ( $result , 0 );
return $localobject -> id ;
}
2013-07-07 13:14:32 +02:00
2010-04-27 13:21:34 +02:00
/**
2012-02-15 13:41:05 +01:00
* testAdherentCreate
*
2013-07-07 13:14:32 +02:00
* @ param int $fk_adherent_type Id type of member
* @ return int
*
2013-06-04 22:52:58 +02:00
* @ depends testAdherentTypeCreate
* The depends says test is run only if previous is ok
2010-04-27 13:21:34 +02:00
*/
2013-06-04 22:52:58 +02:00
public function testAdherentCreate ( $fk_adherent_type )
2010-04-27 13:21:34 +02:00
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
$localobject = new Adherent ( $this -> savdb );
$localobject -> initAsSpecimen ();
2013-06-04 22:52:58 +02:00
$localobject -> typeid = $fk_adherent_type ;
2011-02-13 11:25:13 +01:00
$result = $localobject -> create ( $user );
2010-10-13 21:01:22 +02:00
print __METHOD__ . " result= " . $result . " \n " ;
2010-04-27 13:21:34 +02:00
$this -> assertLessThan ( $result , 0 );
2010-10-13 21:01:22 +02:00
2010-04-27 13:21:34 +02:00
return $result ;
}
/**
2012-02-15 13:41:05 +01:00
* testAdherentFetch
*
2013-01-11 17:13:37 +01:00
* @ param int $id Id of object to fetch
2012-02-15 13:41:05 +01:00
* @ return object Fetched object
*
2010-04-27 13:21:34 +02:00
* @ depends testAdherentCreate
* The depends says test is run only if previous is ok
*/
public function testAdherentFetch ( $id )
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
$localobject = new Adherent ( $this -> savdb );
$result = $localobject -> fetch ( $id );
print __METHOD__ . " id= " . $id . " result= " . $result . " \n " ;
2010-10-13 21:01:22 +02:00
$this -> assertLessThan ( $result , 0 );
return $localobject ;
2010-04-27 13:21:34 +02:00
}
2013-01-12 14:14:36 +01:00
/**
* testAdherentFetchLogin
*
* @ param Adherent $localobject Member instance
* @ return Adherent
*
* @ depends testAdherentFetch
* The depends says test is run only if previous is ok
*/
public function testAdherentFetchLogin ( Adherent $localobject )
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
$newobject = new Adherent ( $this -> savdb );
$result = $newobject -> fetch_login ( $localobject -> login );
$this -> assertEquals ( $newobject , $localobject );
return $localobject ;
}
2010-04-27 13:21:34 +02:00
/**
2012-02-15 13:41:05 +01:00
* testAdherentUpdate
*
* @ param Adherent $localobject Member instance
* @ return Adherent
*
2013-01-12 14:14:36 +01:00
* @ depends testAdherentFetchLogin
2010-04-27 13:21:34 +02:00
* The depends says test is run only if previous is ok
*/
2013-01-10 12:26:02 +01:00
public function testAdherentUpdate ( Adherent $localobject )
2010-04-27 13:21:34 +02:00
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
2013-01-10 12:26:02 +01:00
$timestamp = dol_now ();
2014-05-05 00:23:09 +02:00
$localobject -> civility_id = 0 ;
2011-12-30 14:18:19 +01:00
$localobject -> login = 'newlogin' ;
$localobject -> societe = 'New company' ;
2010-04-27 13:21:34 +02:00
$localobject -> note = 'New note after update' ;
2011-12-30 14:18:19 +01:00
//$localobject->note_public='New note public after update';
$localobject -> lastname = 'New name' ;
$localobject -> firstname = 'New firstname' ;
$localobject -> address = 'New address' ;
$localobject -> zip = 'New zip' ;
$localobject -> town = 'New town' ;
$localobject -> country_id = 2 ;
$localobject -> statut = 0 ;
2013-01-10 12:26:02 +01:00
$localobject -> morphy = 0 ;
2011-12-30 14:18:19 +01:00
$localobject -> phone = 'New tel pro' ;
$localobject -> phone_perso = 'New tel perso' ;
$localobject -> phone_mobile = 'New tel mobile' ;
$localobject -> email = 'newemail@newemail.com' ;
2013-03-13 22:17:03 +01:00
$localobject -> birth = $timestamp ;
2011-12-30 14:18:19 +01:00
$result = $localobject -> update ( $user );
print __METHOD__ . " id= " . $localobject -> id . " result= " . $result . " \n " ;
$this -> assertLessThan ( $result , 0 );
$result = $localobject -> update_note ( $localobject -> note );
print __METHOD__ . " id= " . $localobject -> id . " result= " . $result . " \n " ;
$this -> assertLessThan ( $result , 0 );
//$result=$localobject->update_note_public($localobject->note_public);
//print __METHOD__." id=".$localobject->id." result=".$result."\n";
//$this->assertLessThan($result, 0);
$newobject = new Adherent ( $this -> savdb );
$result = $newobject -> fetch ( $localobject -> id );
print __METHOD__ . " id= " . $localobject -> id . " result= " . $result . " \n " ;
$this -> assertLessThan ( $result , 0 );
2014-05-05 00:23:09 +02:00
$this -> assertEquals ( $localobject -> civility_id , $newobject -> civility_id );
2011-12-30 14:18:19 +01:00
$this -> assertEquals ( $localobject -> login , $newobject -> login );
$this -> assertEquals ( $localobject -> societe , $newobject -> societe );
$this -> assertEquals ( $localobject -> note , $newobject -> note );
//$this->assertEquals($localobject->note_public, $newobject->note_public);
$this -> assertEquals ( $localobject -> lastname , $newobject -> lastname );
$this -> assertEquals ( $localobject -> firstname , $newobject -> firstname );
$this -> assertEquals ( $localobject -> address , $newobject -> address );
$this -> assertEquals ( $localobject -> zip , $newobject -> zip );
$this -> assertEquals ( $localobject -> town , $newobject -> town );
$this -> assertEquals ( $localobject -> country_id , $newobject -> country_id );
$this -> assertEquals ( 'BE' , $newobject -> country_code );
2013-01-11 17:13:37 +01:00
$this -> assertEquals ( 'Belgium' , $newobject -> country );
2011-12-30 14:18:19 +01:00
$this -> assertEquals ( $localobject -> statut , $newobject -> statut );
$this -> assertEquals ( $localobject -> phone , $newobject -> phone );
$this -> assertEquals ( $localobject -> phone_perso , $newobject -> phone_perso );
$this -> assertEquals ( $localobject -> phone_mobile , $newobject -> phone_mobile );
$this -> assertEquals ( $localobject -> email , $newobject -> email );
2013-03-13 22:17:03 +01:00
$this -> assertEquals ( $localobject -> birth , $timestamp );
2013-01-10 12:26:02 +01:00
$this -> assertEquals ( $localobject -> morphy , $newobject -> morphy );
2010-10-13 21:01:22 +02:00
2013-01-11 17:13:37 +01:00
//We return newobject because of new values
return $newobject ;
2010-04-27 13:21:34 +02:00
}
2013-01-10 12:26:02 +01:00
/**
* testAdherentMakeSubstitution
*
* @ param Adherent $localobject Member instance
* @ return Adherent
*
* @ depends testAdherentUpdate
* The depends says test is run only if previous is ok
*/
public function testAdherentMakeSubstitution ( Adherent $localobject )
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
2014-05-05 00:23:09 +02:00
$template = '%DOL_MAIN_URL_ROOT%,%ID%,%CIVILITY%,%FIRSTNAME%,%LASTNAME%,%FULLNAME%,%COMPANY%,' .
2013-03-13 22:17:03 +01:00
'%ADDRESS%,%ZIP%,%TOWN%,%COUNTRY%,%EMAIL%,%BIRTH%,%PHOTO%,%LOGIN%,%PASSWORD%,%PRENOM%,' .
2013-02-25 18:21:12 +01:00
'%NOM%,%SOCIETE%,%ADDRESS%,%ZIP%,%TOWN%,%COUNTRY%' ;
2013-01-10 12:26:02 +01:00
2013-07-02 01:05:10 +02:00
$expected = DOL_MAIN_URL_ROOT . ',' . $localobject -> id . ',,New firstname,New name,New firstname New name,' .
2013-03-13 22:17:03 +01:00
'New company,New address,New zip,New town,Belgium,newemail@newemail.com,' . dol_print_date ( $localobject -> birth , 'day' ) . ',,' .
2013-01-11 17:13:37 +01:00
'newlogin,dolibspec,New firstname,New name,New company,New address,New zip,New town,Belgium' ;
2013-01-10 12:26:02 +01:00
$result = $localobject -> makeSubstitution ( $template );
print __METHOD__ . " result= " . $result . " \n " ;
$this -> assertEquals ( $expected , $result );
return $localobject ;
}
2013-01-11 17:13:37 +01:00
/**
* testAdherentSetUserId
*
* @ param Adherent $localobject Member instance
* @ return Adherent
*
* @ depends testAdherentMakeSubstitution
* The depends says test is run only if previous is ok
*/
public function testAdherentSetUserId ( Adherent $localobject )
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
//We associate member with user
$result = $localobject -> setUserId ( $user -> id );
print __METHOD__ . " id= " . $localobject -> id . " result= " . $result . " \n " ;
$this -> assertEquals ( $result , 1 );
//We update user object
$user -> fetch ( $user -> id );
print __METHOD__ . " user id= " . $user -> id . " fk_member= " . $user -> fk_member . " \n " ;
2013-01-14 09:39:35 +01:00
2013-01-11 17:13:37 +01:00
$this -> assertEquals ( $user -> fk_member , $localobject -> id );
//We remove association with user
$result = $localobject -> setUserId ( 0 );
print __METHOD__ . " id= " . $localobject -> id . " result= " . $result . " \n " ;
$this -> assertEquals ( $result , 1 );
//We update user object
$user -> fetch ( $user -> id );
print __METHOD__ . " user id= " . $user -> id . " fk_member= " . $user -> fk_member . " \n " ;
$this -> assertNull ( $user -> fk_member );
return $localobject ;
}
/**
* testAdherentSetThirdPartyId
*
* @ param Adherent $localobject Member instance
* @ return Adherent
*
* @ depends testAdherentSetUserId
* The depends says test is run only if previous is ok
*/
public function testAdherentSetThirdPartyId ( Adherent $localobject )
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
//Create a Third Party
$thirdparty = new Societe ( $db );
$thirdparty -> initAsSpecimen ();
$result = $thirdparty -> create ( $user );
print __METHOD__ . " id= " . $localobject -> id . " third party id= " . $thirdparty -> id . " result= " . $result . " \n " ;
$this -> assertTrue ( $result > 0 );
//Set Third Party ID
$result = $localobject -> setThirdPartyId ( $thirdparty -> id );
$this -> assertEquals ( $result , 1 );
print __METHOD__ . " id= " . $localobject -> id . " result= " . $result . " \n " ;
//Adherent is updated with new data
$localobject -> fetch ( $localobject -> id );
$this -> assertEquals ( $localobject -> fk_soc , $thirdparty -> id );
print __METHOD__ . " id= " . $localobject -> id . " result= " . $result . " \n " ;
//We remove the third party association
$result = $localobject -> setThirdPartyId ( 0 );
$this -> assertEquals ( $result , 1 );
//And check if it has been updated
$localobject -> fetch ( $localobject -> id );
$this -> assertNull ( $localobject -> fk_soc );
//Now we remove the third party
$result = $thirdparty -> delete ( $thirdparty -> id );
$this -> assertEquals ( $result , 1 );
return $localobject ;
}
2010-04-27 13:21:34 +02:00
/**
2012-02-15 13:41:05 +01:00
* testAdherentValid
*
* @ param Adherent $localobject Member instance
* @ return Adherent
*
2013-01-11 17:13:37 +01:00
* @ depends testAdherentSetThirdPartyId
2010-04-27 13:21:34 +02:00
* The depends says test is run only if previous is ok
*/
2013-01-12 14:14:36 +01:00
public function testAdherentValidate ( Adherent $localobject )
2010-04-27 13:21:34 +02:00
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
$result = $localobject -> validate ( $user );
print __METHOD__ . " id= " . $localobject -> id . " result= " . $result . " \n " ;
$this -> assertLessThan ( $result , 0 );
2010-10-13 21:01:22 +02:00
return $localobject ;
2010-04-27 13:21:34 +02:00
}
2010-10-13 21:01:22 +02:00
/**
2012-02-15 13:41:05 +01:00
* testAdherentOther
*
* @ param Adherent $localobject Member instance
* @ return int Id of object
*
2013-01-12 14:14:36 +01:00
* @ depends testAdherentValidate
2010-10-13 21:01:22 +02:00
* The depends says test is run only if previous is ok
*/
2013-01-10 12:26:02 +01:00
public function testAdherentOther ( Adherent $localobject )
2010-10-13 21:01:22 +02:00
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
/* $result = $localobject -> setstatus ( 0 );
print __METHOD__ . " id= " . $localobject -> id . " result= " . $result . " \n " ;
$this -> assertLessThan ( $result , 0 );
*/
$localobject -> info ( $localobject -> id );
print __METHOD__ . " localobject->date_creation= " . $localobject -> date_creation . " \n " ;
$this -> assertNotEquals ( $localobject -> date_creation , '' );
2013-01-12 14:14:36 +01:00
return $localobject ;
}
/**
* testAdherentResiliate
*
* @ param Adherent $localobject Member instance
* @ return Adherent
*
* @ depends testAdherentOther
* The depends says test is run only if previous is ok
*/
public function testAdherentResiliate ( Adherent $localobject )
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
//Let's resilie un adherent
$result = $localobject -> resiliate ( $user );
print __METHOD__ . " id= " . $localobject -> id . " result= " . $result . " \n " ;
$this -> assertEquals ( $result , 1 );
//Is statut updated?
$this -> assertEquals ( $localobject -> statut , 0 );
//We update the object and let's check if it was updated on DB
$localobject -> fetch ( $localobject -> id );
$this -> assertEquals ( $localobject -> statut , 0 );
//Now that status=0, resiliate should return 0
$result = $localobject -> resiliate ( $user );
print __METHOD__ . " id= " . $localobject -> id . " result= " . $result . " \n " ;
$this -> assertEquals ( $result , 0 );
return $localobject ;
2010-10-13 21:01:22 +02:00
}
/**
2012-02-15 13:41:05 +01:00
* testAdherentDelete
*
2013-01-12 14:14:36 +01:00
* @ param Adherent $localobject Member instance
2012-02-15 13:41:05 +01:00
* @ return void
*
2013-01-12 14:14:36 +01:00
* @ depends testAdherentResiliate
2010-04-27 13:21:34 +02:00
* The depends says test is run only if previous is ok
*/
2013-01-12 14:14:36 +01:00
public function testAdherentDelete ( $localobject )
2010-04-27 13:21:34 +02:00
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
2013-01-12 14:14:36 +01:00
$result = $localobject -> delete ( $localobject -> id );
print __METHOD__ . " id= " . $localobject -> id . " result= " . $result . " \n " ;
2010-10-13 21:01:22 +02:00
$this -> assertLessThan ( $result , 0 );
2014-10-04 17:20:17 +02:00
return $localobject ;
2010-04-27 13:21:34 +02:00
}
2014-10-04 17:20:17 +02:00
/**
* testAdherentTypeDelete
*
* @ param Adherent $localobject Member instance
* @ return void
*
* @ depends testAdherentDelete
* The depends says test is run only if previous is ok
*/
public function testAdherentTypeDelete ( $localobject )
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
$localobjectat = new AdherentType ( $this -> savdb );
$result = $localobjectat -> fetch ( $localobject -> typeid );
$result = $localobjectat -> delete ();
print __METHOD__ . " result= " . $result . " \n " ;
$this -> assertLessThan ( $result , 0 );
return $localobject -> id ;
}
2010-04-27 13:21:34 +02:00
}