From d42fa25d740167d36a258c42e6b13e2977c39b97 Mon Sep 17 00:00:00 2001 From: Dany De Bontridder Date: Sat, 2 Nov 2019 00:56:45 +0100 Subject: [PATCH] TEST : add new files --- unit-test/bootstrap.php.example | 2 +- unit-test/create-dossier-test.sh | 5 +- unit-test/document/fr_be/bnb.form | 3 + unit-test/document/fr_be/bnb.rtf | 0 unit-test/global.php | 6 +- .../class/acc_account_ledgerTest.class.php | 7 +- .../include/class/acc_balanceTest.class.php | 2 +- .../include/class/acc_bilanTest.class.php | 92 ++- .../include/class/acc_ledgerTest.class.php | 731 ++++++++---------- .../class/acc_ledger_finTest.class.php | 49 +- .../acc_ledger_history_purchaseTest.class.php | 61 ++ .../acc_ledger_history_saleTest.class.php | 60 ++ .../class/acc_ledger_infoTest.class.php | 85 ++ .../class/acc_ledger_purchaseTest.class.php | 12 +- unit-test/jrn.csv | 18 + unit-test/test-file.sh | 41 +- 16 files changed, 674 insertions(+), 500 deletions(-) create mode 100644 unit-test/document/fr_be/bnb.form create mode 100644 unit-test/document/fr_be/bnb.rtf create mode 100644 unit-test/include/class/acc_ledger_history_purchaseTest.class.php create mode 100644 unit-test/include/class/acc_ledger_history_saleTest.class.php create mode 100644 unit-test/include/class/acc_ledger_infoTest.class.php create mode 100644 unit-test/jrn.csv diff --git a/unit-test/bootstrap.php.example b/unit-test/bootstrap.php.example index b598df349..11d4906a4 100644 --- a/unit-test/bootstrap.php.example +++ b/unit-test/bootstrap.php.example @@ -24,8 +24,8 @@ require_once '../include/constant.php'; define ("ALLOWED",1); -define ("DOSSIER",26); +ini_set("xdebug.overload_var_dump",0); /** * Class to include, diff --git a/unit-test/create-dossier-test.sh b/unit-test/create-dossier-test.sh index 0526bd615..47884ba16 100755 --- a/unit-test/create-dossier-test.sh +++ b/unit-test/create-dossier-test.sh @@ -1,6 +1,7 @@ #!/bin/bash -DOSSIER_TEST=dossier48 +DOSSIER_TEST=rel70dossier25 -pg_restore -Fc --no-owner --no-privilege --verbose -d $DOSSIER_TEST db/dossiertest.bin +createdb $DOSSIER_TEST +pg_restore -Fc --no-owner --no-privilege --verbose -d $DOSSIER_TEST db/dossiertest191101-2109.bin diff --git a/unit-test/document/fr_be/bnb.form b/unit-test/document/fr_be/bnb.form new file mode 100644 index 000000000..25ad085c2 --- /dev/null +++ b/unit-test/document/fr_be/bnb.form @@ -0,0 +1,3 @@ +$C70=round([70%],2) +$C60=round([60%],2) + diff --git a/unit-test/document/fr_be/bnb.rtf b/unit-test/document/fr_be/bnb.rtf new file mode 100644 index 000000000..e69de29bb diff --git a/unit-test/global.php b/unit-test/global.php index b37fd1c1e..129616692 100644 --- a/unit-test/global.php +++ b/unit-test/global.php @@ -24,10 +24,12 @@ * Global variables */ global $g_connection,$g_parameter,$g_user; +if (!defined("DOSSIER"))define ("DOSSIER",25); + $_REQUEST['gDossier'] = DOSSIER; $g_connection=new Database(DOSSIER); $g_parameter = new Noalyss_Parameter_Folder($g_connection); -$_SESSION['g_user']='phpcompta'; -$_SESSION['g_pass']='dany'; +$_SESSION['g_user']='admin'; +$_SESSION['g_pass']='phpcompta'; $_SESSION['g_pagesize']='50'; $g_user=new User($g_connection); diff --git a/unit-test/include/class/acc_account_ledgerTest.class.php b/unit-test/include/class/acc_account_ledgerTest.class.php index 630b48732..9882b3247 100644 --- a/unit-test/include/class/acc_account_ledgerTest.class.php +++ b/unit-test/include/class/acc_account_ledgerTest.class.php @@ -42,7 +42,8 @@ class Acc_Account_LedgerTest extends TestCase */ public function testGet_row() { - $this->object->get_row(215,235); + $array=$this->object->get_row(92,103); + $this->assertEquals(count($array),3); } /** @@ -256,8 +257,8 @@ class Acc_Account_LedgerTest extends TestCase function dataFind_Card() { return array( - array('6191', '22'), - array('6192', '23'), + array('6191', '27'), + array('6192', '28'), array('4400004', '25') ); } diff --git a/unit-test/include/class/acc_balanceTest.class.php b/unit-test/include/class/acc_balanceTest.class.php index b599945b6..915242dba 100644 --- a/unit-test/include/class/acc_balanceTest.class.php +++ b/unit-test/include/class/acc_balanceTest.class.php @@ -51,7 +51,7 @@ class Acc_BalanceTest extends TestCase $this->assertEquals(14,count($array)); $this->object->jrn=[2,4]; $array=$this->object->get_row($min,$max); - $this->assertEquals(8,count($array)); + $this->assertEquals(7,count($array)); } diff --git a/unit-test/include/class/acc_bilanTest.class.php b/unit-test/include/class/acc_bilanTest.class.php index 85352dd6b..c72baa648 100644 --- a/unit-test/include/class/acc_bilanTest.class.php +++ b/unit-test/include/class/acc_bilanTest.class.php @@ -55,12 +55,12 @@ class Acc_BilanTest extends TestCase */ public function testVerify() { - ob_start(); - $this->object->verify(); - $r=ob_get_contents(); - ob_end_clean(); - - $this->assertStringStartsWith('

',$r); + ob_start(); + $this->object->verify(); + $r=ob_get_contents(); + ob_end_clean(); + + $this->assertStringStartsWith('

',$r); } /** @@ -69,10 +69,13 @@ class Acc_BilanTest extends TestCase */ public function testGet_request_get() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $_GET['b_id']=111; + $_GET['from_periode']=95; + $_GET['to_periode']=100; + $this->object->get_request_get(); + $this->assertEquals($this->object->b_id,111); + $this->assertEquals($this->object->from,95); + $this->assertEquals($this->object->to,100); } /** @@ -81,46 +84,65 @@ class Acc_BilanTest extends TestCase */ public function testLoad() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + + $this->object->b_id=1; + $this->object->load(); + $this->assertEquals($this->object->b_type,'rtf'); + $this->assertEquals($this->object->b_file_form,'document/fr_be/bnb.form'); } /** * @covers Acc_Bilan::file_open_form - * @todo Implement testFile_open_form(). + * */ public function testFile_open_form() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->object->b_id=1; + $this->object->load(); + try { + $file=$this->object->file_open_form(); + $this->assertTrue(TRUE); + } catch(Exception $e) { + echo $e->getTraceAsString(); + $this->assertTrue(FALSE); + } } /** * @covers Acc_Bilan::file_open_template - * @todo Implement testFile_open_template(). + * */ public function testFile_open_template() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->object->b_id=1; + $this->object->load(); + try { + $file=$this->object->file_open_template(); + $this->assertTrue(TRUE); + } catch(Exception $e) { + echo $e->getTraceAsString(); + $this->assertTrue(FALSE); + } } /** * @covers Acc_Bilan::compute_formula - * @todo Implement testCompute_formula(). */ public function testCompute_formula() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->object->b_id=1; + $hFile=fopen("document/fr_be/bnb.form",'r'); + + $this->object->from=92; + $this->object->to=103; + + $this->object->compute_formula($hFile); + + $this->assertTrue(isset($this->object->C70)); + $this->assertTrue(isset($this->object->C60)); + $this->assertEquals($this->object->C70,445.6); + $this->assertEquals($this->object->C60,0); + } /** @@ -171,16 +193,6 @@ class Acc_BilanTest extends TestCase ); } - /** - * @covers Acc_Bilan::test_me - * @todo Implement testTest_me(). - */ - public function testTest_me() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } + } diff --git a/unit-test/include/class/acc_ledgerTest.class.php b/unit-test/include/class/acc_ledgerTest.class.php index 8429f8cda..1e50b480b 100644 --- a/unit-test/include/class/acc_ledgerTest.class.php +++ b/unit-test/include/class/acc_ledgerTest.class.php @@ -71,8 +71,7 @@ class Acc_LedgerTest extends TestCase $this->object->id=2; $sPj=$this->object->get_last_pj(2); - print_r("get_last_pj $sPj"); - $this->assertEquals(5,$sPj); + $this->assertEquals(9,$sPj); } @@ -99,22 +98,13 @@ class Acc_LedgerTest extends TestCase $this->assertEquals('ACH',$type); } - /** - * @covers Acc_Ledger::delete - * @todo Implement testDelete(). - */ - public function testDelete() - { - global $g_connection; - $jr_id=$g_connection->get_value("select max(jr_id) from jrn"); - $this->object->jr_id=$jr_id; - $this->object->delete(); - $count=$g_connection->get_value("select count(*) from jrn where jr_id=$1",[$jr_id]); - $this->assertEquals($count,0); - } + public function delete_ledger() { global $g_connection; + // 0. clean + $g_connection->exec_sql("delete from jrn_def where jrn_def_name=$1",["UNITTEST"]); + // a . create a ledger and delete it $array=["p_jrn_def_name"=>"UNITTEST","p_ech_lib"=>"","p_jrn_deb_max_line"=>7,'p_jrn_type'=>'ODS','jrn_def_pj_pref'=>'TT/','min_row'=>5,'p_description'=>'LEDGER UNIT TEST','jrn_def_negative_amount'=>0,'jrn_def_negative_warning'=>'Warning']; $this->object->save_new($array); @@ -141,6 +131,10 @@ class Acc_LedgerTest extends TestCase $this->assertEquals($ok,1); $cnt=$g_connection->get_value("select count(*) from jrn_def where jrn_def_id=$1",[$ledger_id]); $this->assertEquals($cnt,1); + + // 0. clean + $g_connection->exec_sql("delete from jrn_def where jrn_def_name=$1",["UNITTEST"]); + } /** * @covers Acc_Ledger::display_warning @@ -164,10 +158,8 @@ class Acc_LedgerTest extends TestCase $this->assertFalse(empty($this->object->jr_id),"not found jr_id "); $this->object->id=$g_connection->get_value("select jr_def_id from jrn where jr_id=$1",[$this->object->jr_id]); - $this->assertGreaterThan($this->object->id,"0","found id ".$this->object->id); + $this->assertLessThan($this->object->id,"0","found id ".$this->object->id); $this->assertFalse(empty($this->object->id),"not found id "); - print_r("jr_id = ".$this->object->jr_id); - print_r("id = ".$this->object->id); $date=$g_connection->get_value ("select to_char(max(p_start),'DD.MM.YYYY') from parm_periode where p_closed='f'"); $this->object->reverse($date,'unit test'.$date); $check=$g_connection->get_value("select jr_id from jrn where jr_comment=$1",["unit test".$date]); @@ -213,7 +205,7 @@ class Acc_LedgerTest extends TestCase { $this->object->id=2; $r=$this->object->guess_pj(); - $this->assertEquals("VEN6",$r); + $this->assertEquals("VEN10",$r); } /** @@ -229,17 +221,6 @@ class Acc_LedgerTest extends TestCase $this->assertEquals(count($array),20); } - /** - * @covers Acc_Ledger::GetDefLine - * @todo Implement testGetDefLine(). - */ - public function testGetDefLine() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } /** * @covers Acc_Ledger::display_negative_warning */ @@ -278,10 +259,14 @@ class Acc_LedgerTest extends TestCase */ public function testGet_solde() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + global $g_connection; + $ledger=new Acc_Ledger($g_connection,2); + $max=$g_connection->get_value("select max(p_id) from parm_periode"); + $min=$g_connection->get_value("select min(p_id) from parm_periode"); + $solde=$ledger->get_solde($min,$max); + $this->assertEquals($solde[0],490.77); + $this->assertEquals($solde[1],490.77); + } /** @@ -290,22 +275,20 @@ class Acc_LedgerTest extends TestCase */ public function testSelect_ledger() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $select_available=$this->object->select_ledger(); + $this->assertEquals(4,count($select_available->value)); } - /** * @covers Acc_Ledger::get_fiche_def * @todo Implement testGet_fiche_def(). */ public function testGet_fiche_def() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + global $g_connection; + $ledger=new Acc_Ledger($g_connection,0); + $this->assertEmpty($ledger->get_fiche_def()); + $ledger=new Acc_Ledger($g_connection,2); + $this->assertEquals(2,count($ledger->get_fiche_def())); } /** @@ -314,10 +297,11 @@ class Acc_LedgerTest extends TestCase */ public function testGet_class_def() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + global $g_connection; + $ledger=new Acc_Ledger($g_connection,0); + $this->assertEmpty($ledger->get_class_def()); + $ledger=new Acc_Ledger($g_connection,2); + $this->assertEquals(1,count($ledger->get_class_def())); } /** @@ -326,10 +310,50 @@ class Acc_LedgerTest extends TestCase */ public function testConfirm() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $array=[ + array("ac"=>"COMPTA/MENUODS/ODS"), + "pa_id"=>array(2), + "e_date"=>"17.11.2018", + "desc"=>"", + "period"=>102, + "e_pj"=>"ODS1", + "e_pj_suggest"=>"ODS1", + "mt"=>1572640802.992, + "e_comm"=>"", + "jrn_type"=>"ODS", + "p_jrn"=>4, + "nb_item"=>3, + "jrn_concerned"=>"", + "gDossier"=>25, + "qc_0"=>"", + "poste0"=>601, + "ld0"=>"Achats de fournitures", + "ck0"=>"", + "amount0"=>100, + "op"=>array(0), + "amount_t0"=>100, + "hplan"=>array(array(-1)), + "val"=>array(array(100)), + "poste1"=>"4511", + "ld1"=>"TVA à payer 21%", + "ck1"=>"", + "qc_1"=>"", + "amount1"=>21, + "qc_2"=>"FOURNI2", + "ld2"=>"fournisseur 3", + "amount2"=>121, + "opd_name"=>"", + "od_description"=>"", + "reverse_date"=>"", + "ext_label"=>"", + "jr_optype"=>"NOR", + "save"=>"Confirmer" + ]; + $this->object->set_ledger_id(4); + $this->object->with_concerned=FALSE; + $ret=$this->object->confirm($array); + $this->assertContains('td class="num">121,00Totaux121.00121.00',$ret); + } /** @@ -338,10 +362,15 @@ class Acc_LedgerTest extends TestCase */ public function testGet_min_row() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + global $g_connection; + $a_ledger=$g_connection->get_array("select jrn_def_id,jrn_deb_max_line from jrn_def"); + $nb_ledger=(empty($a_ledger))?0:count($a_ledger); + $this->assertGreaterThan (0,$nb_ledger); + for ($i=0;$i<$nb_ledger;$i++) { + $ledger=new Acc_Ledger($g_connection,$a_ledger[$i]['jrn_def_id']); + $cnt=$ledger->get_min_row(); + $this->assertEquals($a_ledger[$i]['jrn_deb_max_line'],$cnt); + } } /** @@ -350,10 +379,29 @@ class Acc_LedgerTest extends TestCase */ public function testInput() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + + try { + global $g_connection; + $ledger=new Acc_Ledger($g_connection,4); + put_global([["key"=>"ac","value"=>"ODS"]]); + $str=$ledger->input(null,0); + //--------------------------------------------------------------------------- + // Save it first , and test after + // $file=fopen(__DIR__."/file/acc_ledgerTest.testInput.txt","w+"); + // fwrite($file, $str); + // fclose($file); + //--------------------------------------------------------------------------- + $str_fileresult=tempnam("/tmp","acc_ledger_input.txt"); + $fileresult=fopen($str_fileresult,"w+"); + fwrite($fileresult,$str); +// fclose($fileresult); + + $this->assertContains(' onChange="format_number(this);checkTotalDirect()" ', + $str); + } catch (Exception $ex) { + $this->assertTrue(False); + throw $ex; + } } /** @@ -362,22 +410,43 @@ class Acc_LedgerTest extends TestCase */ public function testIs_closed() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + global $g_connection; + $ledger=new Acc_Ledger($g_connection,4); + $this->assertEquals(1,$ledger->is_closed(99)); + $this->assertEquals(0,$ledger->is_closed(101)); } /** * @covers Acc_Ledger::verify * @todo Implement testVerify(). */ - public function testVerify() + public function testVerify_Ledger() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + global $g_connection; + $ledger=new Acc_Ledger($g_connection,4); + $array=[ + "p_jrn"=>"15", + "p_jrn_deb_max_line"=>5, + "p_jrn_name"=>"New ledger", + "p_jrn_type"=>"ODS" + ]; + // Must success + try { + $ledger->verify_ledger($array); + $this->assertTrue(TRUE); + } catch (Exception $ex) { + var_dump($ex->getMessage()); + var_dump($ex->getTraceAsString()); + } + + // Must fail + $a_ledger["p_jrn"]="a"; + try { + $ledger->verify_ledger($array); + $this->assertTrue(FALSE); + } catch (Exception $ex) { + $this->assertTrue(TRUE); + } } /** @@ -386,34 +455,60 @@ class Acc_LedgerTest extends TestCase */ public function testCompute_internal_code() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->object->set_ledger_id(4); + $str=$this->object->compute_internal_code(10); + $this->assertFalse(empty($str)); } /** - * @covers Acc_Ledger::save - * @todo Implement testSave(). + * @covers Acc_Ledger::save Acc_Ledger::delete */ public function testSave() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::get_request - * @todo Implement testGet_request(). - */ - public function testGet_request() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $array=[ + "pa_id"=>array(2), + "e_date"=>"01.09.2018", + "desc"=>"test", + "period"=>100, + "e_pj"=>"ODS1", + "e_pj_suggest"=>"ODS1", + "mt"=>1572642748.22, + "e_comm"=>"test", + "jrn_type"=>"ODS", + "p_jrn"=>4, + "nb_item"=>5, + "jrn_concerned"=>"", + "gDossier"=>25, + "poste0"=>601, + "ld0"=>"Achats de fournitures", + "ck0"=>"", + "amount0"=>100, + "op"=>Array(0), + "amount_t0"=>100, + "hplan"=>array( array(-1)), + "val"=>array(array("0"=>array("0"=>100))), + "poste1"=>"4511", + "ld1"=>"TVA à payer 21%", + "amount1"=>100, + "opd_name"=>"", + "od_description"=>"", + "reverse_date"=>"", + "ext_label"=>"", + "jr_optype"=>"NOR" + ]; + global $g_connection; + $ledger=new Acc_Ledger($g_connection,4); + $g_connection->exec_sql("delete from jrn where jr_mt=$1",[$array["mt"]]); + $cnt=$g_connection->get_value("select count(*) from jrn where jr_mt=$1",[$array['mt']]); + $this->assertEquals(0,$cnt); + $ledger->save($array); + $cnt=$g_connection->get_value("select count(*) from jrn where jr_mt=$1",[$array['mt']]); + $this->assertEquals(1,$cnt); + + $ledger->delete(); + $cnt=$g_connection->get_value("select count(*) from jrn where jr_mt=$1",[$array['mt']]); + $this->assertEquals(0,$cnt); + } /** @@ -422,10 +517,9 @@ class Acc_LedgerTest extends TestCase */ public function testNext_number() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + global $g_connection; + $this->assertEquals(2,Acc_Ledger::next_number($g_connection, "ODS")); + } /** @@ -434,46 +528,10 @@ class Acc_LedgerTest extends TestCase */ public function testGet_first() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::update_paid - * @todo Implement testUpdate_paid(). - */ - public function testUpdate_paid() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::update_internal_code - * @todo Implement testUpdate_internal_code(). - */ - public function testUpdate_internal_code() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::get_default_card - * @todo Implement testGet_default_card(). - */ - public function testGet_default_card() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + global $g_connection; + $ledger=new Acc_Ledger($g_connection,4); + $first_ledger=$ledger->get_first("ODS"); + $this->assertEquals(4,$first_ledger["jrn_def_id"]); } /** @@ -482,10 +540,9 @@ class Acc_LedgerTest extends TestCase */ public function testGet_all_fiche_def() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + global $g_connection; + $ledger=new Acc_Ledger($g_connection,4); + $this->assertEquals("3,2,4",$ledger->get_all_fiche_def()); } /** @@ -494,34 +551,31 @@ class Acc_LedgerTest extends TestCase */ public function testGet_saldo_exercice() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::check_strict - * @todo Implement testCheck_strict(). - */ - public function testCheck_strict() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::check_periode - * @todo Implement testCheck_periode(). - */ - public function testCheck_periode() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $result=[ + ["solde"=> 658.2500 , "j_poste"=> "4400004", "j_qcode"=> "FOURNI"], + ["solde"=> 490.7700 , "j_poste"=> "4000005", "j_qcode"=> "CLIENT1"], + ["solde"=> 21.9600, "j_poste"=> "4112", "j_qcode"=> ""], + ["solde"=>-85.1700 , "j_poste"=> "4511", "j_qcode"=> ""], + ["solde"=> -863.2100 , "j_poste"=>"4400005", "j_qcode"=> "FOURNI1"] + ]; + $get=$this->object->get_saldo_exercice("2018"); + $nb_get=count($get); + $nb_result=count($result); + $ix=0; + for ($i=0;$i<$nb_get;$i++) + { + for ($e=0;$e<$nb_result;$e++) { + if ( + $result[$e]["j_poste"] == $get[$i]["j_poste"] && + $result[$e]["j_qcode"] == $get[$i]["j_qcode"] + ) + { + $this->assertEquals($result[$e]["solde"],$get[$i]["solde"]); + $ix++; + } + } + } + $this->assertEquals(5,$ix); } /** @@ -530,10 +584,9 @@ class Acc_LedgerTest extends TestCase */ public function testGet_last_date() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->object->set_ledger_id(2); + $last_date=$this->object->get_last_date(); + $this->assertEquals("24.04.2018",$last_date); } /** @@ -542,179 +595,11 @@ class Acc_LedgerTest extends TestCase */ public function testGet_id() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->assertEquals(3,$this->object->get_id("V000003")); } - /** - * @covers Acc_Ledger::create_document - * @todo Implement testCreate_document(). - */ - public function testCreate_document() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } + - /** - * @covers Acc_Ledger::check_payment - * @todo Implement testCheck_payment(). - */ - public function testCheck_payment() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::inc_seq_pj - * @todo Implement testInc_seq_pj(). - */ - public function testInc_seq_pj() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::search_form - * @todo Implement testSearch_form(). - */ - public function testSearch_form() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::build_search_sql - * @todo Implement testBuild_search_sql(). - */ - public function testBuild_search_sql() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::display_search_form - * @todo Implement testDisplay_search_form(). - */ - public function testDisplay_search_form() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::get_last - * @todo Implement testGet_last(). - */ - public function testGet_last() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::search_group - * @todo Implement testSearch_group(). - */ - public function testSearch_group() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::get_operation - * @todo Implement testGet_operation(). - */ - public function testGet_operation() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::existing_vat - * @todo Implement testExisting_vat(). - */ - public function testExisting_vat() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::get_other_amount - * @todo Implement testGet_other_amount(). - */ - public function testGet_other_amount() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::vat_operation - * @todo Implement testVat_operation(). - */ - public function testVat_operation() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::previous_amount - * @todo Implement testPrevious_amount(). - */ - public function testPrevious_amount() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::test_me - * @todo Implement testTest_me(). - */ - public function testTest_me() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } /** * @covers Acc_Ledger::array_cat @@ -762,53 +647,97 @@ class Acc_LedgerTest extends TestCase $this->assertGreaterThan(0,$this->object->get_tiers_id("VEN",$jr_id)); } - /** - * @covers Acc_Ledger::listing - * @todo Implement testListing(). - */ - public function testListing() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers Acc_Ledger::display_ledger - * @todo Implement testDisplay_ledger(). - */ - public function testDisplay_ledger() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - + /** * @covers Acc_Ledger::verify_ledger * @todo Implement testVerify_ledger(). */ - public function testVerify_ledger() + public function testVerify_Operation() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + global $g_connection; + $array = [ "p_jrn" => 4, + "p_jrn_predef" => 4, + "action" => "use_opd", + "jrn_type" => "ODS", + "e_date" => "17.11.2018", + "e_pj" => "ODS1", + "e_pj_suggest" => "ODS1", + "desc" => "", + "nb_item" => 5, + "qc_0" => "", + "poste0" => "601", + "ld0" => "Achats de fournitures", + "amount0" => 100, + "ck0" => "", + "qc_1" => "", + "poste1" => "4511", + "ld1" => "TVA à payer 21%", + "amount1" => 21, + "ck1" => "", + "qc_2" => "FOURNI2", + "poste2" => "", + "ld2" => "fournisseur 3", + "amount2" => 121, + "qc_3" => "", + "poste3" => "", + "ld3" => "", + "amount3" => "", + "qc_4" => "", + "poste4" => "", + "ld4" => "", + "amount4" =>"", + "jrn_concerned" => "", + "summary" => "Sauvez" + ]; + $ledger=new Acc_Ledger($g_connection,4); + + // This test must succeed + try { + $ledger->verify_operation($array); + $this->assertTrue(TRUE); + } catch(Exception $e) + { + var_dump($e->getMessage()); + var_dump($e->getTraceAsString()); + $this->assertTrue(FALSE); + throw $e; + } + + // wrong date must fail + + $wrong_array=$array; + $wrong_array["e_date"]="aaa"; + try { + $ledger->verify_operation($wrong_array); + $this->assertTrue(FALSE); + } catch(Exception $e) + { + $this->assertEquals(2,$e->getCode()); + } + + // periode closed must fail + $wrong_array=$array; + $wrong_array["e_date"]="01.01.2110"; + try { + $ledger->verify_operation($wrong_array); + $this->assertTrue(FALSE); + } catch(Exception $e) + { + $this->assertEquals(2,$e->getCode()); + } + // periode closed must fail + $wrong_array=$array; + $wrong_array["e_date"]="01.07.2018"; + try { + $ledger->verify_operation($wrong_array); + $this->assertTrue(FALSE); + } catch(Exception $e) + { + $this->assertEquals(6,$e->getCode()); + } + } - /** - * @covers Acc_Ledger::update - * @todo Implement testUpdate(). - */ - public function testUpdate() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } /** * @covers Acc_Ledger::input_paid @@ -826,10 +755,19 @@ class Acc_LedgerTest extends TestCase */ public function testInput_new() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + put_global([["key"=>"ac","value"=>"ODS"]]); +// ob_start(); +// +// $this->object->set_ledger_id(4); +// $this->object->input_new(); +// $result=ob_get_contents(); +// $file=fopen(__DIR__."/file/acc_ledger_input_new.txt","w+"); +// fwrite($file,$result); +// fclose($file);*/ + $this->expectOutputRegex('! Banque<\/TD><\/TR> Client<\/TD><\/TR> Fournisseur<\/TD><\/TR> Marchandises<\/TD><\/TR> Services & Biens Divers<\/TD><\/TR> Stock<\/TD><\/TR> Vente<\/TD><\/TR> <\/TABLE>! +'); + $this->object->set_ledger_id(4); + $this->object->input_new(); } /** @@ -850,10 +788,12 @@ class Acc_LedgerTest extends TestCase 'negative_amount'=>0, 'negative_warning'=>'Warning']; - + // clean ledger if exists + $g_connection->exec_sql("delete from jrn_def where jrn_def_name=$1",[$array['p_jrn_name']]); + $this->object->save_new($array); $jrn_def_id=$g_connection->get_value("select jrn_def_id from jrn_def where jrn_def_name=$1",[$array['p_jrn_name']]); - $this->assertGreaterThan($jrn_def_id,0); + $this->assertLessThan($jrn_def_id,0); $ledger=new Acc_Ledger($g_connection,$jrn_def_id); $ledger->delete_ledger(); $jrn_def_id=$g_connection->get_value("select jrn_def_id from jrn_def where jrn_def_name=$1",[$array['p_jrn_name']]); @@ -877,10 +817,13 @@ class Acc_LedgerTest extends TestCase 'p_description'=>'LEDGER UNIT TEST', 'negative_amount'=>0, 'negative_warning'=>'Warning']; - + // clean ledger if exists + $g_connection->exec_sql("delete from jrn_def where jrn_def_name=$1",[$array['p_jrn_name']]); + + // Recreate it $this->object->save_new($array); $jrn_def_id=$g_connection->get_value("select jrn_def_id from jrn_def where jrn_def_name=$1",[$array['p_jrn_name']]); - $this->assertGreaterThan($jrn_def_id,0); + $this->assertLessThan($jrn_def_id,0); $ledger=new Acc_Ledger($g_connection,$jrn_def_id); $ledger->delete_ledger(); $jrn_def_id=$g_connection->get_value("select jrn_def_id from jrn_def where jrn_def_name=$1",[$array['p_jrn_name']]); @@ -940,16 +883,4 @@ class Acc_LedgerTest extends TestCase $this->assertTrue(is_array($this->object->get_customer_late())); } - /** - * @covers Acc_Ledger::convert_from_follow - * @todo Implement testConvert_from_follow(). - */ - public function testConvert_from_follow() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - } diff --git a/unit-test/include/class/acc_ledger_finTest.class.php b/unit-test/include/class/acc_ledger_finTest.class.php index eb4f5068c..1d6fe327f 100644 --- a/unit-test/include/class/acc_ledger_finTest.class.php +++ b/unit-test/include/class/acc_ledger_finTest.class.php @@ -32,16 +32,7 @@ class Acc_Ledger_FinTest extends TestCase } - /** - * @covers Acc_Ledger_Fin::verify - * @todo Implement testVerify(). - * @expectedException Exception - */ - public function testVerify() - { - $this->object->verify(null); - } /** * @covers Acc_Ledger_Fin::input @@ -49,10 +40,8 @@ class Acc_Ledger_FinTest extends TestCase */ public function testInput() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + // we must compare the output to a file we save previously + } /** @@ -61,10 +50,8 @@ class Acc_Ledger_FinTest extends TestCase */ public function testConfirm() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + // we must compare the output to a file we save previously + } /** @@ -73,10 +60,7 @@ class Acc_Ledger_FinTest extends TestCase */ public function testInsert() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + } /** @@ -85,10 +69,6 @@ class Acc_Ledger_FinTest extends TestCase */ public function testShow_ledger() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); } /** @@ -99,8 +79,8 @@ class Acc_Ledger_FinTest extends TestCase { $name=$this->object->get_bank_name(); var_export($name); - if (strpos($name, NOTFOUND)!=0) - $this->assertTrue(FALSE); + if (strpos($name, NOTFOUND)!=0) $this->assertTrue(FALSE); + $this->assertTrue(TRUE); } /** @@ -109,7 +89,7 @@ class Acc_Ledger_FinTest extends TestCase */ public function testGet_bank() { - $this->assertEquals(9, $this->object->get_bank()); + $this->assertEquals(30, $this->object->get_bank()); } /** @@ -118,10 +98,6 @@ class Acc_Ledger_FinTest extends TestCase */ public function testNumb_operation() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); } /** @@ -130,10 +106,11 @@ class Acc_Ledger_FinTest extends TestCase */ public function testInsert_quant_fin() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + + } + public function testVerify_operation() + { + } } diff --git a/unit-test/include/class/acc_ledger_history_purchaseTest.class.php b/unit-test/include/class/acc_ledger_history_purchaseTest.class.php new file mode 100644 index 000000000..d9a88d56e --- /dev/null +++ b/unit-test/include/class/acc_ledger_history_purchaseTest.class.php @@ -0,0 +1,61 @@ + + +/** + * @file + * @brief concerne acc_ledger_history_purchaseTest.class + */ +class Acc_Ledger_History_PurchaseTest extends TestCase +{ + + /** + * @var + */ + protected $object; + + /** + * Sets up the fixture, for example, opens a network connection. + * This method is called before a test is executed. + */ + protected function setUp() + { + include 'global.php'; + global $g_connection; + $this->object=new Acc_Ledger_History_Purchase($g_connection, [3], 92, 131, 'L'); + } + + /** + * Tears down the fixture, for example, closes a network connection. + * This method is called after a test is executed. + */ + protected function tearDown() + { + + } + function testGet_Row() + { + $this->object->get_row(); + $this->assertSame(count($this->object->get_data()),2); + + } +} diff --git a/unit-test/include/class/acc_ledger_history_saleTest.class.php b/unit-test/include/class/acc_ledger_history_saleTest.class.php new file mode 100644 index 000000000..6197445a8 --- /dev/null +++ b/unit-test/include/class/acc_ledger_history_saleTest.class.php @@ -0,0 +1,60 @@ + + +/** + * @file + * @brief concerne Acc_Ledger_History_SaleTest.class + */ +class Acc_Ledger_History_SaleTest extends TestCase +{ + + /** + * @var + */ + protected $object; + + /** + * Sets up the fixture, for example, opens a network connection. + * This method is called before a test is executed. + */ + protected function setUp() + { + include 'global.php'; + global $g_connection; + $this->object=new Acc_Ledger_History_Sale($g_connection,[2],92,131,'L'); + } + + /** + * Tears down the fixture, for example, closes a network connection. + * This method is called after a test is executed. + */ + protected function tearDown() + { + + } + function testGet_row() + { + $this->object->get_row(); + $this->assertSame(count($this->object->get_data()),4); + } +} diff --git a/unit-test/include/class/acc_ledger_infoTest.class.php b/unit-test/include/class/acc_ledger_infoTest.class.php new file mode 100644 index 000000000..a9185981e --- /dev/null +++ b/unit-test/include/class/acc_ledger_infoTest.class.php @@ -0,0 +1,85 @@ + + +/** + * @file + * @brief concerne acc_ledger_infoTest.class + */ +class Acc_Ledger_InfoTest extends TestCase +{ + + /** + * @var + */ + protected $object; + + /** + * Sets up the fixture, for example, opens a network connection. + * This method is called before a test is executed. + */ + protected function setUp() + { + include 'global.php'; + global $g_connection; + $this->object=new Acc_Ledger_Info($g_connection); + } + + /** + * Tears down the fixture, for example, closes a network connection. + * This method is called after a test is executed. + */ + protected function tearDown() + { + + } + function test_insertBonCommande() + { + global $g_connection; + $this->object->jr_id=3; + $this->object->id_type='BON_COMMANDE'; + $this->object->ji_value='BON'; + + $cnt=$g_connection->get_array("select * from jrn_info where jr_id=$1",[$this->object->jr_id]); + $this->assertSame(count($cnt),0); + $this->object->insert(); + $cnt=$g_connection->get_array("select * from jrn_info where jr_id=$1",[$this->object->jr_id]); + $this->assertSame(count($cnt),1); + $g_connection->exec_sql("delete from jrn_info where jr_id=$1",[$this->object->jr_id]); + + } + function test_insertOther() + { + global $g_connection; + $this->object->set_jrn_id(7); + $this->object->set_type('OTHER'); + $this->object->set_value('Autre test'); + + $cnt=$g_connection->get_array("select * from jrn_info where jr_id=$1",[$this->object->jr_id]); + $this->assertSame(count($cnt),0); + $this->object->insert(); + $cnt=$g_connection->get_array("select * from jrn_info where jr_id=$1",[$this->object->jr_id]); + $this->assertSame(count($cnt),1); + $g_connection->exec_sql("delete from jrn_info where jr_id=$1",[$this->object->jr_id]); + } + +} diff --git a/unit-test/include/class/acc_ledger_purchaseTest.class.php b/unit-test/include/class/acc_ledger_purchaseTest.class.php index ee8fabb9c..543e88ad2 100644 --- a/unit-test/include/class/acc_ledger_purchaseTest.class.php +++ b/unit-test/include/class/acc_ledger_purchaseTest.class.php @@ -39,7 +39,7 @@ class Acc_Ledger_PurchaseTest extends TestCase */ public function testVerify() { - $this->object->verify(array()); + $this->object->verify_operation(array()); } /** @@ -90,16 +90,6 @@ class Acc_Ledger_PurchaseTest extends TestCase ); } - /** - * @covers Acc_Ledger_Purchase::show_unpaid - * @todo Implement testShow_unpaid(). - */ - public function testShow_unpaid() - { - // OBSOLETE : function must be removed in the next code cleaning - // $str_html=$this->object->show_unpaid(); - - } /** * @covers Acc_Ledger_Purchase::get_detail_purchase diff --git a/unit-test/jrn.csv b/unit-test/jrn.csv new file mode 100644 index 000000000..0c000f5c7 --- /dev/null +++ b/unit-test/jrn.csv @@ -0,0 +1,18 @@ +jr_id,jr_def_id,jr_montant,jr_comment,jr_date,jr_grpt_id,jr_internal,jr_tech_date,jr_tech_per,jrn_ech,jr_ech,jr_rapt,jr_valid,jr_opid,jr_c_opid,jr_pj,jr_pj_name,jr_pj_type,jr_pj_number,jr_mt,jr_date_paid +"1","3","146.4100","","2014-08-28","3","A000001","2014-08-28 17:53:24.755317","99",,,,"t",,,,,,"ACH1","1409241201.1562", +"3","3","202.0700","","2014-08-28","5","A000003","2014-09-13 15:34:19.25992","99",,,,"t",,,,,,"ACH3","1410615199.5593", +"4","3","202.0700","","2014-08-28","6","A000004","2014-09-13 16:54:52.202829","99",,,,"t",,,,,,"ACH4","1410619351.7227", +"5","3","202.0700","","2014-08-28","7","A000005","2014-09-13 16:55:41.921773","99",,,,"t",,,,,,"ACH6","1410620127.6059", +"6","3","55.6600","","2014-08-28","8","A000006","2014-09-14 16:19:50.015866","99",,,,"t",,,,,,"ACH8","1410704378.3556", +"7","3","55.6600","","2014-08-28","9","A000007","2014-09-14 16:20:21.53739","99",,,,"t",,,,,,"ACH9","1410704406.2889", +"8","3","55.6600","","2014-08-28","10","A000008","2014-09-14 16:25:25.223477","99",,,,"t",,,,,,"ACH11","1410704712.7114", +"9","3","55.6600","","2014-08-28","11","A000009","2014-09-14 16:29:37.365348","99",,,,"t",,,,,,"ACH13","1410704965.6442", +"10","3","55.6600","","2014-08-28","13","A00000B","2014-09-14 16:33:20.104077","99",,,,"t",,,,,,"ACH15","1410705109.1476", +"2","3","146.4100","","2014-08-28","4","A000002","2014-09-12 22:27:14.991746","99",,,,"t",,,,,,"ACH2","1410553517.1469", +"11","3","55.6600","","2014-08-28","16","A00000E","2014-09-14 16:36:46.455321","99",,,,"t",,,,,,"ACH17","1410705241.3828", +"12","3","146.4100","","2014-08-28","17","A00000F","2014-09-15 00:05:06.829017","99",,,,"t",,,,,,"ACH18","1410732301.987", +"13","3","146.4100","","2014-08-28","18","A000010","2014-09-16 20:56:35.623517","99",,,,"t",,,,,,"ACH19","1410893782.0265", +"14","3","55.6600","","2014-08-28","19","A000011","2014-09-17 20:27:46.676824","99",,,,"t",,,,,,"ACH20","1410977970.5959", +"16","2","186.4900","","2014-09-02","21","V000013","2014-11-02 20:23:15.250815","100",,,,"t",,,,,,"VEN2","1414956188.5832", +"15","2","1697.0100","","2014-09-01","20","V000012","2014-11-02 20:22:50.431444","100",,,,"t",,,,,,"VEN1","1414956163.4927","2014-11-02" +"17","1","1697.1000"," compte : Banque a Dupont","2014-11-02","22","F000014","2014-11-02 20:25:19.529644","102",,,,"t",,,,,,"FIN1","1414956317.8088", diff --git a/unit-test/test-file.sh b/unit-test/test-file.sh index 0f906ce47..8b2e879c3 100755 --- a/unit-test/test-file.sh +++ b/unit-test/test-file.sh @@ -1,9 +1,42 @@ #!/bin/bash - +help(){ + echo "$0 -f filename [-i function ]" + echo " -f filename , file to test" + echo " -i function , optional filter to a function" +} PHPUNIT=./phpunit -if [ ! -f "$1" ] ; then - echo "File $1 not found" +FILETOTEST="" +FUNCTION="" +while getopts "f:i:" opt; do + case $opt in + f) + FILETOTEST=$OPTARG + ;; + i) + FUNCTION=$OPTARG + ;; + *) + help + exit 1 + esac +done + +if [ -z "$FILETOTEST" ] ;then + help + echo "-f is mandatory" + exit 2 +fi + +if [ ! -f "$FILETOTEST" ] ; then + echo "File $FILETOTEST not found" exit 1 fi -$PHPUNIT --bootstrap bootstrap.php --color $1 +if [ ! -z "$FUNCTION" ] ; then + echo "testing $FILETOTEST $FUNCTION" + $PHPUNIT --bootstrap bootstrap.php --verbose --color --filter $FUNCTION $FILETOTEST +else + + $PHPUNIT --bootstrap bootstrap.php --color $FILETOTEST +fi +