object=new Acc_Account($cn, '400'); } /** * @covers Acc_Account::get_parameter */ public function testGet_parameter() { $this->assertEquals($this->object->get_parameter("pcm_lib"), 'Clients'); } /** * @covers Acc_Account::set_parameter */ public function testSet_parameter() { $this->object->set_parameter("pcm_direct_use", "N"); $this->assertEquals($this->object->get_parameter("pcm_direct_use"),"N"); } /** * @covers Acc_Account::get_lib */ public function testGet_lib() { $this->assertEquals($this->object->get_lib(), 'Clients'); } /** * @covers Acc_Account::load */ public function testLoad() { $r=$this->object->load(); $this->assertNotEquals($r,false); } /** * @covers Acc_Account::count */ public function testCount() { $this->assertEquals($this->object->count("400"), 1); } /** * @covers Acc_Account::verify */ public function testVerify() { global $g_connection; // duplicate $duplicate=new Acc_Account($g_connection); $duplicate->set_parameter('pcm_val', "400"); $duplicate->set_parameter("pcm_lib", "duplicate"); $duplicate->set_parameter("pcm_val_parent", "40"); $duplicate->set_parameter("pcm_direct_use", "N"); try { $duplicate->insert(); } catch (Exception $ex) { $this->assertEquals($ex->getCode(),EXC_DUPLICATE); } $duplicate->set_parameter('pcm_val','999TEST'); try { $duplicate->set_parameter("pcm_lib", ""); $duplicate->insert(); } catch (Exception $ex) { $this->assertEquals($ex->getCode(),EXC_PARAM_VALUE); } $duplicate->set_parameter("pcm_lib", "duplicate"); try { $duplicate->set_parameter("pcm_val_parent", "999TEST"); $duplicate->insert(); } catch (Exception $ex) { $this->assertEquals($ex->getCode(),EXC_PARAM_VALUE); } try { $duplicate->set_parameter("pcm_val_parent", "xxx"); $duplicate->insert(); } catch (Exception $ex) { $this->assertEquals($ex->getCode(),EXC_PARAM_VALUE); } $duplicate->set_parameter("pcm_val_parent", "9"); try { $duplicate->set_parameter("pcm_direct_use", "?"); $duplicate->insert(); } catch (Exception $ex) { $this->assertEquals($ex->getCode(),EXC_PARAM_VALUE); } $duplicate->set_parameter("pcm_direct_use", "Y"); try { $duplicate->set_parameter('pcm_val',''); $duplicate->insert(); } catch (Exception $ex) { $this->assertEquals($ex->getCode(),EXC_PARAM_VALUE); } $duplicate->set_parameter('pcm_val','999TEST'); $duplicate->delete(); } /** * @covers Acc_Account::update */ public function testUpdate() { global $g_connection; $new_string="000001112222"; $old_label=$this->object->get_lib(); $this->object->set_parameter("pcm_lib", $new_string); $this->object->update(); $check=new Acc_Account($g_connection,$this->object->get_parameter("pcm_val")); $this->assertEquals($check->get_parameter("pcm_lib"),$new_string); $check->set_parameter("pcm_lib", $old_label); $check->update(); $this->object->load(); $this->assertEquals($this->object->get_lib(),$old_label); } /** * @covers Acc_Account::insert * @covers Acc_Account::find_by_value */ public function testInsert() { $cn=Dossier::connect(); $cn->exec_sql("delete from tmp_pcmn where pcm_val=$1", ['400A']); $new=new Acc_Account($cn); $new->set_parameter("pcm_val", '400A'); $new->set_parameter("pcm_val_parent", "400"); $new->set_parameter("pcm_direct_use", "Y"); // expect libelle vide try { // exception must be thrown from insert $new->insert(); $this->assertFalse(true); } catch (Exception $e) { $this->assertEquals($e->getCode(), EXC_PARAM_VALUE); $new->delete(); } $new->set_parameter("pcm_lib", "Insertion test"); $new->insert(); $check=new Acc_Account($cn); $check->find_by_value('400A'); $this->assertEquals("Insertion test",$check->get_lib()); $new->delete(); } /** * @covers Acc_Account::delete */ public function testDelete() { try { $this->object->delete(); $this->assertFalse(true); } catch (Exception $e) { $this->assertEquals($e->getCode(), EXC_PARAM_VALUE); } } /** * @covers Acc_Account::save */ public function testSave() { global $g_connection; $g_connection->exec_sql("delete from tmp_pcmn where pcm_val=$1", ['999TEST']); $check=new Acc_Account($g_connection,'999TEST'); $check->set_parameter("pcm_lib", "TESTING"); $check->set_parameter('pcm_val_parent','9'); $check->set_parameter('pcm_direct_use','N'); // insert $check->save(); $check_new=new Acc_Account($g_connection,'999TEST'); $this->assertEquals($check_new->get_lib(),$check->get_lib()); $check->set_parameter("pcm_lib","NEW VALUE"); // update $check->save(); $check_new->load(); $this->assertNotEquals($check_new->get_lib(),"TESTING"); $check->delete(); } public function testfind_parent() { $this->object->set_parameter("pcm_val", 70000000); $result=$this->object->find_parent(); $this->assertEquals($result,700); } public static function dataFormatAccount() { return array( ['60élépànç%','60ELEPANC'], ['4000','4000'], ['6é&" #çç!!!,%-.','6ECC'], ['6-alpha6','6ALPHA6'], ['6_alpha6','6ALPHA6'], ['6.alpha6','6ALPHA6'], ['6:alpha6','6:ALPHA6'], ); } /** * @brief format properly the accounting * @testdox check psql function format_account * @param string $param * @param string $p_result * @dataProvider dataFormatAccount */ #[DataProvider('dataFormatAccount')] public function testFormatAccount($param,$p_result) { global $g_connection; $this->assertEquals($g_connection->get_value("select comptaproc.format_account($1)",[$param]), $p_result,"comptaproc.format_account $param does not match $p_result"); } }