Improve HttpInput::extract , the array is set and not passed anymore
This commit is contained in:
parent
5d70f21dfa
commit
0142c9cb93
9 changed files with 353 additions and 55 deletions
|
|
@ -56,7 +56,7 @@ switch ($op)
|
||||||
catch (Exception $e)
|
catch (Exception $e)
|
||||||
{
|
{
|
||||||
record_log($e);
|
record_log($e);
|
||||||
echo span($e->getMessage(), ' class="notice"');
|
echo span($e->getMessage(), ' class="warning"');
|
||||||
Anc_Key::display_list();
|
Anc_Key::display_list();
|
||||||
Anc_Key::key_add();
|
Anc_Key::key_add();
|
||||||
}
|
}
|
||||||
|
|
@ -70,7 +70,7 @@ switch ($op)
|
||||||
}
|
}
|
||||||
catch (Exception $e)
|
catch (Exception $e)
|
||||||
{
|
{
|
||||||
echo span($e->getMessage(), ' class="notice"');
|
echo span($e->getMessage(), ' class="warning"');
|
||||||
}
|
}
|
||||||
Anc_Key::display_list();
|
Anc_Key::display_list();
|
||||||
Anc_Key::key_add();
|
Anc_Key::key_add();
|
||||||
|
|
|
||||||
|
|
@ -755,8 +755,9 @@ class Acc_Ledger extends jrn_def_sql
|
||||||
|
|
||||||
$ret.="</tr>";
|
$ret.="</tr>";
|
||||||
}
|
}
|
||||||
$currency_code=$http->extract($p_array,"p_currency_code","number");
|
$http->set_array($p_array);
|
||||||
$currency_rate=$http->extract($p_array,"p_currency_rate","number");
|
$currency_code=$http->extract("p_currency_code","number");
|
||||||
|
$currency_rate=$http->extract("p_currency_rate","number");
|
||||||
$currency=new Acc_Currency($this->db,$currency_code);
|
$currency=new Acc_Currency($this->db,$currency_code);
|
||||||
$msg_currency= ($currency_code != 0 )?sprintf(_("Totaux %s (%s)"),$currency->get_code(),$currency_rate):_("Totaux");
|
$msg_currency= ($currency_code != 0 )?sprintf(_("Totaux %s (%s)"),$currency->get_code(),$currency_rate):_("Totaux");
|
||||||
|
|
||||||
|
|
@ -765,7 +766,7 @@ class Acc_Ledger extends jrn_def_sql
|
||||||
// Currency
|
// Currency
|
||||||
if ( $currency_code != 0)
|
if ( $currency_code != 0)
|
||||||
{
|
{
|
||||||
$currency_rate=$http->extract($p_array,"p_currency_rate","number");
|
$currency_rate=$http->extract("p_currency_rate","number");
|
||||||
$default_currency=new Acc_Currency($this->db,0);
|
$default_currency=new Acc_Currency($this->db,0);
|
||||||
|
|
||||||
$ret.=tr(td('').
|
$ret.=tr(td('').
|
||||||
|
|
@ -1102,13 +1103,14 @@ class Acc_Ledger extends jrn_def_sql
|
||||||
$tot_cred=0;
|
$tot_cred=0;
|
||||||
$tot_deb=0;
|
$tot_deb=0;
|
||||||
$msg=array();
|
$msg=array();
|
||||||
|
$http->set_array($p_array);
|
||||||
/* Check currency : rate cannot be equal to 0 */
|
/* Check currency : rate cannot be equal to 0 */
|
||||||
$currency_rate=$http->extract($p_array,"p_currency_rate","number");
|
$currency_rate=$http->extract("p_currency_rate","number");
|
||||||
if ( $currency_rate <=0 ) {
|
if ( $currency_rate <=0 ) {
|
||||||
throw new Exception(_("Taux de conversion doit être supérieur à 0"),3);
|
throw new Exception(_("Taux de conversion doit être supérieur à 0"),3);
|
||||||
}
|
}
|
||||||
/* Check currency : Does the currency parameter exist */
|
/* Check currency : Does the currency parameter exist */
|
||||||
$currency_code=$http->extract($p_array,"p_currency_code","number");
|
$currency_code=$http->extract("p_currency_code","number");
|
||||||
$currency=new Acc_Currency($this->db,$currency_code);
|
$currency=new Acc_Currency($this->db,$currency_code);
|
||||||
|
|
||||||
$this->check_currency_setting($currency_code);
|
$this->check_currency_setting($currency_code);
|
||||||
|
|
@ -1321,8 +1323,9 @@ class Acc_Ledger extends jrn_def_sql
|
||||||
$count=0;
|
$count=0;
|
||||||
|
|
||||||
// currency
|
// currency
|
||||||
$currency_code=$http->extract($p_array, "p_currency_code","number",0);
|
$http->set_array($p_array);
|
||||||
$currency_rate=$http->extract($p_array, "p_currency_rate","number",1);
|
$currency_code=$http->extract( "p_currency_code","number",0);
|
||||||
|
$currency_rate=$http->extract( "p_currency_rate","number",1);
|
||||||
$currency_rate_ref=new Acc_Currency($this->db, $currency_code);
|
$currency_rate_ref=new Acc_Currency($this->db, $currency_code);
|
||||||
|
|
||||||
for ($i=0; $i<$nb_item; $i++)
|
for ($i=0; $i<$nb_item; $i++)
|
||||||
|
|
|
||||||
|
|
@ -40,14 +40,14 @@ class Anc_Key
|
||||||
|
|
||||||
private $key; /*! the distribution key */
|
private $key; /*! the distribution key */
|
||||||
/**
|
/**
|
||||||
* Return the number of keys available.
|
*@brief Return the number of keys available.
|
||||||
* Return the number of keys available for the ledger given in parameter
|
* Return the number of keys available for the ledger given in parameter
|
||||||
*
|
*
|
||||||
* @global $cn database connection
|
* @global $cn database connection
|
||||||
* @param $p_jrn number of the ledger (jrn_def.jrn_def_id
|
* @param $p_jrn number of the ledger (jrn_def.jrn_def_id
|
||||||
* @return number of available keys
|
* @return number of available keys
|
||||||
*/
|
*/
|
||||||
static function key_avaiable($p_jrn)
|
static function key_available($p_jrn)
|
||||||
{
|
{
|
||||||
global $cn;
|
global $cn;
|
||||||
$count=$cn->get_value (' select count(*)
|
$count=$cn->get_value (' select count(*)
|
||||||
|
|
@ -65,8 +65,18 @@ class Anc_Key
|
||||||
$this->a_activity=null;
|
$this->a_activity=null;
|
||||||
$this->a_row=null;
|
$this->a_row=null;
|
||||||
}
|
}
|
||||||
|
public function get_key()
|
||||||
|
{
|
||||||
|
return $this->key;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
public function set_key($key)
|
||||||
|
{
|
||||||
|
$this->key=$key;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
* @brief display list of available keys
|
* @brief display list of available keys
|
||||||
* @param $p_amount amount to distribute
|
* @param $p_amount amount to distribute
|
||||||
* @param $p_target target to update
|
* @param $p_target target to update
|
||||||
|
|
@ -142,7 +152,11 @@ class Anc_Key
|
||||||
*/
|
*/
|
||||||
function verify($p_array)
|
function verify($p_array)
|
||||||
{
|
{
|
||||||
$a_percent=$p_array['percent'];
|
$http=new HttpInput();
|
||||||
|
$http->set_array($p_array);
|
||||||
|
|
||||||
|
$a_percent=$http->extract('percent',"array");
|
||||||
|
|
||||||
if (count($a_percent)==0)
|
if (count($a_percent)==0)
|
||||||
{
|
{
|
||||||
throw new Exception(_('Aucune répartition'));
|
throw new Exception(_('Aucune répartition'));
|
||||||
|
|
@ -157,7 +171,8 @@ class Anc_Key
|
||||||
{
|
{
|
||||||
throw new Exception(_('Le total ne vaut pas 100, total calculé = ').$tot_percent);
|
throw new Exception(_('Le total ne vaut pas 100, total calculé = ').$tot_percent);
|
||||||
}
|
}
|
||||||
if ($p_array['name_key']=='') {
|
|
||||||
|
if (trim($http->extract('name_key'))=='') {
|
||||||
throw new Exception (_('Le nom ne peut être vide'));
|
throw new Exception (_('Le nom ne peut être vide'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -179,6 +194,8 @@ class Anc_Key
|
||||||
* @verbatim
|
* @verbatim
|
||||||
|
|
||||||
'key_id' => string '1' (length=1)
|
'key_id' => string '1' (length=1)
|
||||||
|
"name_key" => "name"
|
||||||
|
"description_key" => "description"
|
||||||
'row' =>
|
'row' =>
|
||||||
array
|
array
|
||||||
0 => string '1' (length=1)
|
0 => string '1' (length=1)
|
||||||
|
|
@ -220,16 +237,18 @@ class Anc_Key
|
||||||
$this->verify($p_array);
|
$this->verify($p_array);
|
||||||
$cn->start();
|
$cn->start();
|
||||||
// for each row
|
// for each row
|
||||||
$a_row=$p_array['row'];
|
|
||||||
$http=new HttpInput();
|
$http=new HttpInput();
|
||||||
$a_ledger=$http->extract($p_array,"jrn","string",array());
|
$http->set_array($p_array);
|
||||||
$a_percent=$p_array['percent'];
|
|
||||||
$a_po_id=$p_array['po_id'];
|
$a_row=$http->extract('row',"array");
|
||||||
$a_plan=$p_array['pa'];
|
$a_ledger=$http->extract("jrn","string",array());
|
||||||
|
$a_percent=$http->extract('percent',"array",[]);
|
||||||
|
$a_po_id=$http->extract('po_id',"array",[]);
|
||||||
|
$a_plan=$http->extract('pa',"array",[]);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$this->key->setp('name',$p_array['name_key']);
|
$this->key->setp('name',$http->extract('name_key'));
|
||||||
$this->key->setp('description',$p_array['description_key']);
|
$this->key->setp('description',$http->extract('description_key'));
|
||||||
$this->key->save();
|
$this->key->save();
|
||||||
for ($i=0; $i<count($a_row); $i++)
|
for ($i=0; $i<count($a_row); $i++)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -200,11 +200,12 @@ $order
|
||||||
* Check needed info
|
* Check needed info
|
||||||
*/
|
*/
|
||||||
$http=new HttpInput();
|
$http=new HttpInput();
|
||||||
$p_nom_mod = $http->extract($array,'nom_mod',"string","");
|
$http->set_array($array);
|
||||||
$p_fd_description = $http->extract($array,'fd_description',"string", "");
|
$p_nom_mod = $http->extract('nom_mod',"string","");
|
||||||
$p_class_base=$http->extract($array,'class_base',"string", "");
|
$p_fd_description = $http->extract('fd_description',"string", "");
|
||||||
$p_fiche_def= $http->extract($array,'FICHE_REF',"string", "");
|
$p_class_base=$http->extract('class_base',"string", "");
|
||||||
$p_create= $http->extract($array,'create',"string", "off");
|
$p_fiche_def= $http->extract('FICHE_REF',"string", "");
|
||||||
|
$p_create= $http->extract('create',"string", "off");
|
||||||
|
|
||||||
// If there is no description then add a empty one
|
// If there is no description then add a empty one
|
||||||
if ( ! isset ($p_fd_description)) {
|
if ( ! isset ($p_fd_description)) {
|
||||||
|
|
|
||||||
|
|
@ -955,23 +955,24 @@ class Follow_Up
|
||||||
{
|
{
|
||||||
global $g_user;
|
global $g_user;
|
||||||
$http=new HttpInput();
|
$http=new HttpInput();
|
||||||
$this->ag_id=$http->extract($p_array,"ag_id","number",0);
|
$http->set_array($p_array);
|
||||||
$this->ag_ref=$http->extract($p_array,"ag_ref","string","");
|
$this->ag_id=$http->extract("ag_id","number",0);
|
||||||
$this->qcode_dest=$http->extract($p_array,"qcode_dest","string","");
|
$this->ag_ref=$http->extract("ag_ref","string","");
|
||||||
$this->f_id_dest=$http->extract($p_array,"f_id_dest","string",null);
|
$this->qcode_dest=$http->extract("qcode_dest","string","");
|
||||||
$this->ag_timestamp=$http->extract($p_array,"ag_timestamp","string",date('d.m.Y'));
|
$this->f_id_dest=$http->extract("f_id_dest","string",null);
|
||||||
$this->dt_id=$http->extract($p_array,"dt_id","string","");
|
$this->ag_timestamp=$http->extract("ag_timestamp","string",date('d.m.Y'));
|
||||||
$this->ag_state=$http->extract($p_array,"ag_state","number",2);
|
$this->dt_id=$http->extract("dt_id","string","");
|
||||||
$this->ag_title=$http->extract($p_array,"ag_title","string","");
|
$this->ag_state=$http->extract("ag_state","number",2);
|
||||||
$this->ag_hour=$http->extract($p_array,"ag_hour","string","");
|
$this->ag_title=$http->extract("ag_title","string","");
|
||||||
$this->ag_dest=$http->extract($p_array,"ag_dest","string",$g_user->get_profile());
|
$this->ag_hour=$http->extract("ag_hour","string","");
|
||||||
$this->ag_priority=$http->extract($p_array,"ag_priority","string","2");
|
$this->ag_dest=$http->extract("ag_dest","string",$g_user->get_profile());
|
||||||
$this->ag_contact=$http->extract($p_array,"ag_contact","string","");
|
$this->ag_priority=$http->extract("ag_priority","string","2");
|
||||||
$this->ag_comment=$http->extract($p_array,"ag_comment","string","");
|
$this->ag_contact=$http->extract("ag_contact","string","");
|
||||||
$this->ag_description=$http->extract($p_array,"ag_description","string","");
|
$this->ag_comment=$http->extract("ag_comment","string","");
|
||||||
$this->ag_remind_date=$http->extract($p_array,"ag_remind_date","string",null);
|
$this->ag_description=$http->extract("ag_description","string","");
|
||||||
$this->operation=$http->extract($p_array,"operation","string",null);
|
$this->ag_remind_date=$http->extract("ag_remind_date","string",null);
|
||||||
$this->action=$http->extract($p_array,"action","string",null);
|
$this->operation=$http->extract("operation","string",null);
|
||||||
|
$this->action=$http->extract("action","string",null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -252,23 +252,24 @@ class HttpInput
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @brief Retrieve from $p_array
|
* @brief Retrieve from $p_array,
|
||||||
* @param $p_array source
|
|
||||||
* @param $p_name name of the variable
|
* @param $p_name name of the variable
|
||||||
* @param $p_type type of the variable , opt. default string
|
* @param $p_type type of the variable , opt. default string
|
||||||
* @param $p_default default value is variable is not set
|
* @param $p_default default value is variable is not set
|
||||||
* @throws Exception if invalid
|
* @throws Exception if invalid
|
||||||
*/
|
*/
|
||||||
function extract($p_array, $p_name, $p_type="string", $p_default="")
|
function extract( $p_name, $p_type="string", $p_default="")
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$this->array=$p_array;
|
if ( $this->array === null ) {
|
||||||
if (func_num_args()==2)
|
throw new Exception( _("HTTP266:array not set")) ;
|
||||||
|
}
|
||||||
|
if (func_num_args()==1)
|
||||||
return $this->get_value($p_name);
|
return $this->get_value($p_name);
|
||||||
if (func_num_args()==3)
|
if (func_num_args()==2)
|
||||||
return $this->get_value($p_name, $p_type);
|
return $this->get_value($p_name, $p_type);
|
||||||
if (func_num_args()==4)
|
if (func_num_args()==3)
|
||||||
return $this->get_value($p_name, $p_type, $p_default);
|
return $this->get_value($p_name, $p_type, $p_default);
|
||||||
}
|
}
|
||||||
catch (Exception $exc)
|
catch (Exception $exc)
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ class Anc_KeyTest extends TestCase
|
||||||
*/
|
*/
|
||||||
protected function setUp()
|
protected function setUp()
|
||||||
{
|
{
|
||||||
$this->object=new Anc_Key;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -29,6 +29,73 @@ class Anc_KeyTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
static function setUpBeforeClass()
|
||||||
|
{
|
||||||
|
// require_once 'global.php';
|
||||||
|
//
|
||||||
|
// global $g_connection;
|
||||||
|
// $g_connection=Dossier::connect();
|
||||||
|
|
||||||
|
}
|
||||||
|
static function tearDownAfterClass()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief test Key Available and save
|
||||||
|
* @global type $g_connection
|
||||||
|
* @global type $cn
|
||||||
|
* @covers Anc_Key::key_available Anc_Key::save
|
||||||
|
*/
|
||||||
|
function testKeyAvailable()
|
||||||
|
{
|
||||||
|
require_once 'global.php';
|
||||||
|
|
||||||
|
global $g_connection,$cn;
|
||||||
|
$cn=Dossier::connect();
|
||||||
|
|
||||||
|
// create several key
|
||||||
|
$key1=new Anc_Key(-1);
|
||||||
|
$key2=new Anc_Key(-1);
|
||||||
|
|
||||||
|
$key1->save(array(
|
||||||
|
"key"=>-1,
|
||||||
|
'name_key'=>'Test.Key1',
|
||||||
|
"description_key"=>"Description de la clef",
|
||||||
|
"row"=>[-1,-1,-1,-1],
|
||||||
|
"pa"=>[1],
|
||||||
|
"po_id"=>array(
|
||||||
|
[1],
|
||||||
|
[2],
|
||||||
|
[3],
|
||||||
|
[4],
|
||||||
|
),
|
||||||
|
"percent"=>[10,20,30,40],
|
||||||
|
"jrn"=>[1,152,83]
|
||||||
|
));
|
||||||
|
$key2->save(array(
|
||||||
|
"key"=>-1,
|
||||||
|
'name_key'=>'Test.Key2',
|
||||||
|
"description_key"=>"Description de la clef",
|
||||||
|
"row"=>[-1,-1,-1,-1],
|
||||||
|
"pa"=>[1],
|
||||||
|
"po_id"=>array(
|
||||||
|
[1],
|
||||||
|
[2],
|
||||||
|
[3],
|
||||||
|
[4],
|
||||||
|
),
|
||||||
|
"percent"=>[10,20,30,40],
|
||||||
|
"jrn"=>[152]
|
||||||
|
));
|
||||||
|
$this->assertGreaterThan(-1,$key1->get_key()->getp("id")," Key not created");
|
||||||
|
$this->assertEquals(1,$key1::key_available(1),"Ledger 1 incorrect number of key");
|
||||||
|
$this->assertEquals(2,$key1::key_available(152),"Ledger 152 incorrect number of key");
|
||||||
|
$this->assertEquals(1,$key1::key_available(83),"Ledger 83 incorrect number of key");
|
||||||
|
$this->assertEquals(0,$key1::key_available(2),"Ledger 2 incorrect number of key");
|
||||||
|
$key1->delete();
|
||||||
|
$key2->delete();
|
||||||
|
$this->assertEquals(1,$cn->get_value("select count(*) from key_distribution"),"ANC_KEY Cannot delete keys");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
201
unit-test/include/class/fiche_def.Test.php
Normal file
201
unit-test/include/class/fiche_def.Test.php
Normal file
|
|
@ -0,0 +1,201 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of NOALYSS.
|
||||||
|
*
|
||||||
|
* PhpCompta 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.
|
||||||
|
*
|
||||||
|
* PhpCompta 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 PhpCompta; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
// Copyright (2002-2021) Author Dany De Bontridder <danydb@noalyss.eu>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* @brief PHPUNIT test the class fiche_def
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Fiche_Def
|
||||||
|
* @backupGlobals enabled
|
||||||
|
*/
|
||||||
|
class Fiche_DefTest extends Testcase
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $fiche_def;
|
||||||
|
|
||||||
|
static function setUpBeforeClass()
|
||||||
|
{
|
||||||
|
require_once 'global.php';
|
||||||
|
|
||||||
|
global $g_connection;
|
||||||
|
$g_connection=Dossier::connect();
|
||||||
|
$fd_id=$g_connection->get_value("select fd_id from fiche_def where fd_label=$1", ["Test.card"]);
|
||||||
|
if ($g_connection->count()>0)
|
||||||
|
{
|
||||||
|
// clean
|
||||||
|
$g_connection->exec_sql("delete from fiche_detail
|
||||||
|
where f_id in (select f_id from fiche where fd_id=$1)", [$fd_id]);
|
||||||
|
$g_connection->exec_sql("delete from fiche where fd_id=$1", [$fd_id]);
|
||||||
|
$g_connection->exec_sql("delete from jnt_fic_attr where fd_id=$1", [$fd_id]);
|
||||||
|
$g_connection->exec_sql("delete from fiche_def where fd_id=$1", [$fd_id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// add to this new categorie all the possible attributes
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief clean after testing it
|
||||||
|
* @global type $g_connection
|
||||||
|
*/
|
||||||
|
static function tearDownAfterClass()
|
||||||
|
{
|
||||||
|
require_once 'global.php';
|
||||||
|
global $g_connection;
|
||||||
|
$g_connection=Dossier::connect();
|
||||||
|
$fd_id=$g_connection->get_value("select fd_id from fiche_def where fd_label=$1", ["Test.card"]);
|
||||||
|
if ($g_connection->count()>0)
|
||||||
|
{
|
||||||
|
// clean
|
||||||
|
$g_connection->exec_sql("delete from fiche_detail
|
||||||
|
where f_id in (select f_id from fiche where fd_id=$1)", [$fd_id]);
|
||||||
|
$g_connection->exec_sql("delete from fiche where fd_id=$1", [$fd_id]);
|
||||||
|
$g_connection->exec_sql("delete from jnt_fic_attr where fd_id=$1", [$fd_id]);
|
||||||
|
$g_connection->exec_sql("delete from fiche_def where fd_id=$1", [$fd_id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
protected function setUp()
|
||||||
|
{
|
||||||
|
include 'global.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
function testCreateNewCategory()
|
||||||
|
{
|
||||||
|
global $g_connection;
|
||||||
|
// create a category of card, type Charges
|
||||||
|
$fiche_def=new Fiche_Def($g_connection);
|
||||||
|
$aParam=["nom_mod"=>"Test.card", "fd_description"=>'PHPUNIT test', 'class_base'=>'600', 'FICHE_REF'=>3,
|
||||||
|
'create'=>'on'];
|
||||||
|
$this->assertEquals($fiche_def->id, 0, 'Before created');
|
||||||
|
|
||||||
|
$fiche_def->add($aParam);
|
||||||
|
|
||||||
|
$this->assertLessThan($fiche_def->id, 0, 'After created');
|
||||||
|
|
||||||
|
$this->assertEquals($g_connection->get_value("select count(*) from fiche_def where fd_id=$1", [$fiche_def->id]),
|
||||||
|
1, "Category created");
|
||||||
|
$this->fiche_def=$fiche_def;
|
||||||
|
}
|
||||||
|
function getFicheDef()
|
||||||
|
{
|
||||||
|
global $g_connection;
|
||||||
|
$fd_id=$g_connection->get_value("select fd_id from fiche_def where fd_label=$1", ["Test.card"]);
|
||||||
|
$this->assertNotEquals($g_connection->count(),0,"Card category NOT found") ;
|
||||||
|
$fiche_def=new Fiche_Def($g_connection,$fd_id);
|
||||||
|
$this->fiche_def=$fiche_def;
|
||||||
|
return $fiche_def;
|
||||||
|
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @covers hasAttribute
|
||||||
|
* @testdox Test the Fiche_Def->hasAttribute function
|
||||||
|
*/
|
||||||
|
function testHasAttribute()
|
||||||
|
{
|
||||||
|
global $g_connection;
|
||||||
|
$fiche_def=$this->getFicheDef();
|
||||||
|
$aProperty=$g_connection->get_array("select ad_id from jnt_fic_attr where fd_id=$1", [$fiche_def->id]);
|
||||||
|
$this->assertFalse(empty($aProperty),"default attribute created");
|
||||||
|
$this->assertGreaterThan(0, count($aProperty));
|
||||||
|
foreach ($aProperty as $row)
|
||||||
|
{
|
||||||
|
$this->assertTrue($this->fiche_def->HasAttribute($row['ad_id']),
|
||||||
|
$row['ad_id'] ."this attribute is supposed to exist");
|
||||||
|
}
|
||||||
|
$aProperty=$g_connection->get_array("select distinct ad_id from jnt_fic_attr where
|
||||||
|
ad_id not in ( select ad_id from jnt_fic_attr where
|
||||||
|
fd_id=$1)",
|
||||||
|
[$this->fiche_def->id]);
|
||||||
|
foreach ($aProperty as $row)
|
||||||
|
{
|
||||||
|
$this->assertFalse($this->fiche_def->HasAttribute($row['ad_id']),
|
||||||
|
$row['ad_id'] ." this attribute does not exist");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @testdox Add new Attributes and remove them
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function testAddNewAttribute()
|
||||||
|
{
|
||||||
|
global $g_connection;
|
||||||
|
$fiche_def=$this->getFicheDef();
|
||||||
|
$aProperty=$g_connection->get_array("select distinct ad_id from jnt_fic_attr where
|
||||||
|
ad_id not in ( select ad_id from jnt_fic_attr where
|
||||||
|
fd_id=$1)",
|
||||||
|
[$this->fiche_def->id]);
|
||||||
|
foreach ($aProperty as $row)
|
||||||
|
{
|
||||||
|
$this->assertFalse($this->fiche_def->HasAttribute($row['ad_id']), $row['ad_id'] ." not existing attribute");
|
||||||
|
$fiche_def->insertAttribut($row['ad_id']);
|
||||||
|
$this->assertTrue($this->fiche_def->HasAttribute($row['ad_id']), $row['ad_id'] ." is now an existing attribute");
|
||||||
|
|
||||||
|
}
|
||||||
|
foreach($aProperty as $row) {
|
||||||
|
$fiche_def->removeAttribut([ $row['ad_id'] ]);
|
||||||
|
$this->assertFalse($this->fiche_def->HasAttribute($row['ad_id']), $row['ad_id'] ." cannot be removed ");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @testdox getAttribut
|
||||||
|
*/
|
||||||
|
function testGetAttribut()
|
||||||
|
{
|
||||||
|
global $g_connection;
|
||||||
|
$fiche_def=$this->getFicheDef();
|
||||||
|
|
||||||
|
$aProperty=$g_connection->get_array("select ad_id from jnt_fic_attr where fd_id=$1", [$fiche_def->id]);
|
||||||
|
$this->assertEquals(count($fiche_def->getAttribut()),count($aProperty)," number of property different in db and function getAttribut");
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @testdox if we insert a attribut ; all the cards from this category will have these attributes
|
||||||
|
*/
|
||||||
|
function testCardAttribute()
|
||||||
|
{
|
||||||
|
global $g_connection;
|
||||||
|
$fiche_def=new Fiche_Def($g_connection,5);
|
||||||
|
$fiche_def->RemoveAttribut([20, 21, 22, 51, 52, 53]);
|
||||||
|
$nbProperty=$g_connection->get_value("select count(ad_id) from jnt_fic_attr where fd_id=$1", [$fiche_def->id]);
|
||||||
|
$nbCard=$g_connection->get_value("select count(f_id) from fiche where fd_id=$1", [$fiche_def->id]);
|
||||||
|
|
||||||
|
// percent deductible
|
||||||
|
$fiche_def->InsertAttribut(20);
|
||||||
|
$fiche_def->InsertAttribut(21);
|
||||||
|
$fiche_def->InsertAttribut(22);
|
||||||
|
|
||||||
|
// accouting for not deductible
|
||||||
|
$fiche_def->InsertAttribut(51);
|
||||||
|
$fiche_def->InsertAttribut(52);
|
||||||
|
$fiche_def->InsertAttribut(53);
|
||||||
|
|
||||||
|
// check that all card has these attributes
|
||||||
|
$nbAttribut=$nbProperty*$nbCard+$nbCard*6;
|
||||||
|
$this->assertEquals($nbAttribut,
|
||||||
|
$g_connection->get_value("select count(*) from fiche_detail join fiche using (f_id)
|
||||||
|
where fd_id=$1",[$fiche_def->id]), "must have 6 new attributes");
|
||||||
|
|
||||||
|
$fiche_def->RemoveAttribut([20, 21, 22, 51, 52, 53]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -5,6 +5,7 @@ help(){
|
||||||
echo " -d folder to test "
|
echo " -d folder to test "
|
||||||
echo " -i function , optional filter to a function"
|
echo " -i function , optional filter to a function"
|
||||||
echo " -c in the folder coverage , show the coverage"
|
echo " -c in the folder coverage , show the coverage"
|
||||||
|
echo " -x load php.ini file"
|
||||||
}
|
}
|
||||||
|
|
||||||
cd `dirname $0`
|
cd `dirname $0`
|
||||||
|
|
@ -15,8 +16,9 @@ FILETOTEST=""
|
||||||
FUNCTION=""
|
FUNCTION=""
|
||||||
COVERAGE=""
|
COVERAGE=""
|
||||||
FOLDERTEST=""
|
FOLDERTEST=""
|
||||||
|
PHPINI="php "
|
||||||
|
|
||||||
while getopts "f:i:cd:" opt; do
|
while getopts "f:i:cd:x" opt; do
|
||||||
case $opt in
|
case $opt in
|
||||||
d)
|
d)
|
||||||
FOLDERTEST=$OPTARG
|
FOLDERTEST=$OPTARG
|
||||||
|
|
@ -29,6 +31,9 @@ while getopts "f:i:cd:" opt; do
|
||||||
;;
|
;;
|
||||||
c) COVERAGE="--whitelist=../include --coverage-html=coverage"
|
c) COVERAGE="--whitelist=../include --coverage-html=coverage"
|
||||||
;;
|
;;
|
||||||
|
x)
|
||||||
|
PHPINI=$PHPINI" -c php.ini "
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
help
|
help
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -49,7 +54,7 @@ fi
|
||||||
|
|
||||||
if [ ! -z "$FOLDERTEST" -a -d "$FOLDERTEST" ] ; then
|
if [ ! -z "$FOLDERTEST" -a -d "$FOLDERTEST" ] ; then
|
||||||
|
|
||||||
$PHPUNIT --bootstrap bootstrap.php $COVERAGE --testdox --color $FOLDERTEST
|
$PHPINI $PHPUNIT --bootstrap bootstrap.php $COVERAGE --testdox --color $FOLDERTEST
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -60,12 +65,12 @@ fi
|
||||||
|
|
||||||
if [ ! -z "$FUNCTION" ] ; then
|
if [ ! -z "$FUNCTION" ] ; then
|
||||||
echo "testing $FILETOTEST $FUNCTION"
|
echo "testing $FILETOTEST $FUNCTION"
|
||||||
$PHPUNIT --bootstrap $CUR_DIR/bootstrap.php --verbose --color --filter $FUNCTION $FILETOTEST
|
$PHPINI $PHPUNIT --bootstrap $CUR_DIR/bootstrap.php --verbose --color --filter $FUNCTION $FILETOTEST
|
||||||
else
|
else
|
||||||
|
|
||||||
# $PHPUNIT --bootstrap bootstrap.php --whitelist $FILETOTEST --coverage-text=${FILETOTEST%.php}.txt --color $FILETOTEST
|
# $PHPUNIT --bootstrap bootstrap.php --whitelist $FILETOTEST --coverage-text=${FILETOTEST%.php}.txt --color $FILETOTEST
|
||||||
# $PHPUNIT --bootstrap $CUR_DIR/bootstrap.php --whitelist=$CUR_DIR/../include/class --coverage-html=coverage --color $FILETOTEST
|
# $PHPUNIT --bootstrap $CUR_DIR/bootstrap.php --whitelist=$CUR_DIR/../include/class --coverage-html=coverage --color $FILETOTEST
|
||||||
$PHPUNIT --bootstrap bootstrap.php $COVERAGE $FILETOTEST --testdox --color $FILETOTEST
|
$PHPINI $PHPUNIT --bootstrap bootstrap.php $COVERAGE $FILETOTEST --testdox --color $FILETOTEST
|
||||||
#$PHPUNIT --bootstrap bootstrap.php --whitelist=../include --coverage-html=coverage $FILETOTEST --testdox-html ${FILETOTEST%.php}-testdox.html --color $FILETOTEST
|
#$PHPUNIT --bootstrap bootstrap.php --whitelist=../include --coverage-html=coverage $FILETOTEST --testdox-html ${FILETOTEST%.php}-testdox.html --color $FILETOTEST
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue