2
0
forked from Wavyzz/dolibarr
Files
dolibarr-fork/test/phpunit/AllTests.php
Alexandre Janniaux 9fe9eee18a FIX|Fix some minor issues on Reception and add a new test for it (#26310)
* reception: reOpen: mirror $this->statut in $this->status

$this->statut is the deprecated variable, $this->status should also get
the correct value.

* reception: setDraft: mirror $this->statut in $this->status

$this->statut is the deprecated variable, $this->status should also get
the correct value.

* reception: add missing $weight field

Fix warning:

    Undefined property: Reception::$weight

* societe: add country_id field

* reception: use getDolGlobalInt when suitable

Using empty() implies that the value actually exists on the stdClass at
$conf->global, but it's not always the case. getDolGlobalInt will handle
this smoothly by checking first, which solves warnings like those:

    Undefined property: stdClass::$STOCK_CALCULATE_ON_RECEPTION

* ReceptionTest: add new test

The test checks the usual workflow of the Reception class, with, on the
one hand, the common CRUD operations:
 - create
 - fetch
 - update
 - delete

And on the other hand, the status handling for Reception:
 - valid: STATUS_DRAFT -> STATUS_VALID
 - setClosed: STATUS_VALID -> STATUS_CLOSED
 - reOpen: STATUS_CLOSED -> STATUS_VALID
 - setDraft: STATUS_VALID -> STATUS_DRAFT

The stocks lines are not tested yet, and the error cases, like any other
transition not described above, are not tested either. The permissions
for some of the operations are hardcoded for the test and there is no
failure check when the permission is not set yet.
2023-10-21 16:28:30 +02:00

290 lines
11 KiB
PHP

<?php
/* Copyright (C) 2010-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2011-2012 Regis Houssin <regis.houssin@inodbox.com>
*
* 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/>.
* or see https://www.gnu.org/
*/
/**
* \file test/phpunit/AllTest.php
* \ingroup test
* \brief This file is a test suite to run all unit tests
* \remarks To run this script as CLI: phpunit filename.php
*/
print "PHP Version: ".phpversion()."\n";
print "Memory limit: ". ini_get('memory_limit')."\n";
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';
print 'DOL_MAIN_URL_ROOT='.DOL_MAIN_URL_ROOT."\n"; // constant will be used by other tests
if ($langs->defaultlang != 'en_US') {
print "Error: Default language for company to run tests must be set to en_US or auto. Current is ".$langs->defaultlang."\n";
exit(1);
}
if (!isModEnabled('adherent')) {
print "Error: Module member must be enabled to have significant results.\n";
exit(1);
}
if (isModEnabled('ldap')) {
print "Error: LDAP module should not be enabled.\n";
exit(1);
}
if (isModEnabled('google')) {
print "Warning: Google module should not be enabled.\n";
}
if (empty($user->id)) {
print "Load permissions for admin user nb 1\n";
$user->fetch(1);
$user->getrights();
}
$conf->global->MAIN_DISABLE_ALL_MAILS=1;
$conf->global->MAIN_UMASK='666';
/**
* Class for the All test suite
*/
class AllTests
{
/**
* Function suite to make all PHPUnit tests
*
* @return void
*/
public static function suite()
{
$suite = new PHPUnit\Framework\TestSuite('PHPUnit Framework');
//require_once dirname(__FILE__).'/CoreTest.php';
//$suite->addTestSuite('CoreTest');
require_once dirname(__FILE__).'/AdminLibTest.php';
$suite->addTestSuite('AdminLibTest');
require_once dirname(__FILE__).'/CompanyLibTest.php';
$suite->addTestSuite('CompanyLibTest');
require_once dirname(__FILE__).'/DateLibTest.php';
$suite->addTestSuite('DateLibTest');
require_once dirname(__FILE__).'/UtilsTest.php';
$suite->addTestSuite('UtilsTest');
require_once dirname(__FILE__).'/LesscTest.php';
$suite->addTestSuite('LesscTest');
//require_once dirname(__FILE__).'/DateLibTzFranceTest.php';
//$suite->addTestSuite('DateLibTzFranceTest');
require_once dirname(__FILE__).'/MarginsLibTest.php';
$suite->addTestSuite('MarginsLibTest');
require_once dirname(__FILE__).'/FilesLibTest.php';
$suite->addTestSuite('FilesLibTest');
require_once dirname(__FILE__).'/GetUrlLibTest.php';
$suite->addTestSuite('GetUrlLibTest');
require_once dirname(__FILE__).'/JsonLibTest.php';
$suite->addTestSuite('JsonLibTest');
require_once dirname(__FILE__).'/ImagesLibTest.php';
$suite->addTestSuite('ImagesLibTest');
require_once dirname(__FILE__).'/FunctionsLibTest.php';
$suite->addTestSuite('FunctionsLibTest');
require_once dirname(__FILE__).'/Functions2LibTest.php';
$suite->addTestSuite('Functions2LibTest');
require_once dirname(__FILE__).'/XCalLibTest.php';
$suite->addTestSuite('XCalLibTest');
// Rules into source files content
require_once dirname(__FILE__).'/RepositoryTest.php';
$suite->addTestSuite('RepositoryTest');
require_once dirname(__FILE__).'/LangTest.php';
$suite->addTestSuite('LangTest');
require_once dirname(__FILE__).'/CodingSqlTest.php';
$suite->addTestSuite('CodingSqlTest');
require_once dirname(__FILE__).'/CodingPhpTest.php';
$suite->addTestSuite('CodingPhpTest');
require_once dirname(__FILE__).'/DoliDBTest.php';
$suite->addTestSuite('DoliDBTest');
require_once dirname(__FILE__).'/SecurityTest.php';
$suite->addTestSuite('SecurityTest');
require_once dirname(__FILE__).'/UserTest.php';
$suite->addTestSuite('UserTest');
require_once dirname(__FILE__).'/UserGroupTest.php';
$suite->addTestSuite('UserGroupTest');
require_once dirname(__FILE__).'/NumberingModulesTest.php';
$suite->addTestSuite('NumberingModulesTest');
require_once dirname(__FILE__).'/PgsqlTest.php';
$suite->addTestSuite('PgsqlTest');
require_once dirname(__FILE__).'/PdfDocTest.php';
$suite->addTestSuite('PdfDocTest');
require_once dirname(__FILE__).'/BuildDocTest.php';
$suite->addTestSuite('BuildDocTest');
require_once dirname(__FILE__).'/CMailFileTest.php';
$suite->addTestSuite('CMailFileTest');
require_once dirname(__FILE__).'/CommonObjectTest.php';
$suite->addTestSuite('CommonObjectTest');
require_once dirname(__FILE__).'/ActionCommTest.php';
$suite->addTestSuite('ActionCommTest');
require_once dirname(__FILE__).'/SocieteTest.php';
$suite->addTestSuite('SocieteTest');
require_once dirname(__FILE__).'/ReceptionTest.php';
$suite->addTestSuite('ReceptionTest');
require_once dirname(__FILE__).'/ContactTest.php';
$suite->addTestSuite('ContactTest');
require_once dirname(__FILE__).'/AdherentTest.php';
$suite->addTestSuite('AdherentTest');
require_once dirname(__FILE__).'/ProductTest.php';
$suite->addTestSuite('ProductTest');
require_once dirname(__FILE__).'/PricesTest.php';
$suite->addTestSuite('PricesTest');
require_once dirname(__FILE__).'/DiscountTest.php';
$suite->addTestSuite('DiscountTest');
require_once dirname(__FILE__).'/BOMTest.php';
$suite->addTestSuite('BOMTest');
require_once dirname(__FILE__).'/ContratTest.php';
$suite->addTestSuite('ContratTest');
require_once dirname(__FILE__).'/FichinterTest.php';
$suite->addTestSuite('FichinterTest');
require_once dirname(__FILE__).'/TicketTest.php';
$suite->addTestSuite('TicketTest');
require_once dirname(__FILE__).'/PropalTest.php';
$suite->addTestSuite('PropalTest');
require_once dirname(__FILE__).'/SupplierProposalTest.php';
$suite->addTestSuite('SupplierProposalTest');
require_once dirname(__FILE__).'/CommandeTest.php';
$suite->addTestSuite('CommandeTest');
require_once dirname(__FILE__).'/CommandeFournisseurTest.php';
$suite->addTestSuite('CommandeFournisseurTest');
require_once dirname(__FILE__).'/CommonInvoiceTest.php';
$suite->addTestSuite('CommonInvoiceTest');
require_once dirname(__FILE__).'/FactureTest.php';
$suite->addTestSuite('FactureTest');
require_once dirname(__FILE__).'/FactureRecTest.php';
$suite->addTestSuite('FactureRecTest');
require_once dirname(__FILE__).'/FactureTestRounding.php';
$suite->addTestSuite('FactureTestRounding');
require_once dirname(__FILE__).'/FactureFournisseurTest.php';
$suite->addTestSuite('FactureFournisseurTest');
require_once dirname(__FILE__).'/BankAccountTest.php';
$suite->addTestSuite('BankAccountTest');
require_once dirname(__FILE__).'/CompanyBankAccountTest.php';
$suite->addTestSuite('CompanyBankAccountTest');
require_once dirname(__FILE__).'/BonPrelevementTest.php';
$suite->addTestSuite('BonPrelevementTest');
require_once dirname(__FILE__).'/ChargeSocialesTest.php';
$suite->addTestSuite('ChargeSocialesTest');
require_once dirname(__FILE__).'/HolidayTest.php';
$suite->addTestSuite('HolidayTest');
require_once dirname(__FILE__).'/ExpenseReportTest.php';
$suite->addTestSuite('ExpenseReportTest');
require_once dirname(__FILE__).'/LoanTest.php';
$suite->addTestSuite('LoanTest');
require_once dirname(__FILE__).'/EntrepotTest.php';
$suite->addTestSuite('EntrepotTest');
require_once dirname(__FILE__).'/MouvementStockTest.php';
$suite->addTestSuite('MouvementStockTest');
require_once dirname(__FILE__).'/InventoryTest.php';
$suite->addTestSuite('InventoryTest');
require_once dirname(__FILE__).'/CategorieTest.php';
$suite->addTestSuite('CategorieTest');
require_once dirname(__FILE__).'/ProjectTest.php';
$suite->addTestSuite('ProjectTest');
require_once dirname(__FILE__).'/KnowledgeRecordTest.php';
$suite->addTestSuite('KnowledgeRecordTest');
require_once dirname(__FILE__).'/AccountingAccountTest.php';
$suite->addTestSuite('AccountingAccountTest');
require_once dirname(__FILE__).'/AssetModelTest.php';
$suite->addTestSuite('AssetModelTest');
// Rest
require_once dirname(__FILE__).'/RestAPIUserTest.php';
$suite->addTestSuite('RestAPIUserTest');
require_once dirname(__FILE__).'/RestAPIContactTest.php';
$suite->addTestSuite('RestAPIContactTest');
require_once dirname(__FILE__).'/RestAPIDocumentTest.php';
$suite->addTestSuite('RestAPIDocumentTest');
// Test only with php7.2 or less
//if ((float) phpversion() < 7.3)
//{
require_once dirname(__FILE__).'/WebservicesProductsTest.php';
$suite->addTestSuite('WebservicesProductsTest');
require_once dirname(__FILE__).'/WebservicesInvoicesTest.php';
$suite->addTestSuite('WebservicesInvoicesTest');
require_once dirname(__FILE__).'/WebservicesOrdersTest.php';
$suite->addTestSuite('WebservicesOrdersTest');
require_once dirname(__FILE__).'/WebservicesOtherTest.php';
$suite->addTestSuite('WebservicesOtherTest');
require_once dirname(__FILE__).'/WebservicesThirdpartyTest.php';
$suite->addTestSuite('WebservicesThirdpartyTest');
require_once dirname(__FILE__).'/WebservicesUserTest.php';
$suite->addTestSuite('WebservicesUserTest');
//}
require_once dirname(__FILE__).'/ExportTest.php';
$suite->addTestSuite('ExportTest');
require_once dirname(__FILE__).'/ImportTest.php';
$suite->addTestSuite('ImportTest');
require_once dirname(__FILE__).'/ScriptsTest.php';
$suite->addTestSuite('ScriptsTest');
require_once dirname(__FILE__).'/ModulesTest.php'; // At end because it's the longer
$suite->addTestSuite('ModulesTest');
// GUI
require_once dirname(__FILE__).'/FormAdminTest.php';
$suite->addTestSuite('FormAdminTest');
require_once dirname(__FILE__).'/FormTest.php';
$suite->addTestSuite('FormTest');
// Payment services
require_once dirname(__FILE__).'/PaypalTest.php';
$suite->addTestSuite('PaypalTest');
require_once dirname(__FILE__).'/StripeTest.php';
$suite->addTestSuite('StripeTest');
// Email collector
require_once dirname(__FILE__).'/EmailCollectorTest.php';
$suite->addTestSuite('EmailCollectorTest');
// Website
require_once dirname(__FILE__).'/WebsiteTest.php';
$suite->addTestSuite('WebsiteTest');
return $suite;
}
}