Add unit tests for EconomicCustomerModel parsing and validation

This commit is contained in:
Jeppe Bundgaard
2026-04-21 15:07:41 +02:00
parent 7d450e285e
commit 0b18433fdf
11 changed files with 1070 additions and 26 deletions
+28 -4
View File
@@ -477,16 +477,27 @@ class users_o extends db
// Create a temporary user object
$tmp_user = new users_o();
$tmp_user->getUserByCustomerNumber($customer_number);
$fallbackName = null;
if ($tmp_user->exists()) {
$displayName = $tmp_user->display_name->value();
if (is_string($displayName) && trim($displayName) !== '') {
$fallbackName = $displayName;
}
}
// Get the customer name (Check cache first)
$cached = $tmp_user->getCached('economic_customer');
if (!$cached) {
$tmp_user->getCustomerEcocomicData($customer_number);
try {
$tmp_user->getCustomerEcocomicData($customer_number);
} catch (Exception) {
return $fallbackName;
}
$cached = $tmp_user->getCached('economic_customer');
}
if ($cached) {
if ($cached && isset($cached->name) && is_string($cached->name) && trim($cached->name) !== '') {
return $cached->name;
}
return null;
return $fallbackName;
}
public function getCustomerEcocomicData(int $customer_number = null): users_o
@@ -502,7 +513,20 @@ class users_o extends db
return $this;
}
$this->economic_customer = (new economic_customer_mo())->getCustomerByCustomerNumber($customer_number);
$cachedCustomer = $this->getCached('economic_customer');
if (is_object($cachedCustomer)) {
$cachedCustomerNumber = (int)($cachedCustomer->customerNumber ?? $cachedCustomer->customer_number ?? 0);
if ($cachedCustomerNumber === $customer_number) {
$this->economic_customer = (new economic_customer_mo())->parseCustomer($cachedCustomer);
return $this;
}
}
try {
$this->economic_customer = (new economic_customer_mo())->getCustomerByCustomerNumber($customer_number);
} catch (Exception) {
$this->economic_customer = new economic_customer_mo();
}
return $this;
}