altocompta/unit-test/include/class/acc_account_ledger.Test.php

455 lines
14 KiB
PHP

<?php
use PHPUnit\Framework\TestCase;
/**
* Generated by PHPUnit_SkeletonGenerator on 2014-10-31 at 20:33:22.
*
*/
class Acc_Account_LedgerTest extends TestCase
{
/**
* @var Acc_Account_Ledger
*/
protected $object;
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*
*/
protected function setUp():void
{
global $g_connection, $g_parameter, $g_user;
$_REQUEST['gDossier']=DOSSIER;
$g_connection=new Database(DOSSIER);
$g_parameter=new Noalyss_Parameter_Folder($g_connection);
$g_user=new Noalyss_user($g_connection);
$this->object=new Acc_Account_Ledger($g_connection, 400);
$g_connection->exec_sql("update jrn_def set jrn_def_class_deb='4* 2*' where jrn_def_type='ODS'");
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown():void
{
}
/**
* @covers Acc_Account_Ledger::get_row
*/
public function testGet_row()
{
$array=$this->object->get_row(92, 103);
$this->assertEquals(count($array), 3);
}
/**
* @covers Acc_Account_Ledger::get_row_date
*/
public function testGet_row_date()
{
global $g_user, $g_connection;
$accounting=new Acc_Account_Ledger($g_connection, '4511');
$a_array=$accounting->get_row_date('01.01.2018', '31.12.2018', 0);
$expected=array(
0=>
array(
0=>
array(
'j_id'=>'820',
'jr_id'=>'317',
'j_date_fmt'=>'01.01.2018',
'j_date'=>'2018-01-01',
'j_qcode'=>NULL,
'deb_montant'=>'0',
'cred_montant'=>'8.4000',
'description'=>'Ecriture d\'ouverture 2018 TVA à payer 21%',
'jrn_name'=>'Opération Diverses',
'j_debit'=>'f',
'jr_internal'=>'O000172',
'jr_pj_number'=>'ODS44',
'letter'=>NULL,
'pcm_lib'=>'TVA à payer 21%',
'jr_optype'=>'OPE',
'jr_tech_per'=>'92',
'p_exercice'=>'2018',
'jrn_def_name'=>'Opération Diverses',
'jrn_def_code'=>'O01',
'delta_letter'=>NULL,
'currency_rate' => '1.000000',
'currency_rate_ref' => '1.000000',
'currency_id' => '0',
'cr_code_iso' => 'EUR',
'j_montant' => '8.4000',
'oc_amount' => null,
'oc_vat_amount' => null
,'op_analytic' => '0'
),
1=>
array(
'j_id'=>'6',
'jr_id'=>'2',
'j_date_fmt'=>'24.02.2018',
'j_date'=>'2018-02-24',
'j_qcode'=>NULL,
'deb_montant'=>'0',
'cred_montant'=>'8.4000',
'description'=>'Déplacement',
'jrn_name'=>'Vente',
'j_debit'=>'f',
'jr_internal'=>'V000002',
'jr_pj_number'=>'VEN2',
'letter'=>NULL,
'pcm_lib'=>'TVA à payer 21%',
'jr_optype'=>'NOR',
'jr_tech_per'=>'93',
'p_exercice'=>'2018',
'jrn_def_name'=>'Vente',
'jrn_def_code'=>'V01',
'delta_letter'=>NULL,
'currency_rate' => '1.000000'
,'currency_rate_ref' => '1.000000'
,'currency_id' => '0'
,'cr_code_iso' => 'EUR'
,'j_montant' => '8.4000'
,'oc_amount' => null
,'oc_vat_amount' => null
,'op_analytic' => '0'
),
2=>
array(
'j_id'=>'9',
'jr_id'=>'3',
'j_date_fmt'=>'24.02.2018',
'j_date'=>'2018-02-24',
'j_qcode'=>NULL,
'deb_montant'=>'0',
'cred_montant'=>'5.2900',
'description'=>'Vente de marchandises',
'jrn_name'=>'Vente',
'j_debit'=>'f',
'jr_internal'=>'V000003',
'jr_pj_number'=>'VEN3',
'letter'=>NULL,
'pcm_lib'=>'TVA à payer 21%',
'jr_optype'=>'NOR',
'jr_tech_per'=>'93',
'p_exercice'=>'2018',
'jrn_def_name'=>'Vente',
'jrn_def_code'=>'V01',
'delta_letter'=>NULL,
'currency_rate' => '1.000000'
,'currency_rate_ref' => '1.000000'
,'currency_id' => '0'
,'cr_code_iso' => 'EUR'
,'j_montant' => '5.2900'
,'oc_amount' => null
,'oc_vat_amount' => null
,'op_analytic' => '0'
),
3=>
array(
'j_id'=>'13',
'jr_id'=>'4',
'j_date_fmt'=>'24.02.2018',
'j_date'=>'2018-02-24',
'j_qcode'=>NULL,
'deb_montant'=>'0',
'cred_montant'=>'35.7400',
'description'=>'Vente de marchandises',
'jrn_name'=>'Vente',
'j_debit'=>'f',
'jr_internal'=>'V000004',
'jr_pj_number'=>'VEN4',
'letter'=>NULL,
'pcm_lib'=>'TVA à payer 21%',
'jr_optype'=>'NOR',
'jr_tech_per'=>'93',
'p_exercice'=>'2018',
'jrn_def_name'=>'Vente',
'jrn_def_code'=>'V01',
'delta_letter'=>NULL,
'currency_rate' => '1.000000',
'currency_rate_ref' => '1.000000',
'currency_id' => '0',
'cr_code_iso' => 'EUR',
'j_montant' => '35.7400',
'oc_amount' => null,
'oc_vat_amount' => null
,'op_analytic' => '0'
),
4=>
array(
'j_id'=>'17',
'jr_id'=>'5',
'j_date_fmt'=>'24.04.2018',
'j_date'=>'2018-04-24',
'j_qcode'=>NULL,
'deb_montant'=>'0',
'cred_montant'=>'35.7400',
'description'=>'Marchandise et Déplacement',
'jrn_name'=>'Vente',
'j_debit'=>'f',
'jr_internal'=>'V000005',
'jr_pj_number'=>'VEN5',
'letter'=>NULL,
'pcm_lib'=>'TVA à payer 21%',
'jr_optype'=>'NOR',
'jr_tech_per'=>'95',
'p_exercice'=>'2018',
'jrn_def_name'=>'Vente',
'jrn_def_code'=>'V01',
'delta_letter'=>NULL,
'currency_rate' => '1.000000',
'currency_rate_ref' => '1.000000',
'currency_id' => '0',
'cr_code_iso' => 'EUR',
'j_montant' => '35.7400',
'oc_amount' => null,
'oc_vat_amount' => null
,'op_analytic' => '0'
),
5=>
array(
'j_id'=>'818',
'jr_id'=>'316',
'j_date_fmt'=>'12.09.2018',
'j_date'=>'2018-09-12',
'j_qcode'=>NULL,
'deb_montant'=>'0',
'cred_montant'=>'21.0000',
'description'=>'Vente en OD TVA à payer 21%',
'jrn_name'=>'Opération Diverses',
'j_debit'=>'f',
'jr_internal'=>'O000171',
'jr_pj_number'=>'ODS43',
'letter'=>NULL,
'pcm_lib'=>'TVA à payer 21%',
'jr_optype'=>'NOR',
'jr_tech_per'=>'100',
'p_exercice'=>'2018',
'jrn_def_name'=>'Opération Diverses',
'jrn_def_code'=>'O01',
'delta_letter'=>NULL,
'currency_rate' => '1.000000',
'currency_rate_ref' => '1.000000',
'currency_id' => '0',
'cr_code_iso' => 'EUR',
'j_montant' => '21.0000',
'oc_amount' => null,
'oc_vat_amount' => null
,'op_analytic' => '0'
),
),
1=>'0',
2=>'114.5700',
);
$this->assertEquals($expected, $a_array);
}
function dataGet_Name()
{
return array(
array('10', 'Capital '),
array('01', 'Poste inconnu')
);
}
/**
* @covers Acc_Account_Ledger::get_name
* @dataProvider dataGet_Name
*/
public function testGet_name($id, $result)
{
$this->object->id=$id;
$this->assertEquals($this->object->get_name(), $result);
}
/**
* @covers Acc_Account_Ledger::do_exist
* @dataProvider dataDo_exist
*/
public function testDo_exist($p_value, $result)
{
$this->object->id=$p_value;
$this->assertEquals($this->object->do_exist(), $result);
}
function dataDo_exist()
{
return array(
array('400', 1),
array('400A', 0),
array('550', 1),
array('60BXX', 0)
);
}
/**
* @covers Acc_Account_Ledger::load
*/
public function testLoad()
{
$this->object->load();
$this->assertTrue($this->object->id==400, "test load");
}
/**
* @covers Acc_Account_Ledger::get_solde
*/
public function testGet_solde()
{
global $g_connection;
$accounting=new Acc_Account_Ledger($g_connection, '4511');
$this->assertEquals(356.85,$accounting->get_solde(),"get_solde");
}
/**
* @covers Acc_Account_Ledger::get_solde_detail
*/
public function testGet_solde_detail()
{
global $g_connection;
$accounting=new Acc_Account_Ledger($g_connection, '4511');
$expected=array (
'debit' => '0',
'credit' => '356.8500',
'solde' => 356.85,
);
$this->assertEquals($accounting->get_solde_detail(),$expected);
}
/**
* @covers Acc_Account_Ledger::isTVA
*/
public function testIsTVA()
{
$this->object->id="4111";
$this->assertEquals($this->object->isTVA(), 1);
$this->object->id=10;
$this->assertEquals($this->object->isTVA(), 0);
}
/**
* @covers Acc_Account_Ledger::HtmlTable
*/
public function testHtmlTable()
{
$this->assertTrue(true, 'Ne peut être testé car vue HTML');
}
public function dataGet_amount_side()
{
return array(
array(0, "="),
array(1000, 'D'),
array(-1000, 'C'),
);
}
/**
* @covers Acc_Account_Ledger::get_amount_side
* @dataProvider dataGet_amount_side
*/
public function testGet_amount_side($amount, $result)
{
$this->assertEquals($this->object->get_amount_side($amount), $result);
}
/**
* @covers Acc_Account_Ledger::belong_ledger
* @dataProvider DataBelong_ledger
*/
public function testBelong_ledger($p_jrn, $result)
{
$this->assertEquals($this->object->belong_ledger($p_jrn), $result);
}
function DataBelong_ledger()
{
return array(
array(-1, 0),
array(1, -1),
array(3, 0),
array(2, -1),
array(4, 0)
);
}
public function dataGet_account_ledger()
{
return array(
array(0, array()),
array(1, array()),
array(2, array()),
array(3, array()),
array(4, array('4*','2*'))
);
}
/**
* @covers Acc_Account_Ledger::get_account_ledger
* @dataProvider dataGet_account_ledger
*/
public function testGet_account_ledger($p_jrn, $result)
{
$this->assertEquals($this->object->get_account_ledger($p_jrn), $result);
}
/**
* @covers Acc_Account_Ledger::build_sql_account
* @dataProvider DataBuild_Sql_account
*/
public function testBuild_sql_account($p_jrn, $result)
{
$value=$this->object->build_sql_account($p_jrn);
$this->assertEquals(trim($value), $result);
}
public function DataBuild_Sql_account()
{
return array(
array(0, ""),
array(1, ""),
array(2, ""),
array(3, ""),
array(4, "pcm_val::text like '4%' or pcm_val::text like '2%'")
);
}
function dataFind_Card()
{
return array(
array('6191', '27'),
array('6192', '28'),
array('4400004', '25')
);
}
/**
* @covers Acc_Account_Ledger::find_card
* @todo Implement testFind_card().
* @dataProvider dataFind_Card()
*/
public function testFind_card($p_value, $p_card)
{
$this->object->id=$p_value;
$result=$this->object->find_card();
$this->assertEquals($p_card, $result[0]['f_id']);
}
}