Add new phpunit tests

This commit is contained in:
Laurent Destailleur
2025-11-30 18:37:58 +01:00
parent e932bc0722
commit b83a13656f
5 changed files with 105 additions and 5 deletions

View File

@@ -145,8 +145,6 @@ Barcode
BarcodeDesc BarcodeDesc
BarcodeStickersMask BarcodeStickersMask
BillOfMaterialsLine BillOfMaterialsLine
BlockLogNeedAmountsValue
BlockLogNeedElement
BlockedLogAuthorityNeededToStoreYouFingerprintsInNonAlterableRemote BlockedLogAuthorityNeededToStoreYouFingerprintsInNonAlterableRemote
BlockedLogAuthorityUrl BlockedLogAuthorityUrl
BlockedLogSetup BlockedLogSetup

View File

@@ -990,19 +990,29 @@ class BlockedLog
// Check parameters/properties // Check parameters/properties
if (!isset($this->amounts)) { // amount can be 0 for some events (like when module is disabled) if (!isset($this->amounts)) { // amount can be 0 for some events (like when module is disabled)
$this->error = $langs->trans("BlockLogNeedAmountsValue"); $langs->load("errors");
$this->error = $langs->trans("ErrorBlockLogNeedAmountsValue");
dol_syslog($this->error, LOG_WARNING); dol_syslog($this->error, LOG_WARNING);
return -1; return -1;
} }
if (empty($this->element)) { if (empty($this->element)) {
$this->error = $langs->trans("BlockLogNeedElement"); $langs->load("errors");
$this->error = $langs->trans("ErrorBlockLogNeedElement");
dol_syslog($this->error, LOG_WARNING);
return -2;
}
if (empty($this->object_data)) {
$langs->load("errors");
$this->error = $langs->trans("ErrorBlockLogNeedObject");
dol_syslog($this->error, LOG_WARNING); dol_syslog($this->error, LOG_WARNING);
return -2; return -2;
} }
if (empty($this->action)) { if (empty($this->action)) {
$this->error = $langs->trans("BadParameterWhenCallingCreateOfBlockedLog"); $langs->load("errors");
$this->error = $langs->trans("ErrorBadParameterWhenCallingCreateOfBlockedLog");
dol_syslog($this->error, LOG_WARNING); dol_syslog($this->error, LOG_WARNING);
return -3; return -3;
} }

View File

@@ -369,6 +369,10 @@ ErrorPaymentAmountMustNotBeNull=Error, payment amount must be defined and not ze
ErrorOneLineContainsADisactivatedProduct=Error, at least one product is not or no more on sale or for purchase ErrorOneLineContainsADisactivatedProduct=Error, at least one product is not or no more on sale or for purchase
ErrorCalendarIsNotYetOpenOrHasBeenClosed=This calendar is not yet open or has been closed ErrorCalendarIsNotYetOpenOrHasBeenClosed=This calendar is not yet open or has been closed
ErrorFieldClassNotFoundForClassName=The class "%s" managing the field type "%s" is not found. ErrorFieldClassNotFoundForClassName=The class "%s" managing the field type "%s" is not found.
ErrorBlockLogNeedAmountsValue=The unalterbale log object needs amounts values to be set
ErrorBlockLogNeedElement=The unalterbale log object needs element type to be set
ErrorBlockLogNeedObject=The unalterbale log object needs object to be set
ErrorBadParameterWhenCallingCreateOfBlockedLog=Bad parameter when calling create of blocked log
# Warnings # Warnings
WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup.

View File

@@ -253,6 +253,9 @@ class AllTests
require_once dirname(__FILE__).'/AssetModelTest.php'; require_once dirname(__FILE__).'/AssetModelTest.php';
$suite->addTestSuite('AssetModelTest'); $suite->addTestSuite('AssetModelTest');
require_once dirname(__FILE__).'/BlockedLogAndLNETest.php';
$suite->addTestSuite('BlockedLogAndLNETest');
// Rest // Rest
require_once dirname(__FILE__).'/RestAPIUserTest.php'; require_once dirname(__FILE__).'/RestAPIUserTest.php';
$suite->addTestSuite('RestAPIUserTest'); $suite->addTestSuite('RestAPIUserTest');

View File

@@ -0,0 +1,85 @@
<?php
/* Copyright (C) 2007-2017 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2023 Alexandre Janniaux <alexandre.janniaux@gmail.com>
* Copyright (C) ---Put here your own copyright and developer email---
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
*
* 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 3 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, see <https://www.gnu.org/licenses/>.
*/
/**
* \file test/unit/BlockedLogAndLNETest.php
* \ingroup core
* \brief PHPUnit test for the BlockedLog and LNE class.
*/
global $conf,$user,$langs,$db;
//define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver
//require_once 'PHPUnit/Autoload.php';
require_once dirname(__FILE__).'/../../htdocs/master.inc.php';
require_once dirname(__FILE__).'/../../htdocs/compta/facture/class/facture.class.php';
require_once dirname(__FILE__).'/../../htdocs/blockedlog/class/blockedlog.class.php';
require_once dirname(__FILE__).'/CommonClassTest.class.php';
if (empty($user->id)) {
print "Load permissions for admin user nb 1\n";
$user->fetch(1);
$user->loadRights();
}
$conf->global->MAIN_DISABLE_ALL_MAILS = 1;
$langs->load("main");
/**
* Class for PHPUnit tests
*
* @backupGlobals disabled
* @backupStaticAttributes enabled
* @remarks backupGlobals must be disabled to have db,conf,user and lang not erased.
*/
class BlockedLogAndLNETest extends CommonClassTest
{
/**
* testBlockedLogAndLNETest
*
* @return int
*/
public function testBlockedLogAndLNETest()
{
global $conf,$user,$langs,$db;
$conf = $this->savconf;
$user = $this->savuser;
$langs = $this->savlangs;
$db = $this->savdb;
$localobject = new BlockedLog($db);
$localobject->action = 'TEST';
$element = new Facture($db);
$element->initAsSpecimen();
$localobject->element = $element->element;
$localobject->object_data = $element;
$result = $localobject->create($user);
print __METHOD__." result=".$result."\n";
$this->assertLessThan($result, 0);
return $result;
}
// TODO Add more tests
}