noalyss-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Noalyss-commit] [noalyss] branch master updated: Add new PHP Unit file


From: Dany De Bontridder
Subject: [Noalyss-commit] [noalyss] branch master updated: Add new PHP Unit file
Date: Mon, 06 Dec 2021 13:00:14 -0500

This is an automated email from the git hooks/post-receive script.

sparkyx pushed a commit to branch master
in repository noalyss.

The following commit(s) were added to refs/heads/master by this push:
     new 613360b  Add new PHP Unit file
613360b is described below

commit 613360befe2c44e2b5c192d5bd71b27a27c41306
Author: sparkyx <danydb@noalyss.eu>
AuthorDate: Mon Dec 6 18:56:16 2021 +0100

    Add new PHP Unit file
---
 unit-test/include/class/followup_detail.Test.php | 132 ++++++++++++++++
 unit-test/include/class/forecast.Test.php        | 128 ++++++++++++++++
 unit-test/include/class/periode.Test.php         | 187 +++++++++++++++++++++++
 unit-test/include/class/todo_list.Test.php       | 141 +++++++++++++++++
 unit-test/include/lib/databaseCore.Test.php      |  74 +++++++++
 5 files changed, 662 insertions(+)

diff --git a/unit-test/include/class/followup_detail.Test.php 
b/unit-test/include/class/followup_detail.Test.php
new file mode 100644
index 0000000..60c6675
--- /dev/null
+++ b/unit-test/include/class/followup_detail.Test.php
@@ -0,0 +1,132 @@
+<?php
+
+/*
+ * * Copyright (C) 2021 Dany De Bontridder <dany@alchimerys.be>
+ *
+ * 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 the Free Software Foundation; either version 2
+ * of the License, or (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
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+ * 
+ * Author : Dany De Bontridder danydb@noalyss.eu
+ * 
+ */
+
+/**
+ * @file
+ * @brief 
+ */
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @backupGlobals enabled
+ * @coversDefaultClass \Follow_Up_Detail
+ */
+require 'global.php';
+
+class Follow_Up_DetailTest extends TestCase
+{
+
+    /**
+     * @var Fiche
+     */
+    protected $object;
+
+    /**
+     * Sets up the fixture, for example, opens a network connection.
+     * This method is called before a test method is executed.
+     */
+    protected function setUp()
+    {
+        include 'global.php';
+    }
+
+    /**
+     * Tears down the fixture, for example, closes a network connection.
+     * This method is called after a test method is executed.
+     */
+    protected function tearDown()
+    {
+        
+    }
+
+    /**
+     * the setUpBeforeClass() template methods is called before the first test 
of the test case
+     *  class is run 
+     */
+    public static function setUpBeforeClass()
+    {
+        global $g_connection;
+        $g_connection->exec_sql('delete from action_detail');
+    }
+
+    /**
+     *  tearDownAfterClass() template methods is calleafter the last test of 
the test case class is run,
+     *
+     */
+    static function tearDownAfterClass()
+    {
+        //        include 'global.php';
+    }
+
+      private function insert(Follow_Up_Detail $pFollow_Detail) 
+      {
+        $pFollow_Detail->set_parameter("qcode", 23);
+        $pFollow_Detail->set_parameter("text" ,"Marchandise 1");
+        $pFollow_Detail->set_parameter("price_unit",5.30);
+        $pFollow_Detail->set_parameter("quantity",12);
+        $pFollow_Detail->set_parameter("tva_id",null);
+        $pFollow_Detail->set_parameter("tva_amount", 0);
+        $pFollow_Detail->set_parameter("total", 63.6);
+        $pFollow_Detail->set_parameter("ag_id", 1);
+        $pFollow_Detail->insert();
+      }
+
+    /**
+     * @brief test insert, load , delete
+     * @testdox insert into action_detail
+     * @covers ::insert ::delete ::load
+     */
+    public function testSQL_Insert()
+    {
+        global $g_connection;
+        $obj=new Follow_Up_Detail($g_connection);
+        $this->insert($obj);
+        $this->assertTrue($obj->get_parameter("id")>0,"Cannot insert");
+        $obj->delete();
+        $this->assertFalse($obj->load(),"Cannot delete");
+    }
+    
+    /**
+     * @brief test update, load , insert, delete
+     * @testdox update into action_detail
+     * @covers ::insert ::delete ::load
+     */
+    public function testSQL_Update()
+    {
+        global $g_connection;
+         $obj=new Follow_Up_Detail($g_connection);
+        $this->insert($obj);
+        $this->assertTrue($obj->get_parameter("id")>0,"Cannot insert");
+        
+        $obj->set_parameter('text','TEST UPDATE');
+        $obj->save();
+        $reload=new Follow_Up_Detail($g_connection,$obj->get_parameter("id"));
+        $reload->load();
+        $this->assertTrue($reload->get_parameter("text") == 
$obj->get_parameter("text"),"cannot update");
+        $reload->delete();
+        $this->assertFalse($reload->load(),"Cannot delete");
+        
+    }
+    
+}
diff --git a/unit-test/include/class/forecast.Test.php 
b/unit-test/include/class/forecast.Test.php
new file mode 100644
index 0000000..8e85b5e
--- /dev/null
+++ b/unit-test/include/class/forecast.Test.php
@@ -0,0 +1,128 @@
+<?php
+
+/*
+ * * Copyright (C) 2021 Dany De Bontridder <dany@alchimerys.be>
+ *
+ * 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 the Free Software Foundation; either version 2
+ * of the License, or (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
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+ * 
+ * Author : Dany De Bontridder danydb@noalyss.eu
+ * 
+ */
+
+/**
+ * @file
+ * @brief 
+ */
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @backupGlobals enabled
+ * @coversDefaultClass \Forecast
+ */
+require 'global.php';
+
+class ForecastTest extends TestCase
+{
+
+    /**
+     * @var Fiche
+     */
+    protected $object;
+
+    /**
+     * Sets up the fixture, for example, opens a network connection.
+     * This method is called before a test method is executed.
+     */
+    protected function setUp()
+    {
+        include 'global.php';
+    }
+
+    /**
+     * Tears down the fixture, for example, closes a network connection.
+     * This method is called after a test method is executed.
+     */
+    protected function tearDown()
+    {
+        
+    }
+
+    /**
+     * the setUpBeforeClass() template methods is called before the first test 
of the test case
+     *  class is run 
+     */
+    public static function setUpBeforeClass()
+    {
+        include 'global.php';
+        global $g_connection;
+        $g_connection->exec_sql('delete from forecast');
+    }
+
+    /**
+     *  tearDownAfterClass() template methods is calleafter the last test of 
the test case class is run,
+     *
+     */
+    static function tearDownAfterClass()
+    {
+        //        include 'global.php';
+    }
+
+    
+
+    /**
+     * @brief test insert, load , delete
+     * @testdox insert into forecast
+     * @covers ::insert ::delete ::load
+     */
+    public function testSQL_Insert()
+    {
+        global $g_connection;
+        $obj=new Forecast($g_connection);
+        $obj->set_parameter("start_date", 111);
+        $obj->set_parameter("end_date", 116);
+        $obj->set_parameter("name","PhpUNIT 2014");
+        $obj->insert();
+        $this->assertTrue($obj->get_parameter("id")>0,"Cannot insert");
+        $obj->delete();
+        $this->assertFalse($obj->load(),"Cannot delete");
+    }
+    
+    /**
+     * @brief test update, load , insert, delete
+     * @testdox update into forecast
+     * @covers ::insert ::delete ::load
+     */
+    public function testSQL_Update()
+    {
+        global $g_connection;
+        $obj=new Forecast($g_connection);
+        $obj->set_parameter("start_date", 111);
+        $obj->set_parameter("end_date", 116);
+        $obj->set_parameter("name", "PhpUNIT 2014");
+        $obj->insert();
+        
+        $this->assertTrue($obj->get_parameter("id")>0,"Cannot insert");
+        $obj->set_parameter('name','TEST UPDATE');
+        $obj->save();
+        $reload=new Forecast($g_connection,$obj->get_parameter("id"));
+        $reload->load();
+        $this->assertTrue($reload->get_parameter("name") == 
$obj->get_parameter("name"),"cannot update");
+        $reload->delete();
+        $this->assertFalse($reload->load(),"Cannot delete");
+        
+    }
+    
+}
diff --git a/unit-test/include/class/periode.Test.php 
b/unit-test/include/class/periode.Test.php
new file mode 100644
index 0000000..f0a3edb
--- /dev/null
+++ b/unit-test/include/class/periode.Test.php
@@ -0,0 +1,187 @@
+<?php
+
+/*
+ * * Copyright (C) 2021 Dany De Bontridder <dany@alchimerys.be>
+ *
+ * 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 the Free Software Foundation; either version 2
+ * of the License, or (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
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+ * 
+ * Author : Dany De Bontridder danydb@noalyss.eu
+ * 
+ */
+
+/**
+ * @file
+ * @brief 
+ */
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @backupGlobals enabled
+ */
+require 'global.php';
+
+class PeriodeTest extends TestCase
+{
+
+    /**
+     * @var Fiche
+     */
+    protected $object;
+
+    /**
+     * Sets up the fixture, for example, opens a network connection.
+     * This method is called before a test method is executed.
+     */
+    protected function setUp()
+    {
+        include 'global.php';
+    }
+
+    /**
+     * Tears down the fixture, for example, closes a network connection.
+     * This method is called after a test method is executed.
+     */
+    protected function tearDown()
+    {
+        
+    }
+
+    /**
+     * the setUpBeforeClass() template methods is called before the first test 
of the test case
+     *  class is run 
+     */
+    public static function setUpBeforeClass()
+    {
+        //        include 'global.php';
+    }
+
+    /**
+     *  tearDownAfterClass() template methods is calleafter the last test of 
the test case class is run,
+     *
+     */
+    static function tearDownAfterClass()
+    {
+        //        include 'global.php';
+    }
+
+    public function dataInsert()
+    {
+        return array(
+            [ '01.01.2023' , '31.01.2023','2020','2020.2023','NOK'],
+            [ '01.01.2023' , '31.01.2023','2023','2020.2023','OK'],
+            [ '01.02.2023' , '28.02.2023','2020','2020.2023','NOK'],
+            [ '01.02.2023' , '28.02.2023','2023','2020.2023','OK'],
+            [ '01.02.2023' , '28.01.2023','2023','2020.2023','NOK']
+            );
+    }
+
+    /**
+     * @brief test the trigger comptaproc.check_periode()
+     * @testdox insert - comptaproc.check_periode
+     * @dataProvider dataInsert
+     * @param type $p_param
+     * @covers
+     */
+    public function 
testInsert($p_start,$p_end,$p_exercice,$p_exercice_label,$p_status)
+    {
+        global $g_connection;
+
+        $g_connection->exec_sql("delete from parm_periode where p_id > 144");
+        $obj=new Parm_periode_SQL($g_connection);
+        $obj->set('p_start',$p_start);
+        $obj->set('p_end',$p_end);
+        $obj->set('p_closed',false);
+        $obj->set('p_central',false);
+        $obj->set('p_exercice',$p_exercice);
+        $obj->set('p_exercice_label',$p_exercice_label);
+        try {
+            
+            $obj->insert();
+            if ($p_status== 'OK') {
+                $this->assertTrue(True,"Expected");
+            } else {
+                $this->assertTrue(FALSE,"Error");
+            }
+        } catch(Exception $e) {
+            if ($p_status == 'NOK') {
+                $this->assertTrue(True,"Expected");
+            } else {
+                $this->assertTrue(FALSE,"Error");
+                printf("message : %s",$e->getMessage());
+            }
+            
+        }
+        $g_connection->exec_sql("delete from parm_periode where p_id > 144");
+    }
+    public function dataUpdate()
+    {
+        return array(
+            [ '01.01.2023' , '31.01.2023','2020','2020.2023','NOK'],
+            [ '01.01.2023' , '31.01.2023','2023','2020.2023','OK'],
+            [ '01.02.2023' , '28.02.2023','2020','2020.2023','NOK'],
+            [ '01.02.2023' , '28.02.2023','2023','2020.2023','OK'],
+            [ '01.02.2023' , '28.01.2023','2023','2020.2023','NOK']
+            );
+    }
+
+    /**
+     * @brief test the trigger comptaproc.check_periode()
+     * @testdox update - comptaproc.check_periode
+     * @dataProvider dataInsert
+     * 
+     * 
+     */
+    public function 
testUpdate($p_start,$p_end,$p_exercice,$p_exercice_label,$p_status)
+    {
+        
+        global $g_connection;
+        /* insert the record to update */
+        $g_connection->exec_sql("delete from parm_periode where p_exercice 
=$1",["2024-PHPUNIT"]);
+        $obj=new Parm_periode_SQL($g_connection);
+        $obj->set('p_start','01.01.2024');
+        $obj->set('p_end','31.01.2024');
+        $obj->set('p_closed',false);
+        $obj->set('p_central',false);
+        $obj->set('p_exercice','2024');
+        $obj->set('p_exercice_label',"2024-PHPUNIT");
+        try {
+            
+            $obj->insert();
+            $obj->set('p_start',$p_start);
+            $obj->set('p_end',$p_end);
+            $obj->set('p_closed',false);
+            $obj->set('p_central',false);
+            $obj->set('p_exercice',$p_exercice);
+            $obj->set('p_exercice_label',$p_exercice_label);
+            $obj->update();
+            if ($p_status== 'OK') {
+                $this->assertTrue(True,"Expected");
+            } else {
+                $this->assertTrue(FALSE,"Error");
+            }
+           
+        } catch(Exception $e) {
+            if ($p_status == 'NOK') {
+                $this->assertTrue(True,"Expected");
+            } else {
+                $this->assertTrue(FALSE,"Error");
+                printf("message : %s",$e->getMessage());
+            }
+            
+        }
+        $g_connection->exec_sql("delete from parm_periode where p_exercice 
=$1",["2024-PHPUNIT"]);
+    }
+}
diff --git a/unit-test/include/class/todo_list.Test.php 
b/unit-test/include/class/todo_list.Test.php
new file mode 100644
index 0000000..c337374
--- /dev/null
+++ b/unit-test/include/class/todo_list.Test.php
@@ -0,0 +1,141 @@
+<?php
+
+/*
+ * * Copyright (C) 2021 Dany De Bontridder <dany@alchimerys.be>
+ *
+ * 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 the Free Software Foundation; either version 2
+ * of the License, or (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
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+ * 
+ * Author : Dany De Bontridder danydb@noalyss.eu
+ * 
+ */
+
+/**
+ * @file
+ * @brief 
+ */
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @backupGlobals enabled
+ * @coversDefaultClass \Todo_List
+ */
+require 'global.php';
+
+class Todo_ListTest extends TestCase
+{
+
+    /**
+     * @var Fiche
+     */
+    protected $object;
+
+    /**
+     * Sets up the fixture, for example, opens a network connection.
+     * This method is called before a test method is executed.
+     */
+    protected function setUp()
+    {
+    }
+
+    /**
+     * Tears down the fixture, for example, closes a network connection.
+     * This method is called after a test method is executed.
+     */
+    protected function tearDown()
+    {
+        
+    }
+
+    /**
+     * the setUpBeforeClass() template methods is called before the first test 
of the test case
+     *  class is run 
+     */
+    public static function setUpBeforeClass()
+    {
+        require 'global.php';
+        global $g_connection;
+        $g_connection->exec_sql("delete from todo_list");
+        $g_connection->exec_sql("alter sequence todo_list_tl_id_seq restart 
with 1000");
+        
+        $g_connection->exec_sql("INSERT INTO todo_list 
(tl_id,tl_date,tl_title,tl_desc,use_login,is_public)
+            VALUES
+        (1,'2018-02-24','TVA','Déclaration TVA',$1,'N'),
+        (2,'2019-02-28','Test PHPUNIT','Test PHPUNIST',$1,'Y'),
+        (3,'2014-03-14','PhpUNit 2','Second test',$1,'N'),
+        (4,'2017-06-24','PhpUnit 3','Déclaration TVA',$1,'N'),
+        (5,'2016-06-18','PhpUNit 4','4 
test',$1,'N');",array($_SESSION[SESSION_KEY.'g_user'] ));
+    }
+
+    /**
+     * @brief 
+     * @testdox Test load, load_all , delete, insert , update
+     * @param type $p_param
+     *s @covers
+     */
+    public function test_SQLStmt()
+    {
+        global $g_connection;
+        $obj=new Todo_List($g_connection);
+        $obj->set_parameter("id", 3);
+        $obj->load();
+        $this->assertEquals('14.03.2014',$obj->get_parameter("date"),"Wrong 
record");
+        
+        $obj->set_parameter("id", 5);
+        $obj->load();
+        $this->assertEquals('18.06.2016',$obj->get_parameter("date"),"Wrong 
record");
+        
+        $a_todo_list=$obj->load_all();
+        $this->assertEquals(5,count($a_todo_list),"Wrong number of rows");
+        foreach ($a_todo_list as $todo_list) {
+            $idx=$todo_list["tl_id"];
+            $date=$todo_list["tl_date"];
+            if ( $idx==1) {
+                $this->assertEquals('24.02.2018',$date,"Wrong date [$date]" );
+            }elseif ($idx==2) 
+            {
+                $this->assertEquals('28.02.2019',$date,"Wrong date [$date]" );
+                
+            }
+        }
+        $obj->delete();
+        $this->assertEquals(false,$obj->load(),"Not deleted");
+        
+        
+        $obj=new Todo_List($g_connection);
+        $obj->set_parameter("id", 1);
+        $obj->load();
+        
+        $obj2=clone $obj;
+        $obj2->set_parameter("id",0);
+        $obj2->insert();
+        
+        $obj3=new Todo_List($g_connection);
+        $obj3->set_parameter("id", $obj2->get_parameter("id"));
+        $this->assertEquals(true,$obj3->load(),"Not inserted");
+         
+         $obj3->set_parameter("title","PHPUNIT-TITLE");
+         $obj3->save();
+         
+        $obj4=new Todo_List($g_connection);
+        $obj4->set_parameter("id", $obj2->get_parameter("id"));
+        $obj4->load();
+        $this->assertEquals("PHPUNIT-TITLE",$obj4->get_parameter("title"),"not 
Updated");
+        
+         $g_connection->exec_sql("delete from todo_list");
+        
+    }
+
+}
diff --git a/unit-test/include/lib/databaseCore.Test.php 
b/unit-test/include/lib/databaseCore.Test.php
new file mode 100644
index 0000000..e8c5d44
--- /dev/null
+++ b/unit-test/include/lib/databaseCore.Test.php
@@ -0,0 +1,74 @@
+<?php
+
+/*
+ *   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 Test DabaseCore
+ */
+use PHPUnit\Framework\TestCase;
+
+/**
+ * Generated by PHPUnit_SkeletonGenerator on 2016-02-11 at 15:41:40.
+ */
+class DatabaseCoreTest extends TestCase
+
+{
+
+    /**
+     * @var Database
+     */
+    protected $object;
+
+    /**
+     * Sets up the fixture, for example, opens a network connection.
+     * This method is called before a test is executed.
+     */
+    protected function setUp()
+    {
+        $noalyss_user = (defined("noalyss_user")) ? noalyss_user : 
phpcompta_user;
+        $password = (defined("noalyss_password")) ? noalyss_password : 
phpcompta_password;
+        $port = (defined("noalyss_psql_port")) ? noalyss_psql_port : 
phpcompta_psql_port;
+        $host = (!defined("noalyss_psql_host")) ? '127.0.0.1' : 
noalyss_psql_host;
+        $this->object=new DatabaseCore($noalyss_user, $password, 
sprintf("%sdossier%s",domaine,DOSSIER), $host, $port);
+    }
+
+    /**
+     * Tears down the fixture, for example, closes a network connection.
+     * This method is called after a test is executed.
+     */
+    protected function tearDown()
+    {
+        
+    }
+    /**
+     * 
+     */
+    public function testExec_SQL()
+    {
+        $this->assertEquals(DBVERSION,$this->object->get_value("select 
max(val) from version"),"check Version");
+        $this->assertTrue(true,$this->object->get_is_open(),"Database open");
+        
+        
+    }
+
+    
+
+}
\ No newline at end of file



reply via email to

[Prev in Thread] Current Thread [Next in Thread]