dtopor1
diff --git a/Core/View/Wizard.html.twig b/Core/View/Wizard.html.twig
index 485f220cff..3db0720974 100644
--- a/Core/View/Wizard.html.twig
+++ b/Core/View/Wizard.html.twig
@@ -89,7 +89,7 @@
{{ forms.simpleInput('direccion', 'direccion', fsc.empresa.direccion, 'text', trans('address'),
- 'fa-solid fa-map-marked', {'maxlength': '100'}) }}
+ 'fa-solid fa-map-marked', {'maxlength': '200'}) }}
diff --git a/Core/XMLView/EditAlmacen.xml b/Core/XMLView/EditAlmacen.xml
index c67d0be31e..655727a3fc 100644
--- a/Core/XMLView/EditAlmacen.xml
+++ b/Core/XMLView/EditAlmacen.xml
@@ -29,7 +29,7 @@
-
+
diff --git a/Core/XMLView/EditContacto.xml b/Core/XMLView/EditContacto.xml
index 0a9f0a18f5..6795b4b07b 100644
--- a/Core/XMLView/EditContacto.xml
+++ b/Core/XMLView/EditContacto.xml
@@ -80,7 +80,7 @@
-
+
diff --git a/Core/XMLView/EditDireccionContacto.xml b/Core/XMLView/EditDireccionContacto.xml
index 7ffe7fe340..88cd64815d 100644
--- a/Core/XMLView/EditDireccionContacto.xml
+++ b/Core/XMLView/EditDireccionContacto.xml
@@ -38,7 +38,7 @@
-
+
diff --git a/Core/XMLView/EditEmpresa.xml b/Core/XMLView/EditEmpresa.xml
index 14f6c80782..0acde74e8e 100644
--- a/Core/XMLView/EditEmpresa.xml
+++ b/Core/XMLView/EditEmpresa.xml
@@ -46,7 +46,7 @@
-
+
diff --git a/Test/Core/Model/AlbaranClienteTest.php b/Test/Core/Model/AlbaranClienteTest.php
index 94d940c2b4..ad3878f2a3 100644
--- a/Test/Core/Model/AlbaranClienteTest.php
+++ b/Test/Core/Model/AlbaranClienteTest.php
@@ -25,6 +25,7 @@
use FacturaScripts\Core\Model\Almacen;
use FacturaScripts\Core\Model\Empresa;
use FacturaScripts\Core\Model\Stock;
+use FacturaScripts\Core\Tools;
use FacturaScripts\Test\Traits\DefaultSettingsTrait;
use FacturaScripts\Test\Traits\LogErrorsTrait;
use FacturaScripts\Test\Traits\RandomDataTrait;
@@ -274,6 +275,47 @@ public function testCreateProductLine(): void
$this->assertTrue($product->delete(), 'can-not-delete-product-3');
}
+ public function testPropertiesLength(): void
+ {
+ // creamos un cliente
+ $subject = $this->getRandomCustomer();
+ $this->assertTrue($subject->save(), 'can-not-save-customer-1');
+
+
+ // Definir los campos a validar: campo => [longitud_máxima, longitud_invalida]
+ $campos = [
+ 'apartado' => [10, 11],
+ 'cifnif' => [30, 31],
+ 'ciudad' => [100, 101],
+ 'codpais' => [20, 21],
+ 'codpostal' => [10, 11],
+ 'direccion' => [200, 201],
+ 'nombrecliente' => [100, 101],
+ 'provincia' => [100, 101],
+ ];
+
+ foreach ($campos as $campo => [$valido, $invalido]) {
+ // Creamos un nuevo albarán
+ $doc = new AlbaranCliente();
+ $doc->setSubject($subject);
+
+ // Asignamos el valor inválido en el campo a probar
+ $doc->{$campo} = Tools::randomString($invalido);
+ $this->assertFalse($doc->save(), "can-save-albaranCliente-bad-{$campo}");
+
+ // Corregimos el campo y comprobamos que ahora sí se puede guardar
+ $doc->{$campo} = Tools::randomString($valido);
+ $this->assertTrue($doc->save(), "cannot-save-albaranCliente-fixed-{$campo}");
+
+ // Limpiar
+ $this->assertTrue($doc->delete(), "cannot-delete-albaranCliente-{$campo}");
+ }
+
+ // Eliminamos el cliente
+ $this->assertTrue($subject->getDefaultAddress()->delete(), 'can-not-delete-contact');
+ $this->assertTrue($subject->delete(), 'can-not-delete-customer');
+ }
+
public function testSecondCompany(): void
{
// creamos la empresa 2
diff --git a/Test/Core/Model/AlbaranProveedorTest.php b/Test/Core/Model/AlbaranProveedorTest.php
index 09ca3089e0..099134bc65 100644
--- a/Test/Core/Model/AlbaranProveedorTest.php
+++ b/Test/Core/Model/AlbaranProveedorTest.php
@@ -24,6 +24,7 @@
use FacturaScripts\Core\Model\AlbaranProveedor;
use FacturaScripts\Core\Model\Almacen;
use FacturaScripts\Core\Model\Empresa;
+use FacturaScripts\Core\Tools;
use FacturaScripts\Test\Traits\DefaultSettingsTrait;
use FacturaScripts\Test\Traits\LogErrorsTrait;
use FacturaScripts\Test\Traits\RandomDataTrait;
@@ -231,6 +232,44 @@ public function testCreateProductLine()
$this->assertTrue($product->delete(), 'can-not-delete-product-3');
}
+ public function testPropertiesLength(): void
+ {
+ // creamos un proveedor
+ $subject = $this->getRandomSupplier();
+ $this->assertTrue($subject->save(), 'can-not-save-customer-1');
+
+
+ // Definir los campos a validar: campo => [longitud_máxima, longitud_invalida]
+ $campos = [
+ 'cifnif' => [30, 31],
+ 'codigo' => [20, 21],
+ 'nombre' => [100, 101],
+ 'numproveedor' => [50, 51],
+ 'operacion' => [20, 21],
+ ];
+
+ foreach ($campos as $campo => [$valido, $invalido]) {
+ // Creamos un nuevo albarán
+ $doc = new AlbaranProveedor();
+ $doc->setSubject($subject);
+
+ // Asignamos el valor inválido en el campo a probar
+ $doc->{$campo} = Tools::randomString($invalido);
+ $this->assertFalse($doc->save(), "can-save-albaranProveedor-bad-{$campo}");
+
+ // Corregimos el campo y comprobamos que ahora sí se puede guardar
+ $doc->{$campo} = Tools::randomString($valido);
+ $this->assertTrue($doc->save(), "cannot-save-albaranProveedor-fixed-{$campo}");
+
+ // Limpiar
+ $this->assertTrue($doc->delete(), "cannot-delete-albaranProveedor-{$campo}");
+ }
+
+ // Eliminamos el cliente
+ $this->assertTrue($subject->getDefaultAddress()->delete(), 'can-not-delete-contact');
+ $this->assertTrue($subject->delete(), 'can-not-delete-customer');
+ }
+
public function testSecondCompany()
{
// creamos la empresa 2
diff --git a/Test/Core/Model/AlmacenTest.php b/Test/Core/Model/AlmacenTest.php
index be3ff6169b..5ec6bb7faa 100644
--- a/Test/Core/Model/AlmacenTest.php
+++ b/Test/Core/Model/AlmacenTest.php
@@ -20,6 +20,7 @@
namespace FacturaScripts\Test\Core\Model;
use FacturaScripts\Core\Model\Almacen;
+use FacturaScripts\Core\Tools;
use FacturaScripts\Test\Traits\LogErrorsTrait;
use PHPUnit\Framework\TestCase;
@@ -67,6 +68,41 @@ public function testDeleteDefault(): void
}
}
+ public function testPropertiesLength(): void
+ {
+ // Definir los campos a validar: campo => [longitud_máxima, longitud_invalida]
+ $campos = [
+ 'apartado' => [10, 11],
+ 'ciudad' => [100, 101],
+ 'codpais' => [20, 21],
+ 'codalmacen' => [4, 5],
+ 'codpostal' => [10, 11],
+ 'direccion' => [200, 201],
+ 'nombre' => [100, 101],
+ 'provincia' => [100, 101],
+ 'telefono' => [30, 31],
+ ];
+
+ foreach ($campos as $campo => [$valido, $invalido]) {
+ // Creamos un nuevo almacén
+ $warehouse = new Almacen();
+
+ // campo obligatorio (not null)
+ $warehouse->nombre = 'Test Warehouse with new code';
+
+ // Asignamos el valor inválido en el campo a probar
+ $warehouse->{$campo} = Tools::randomString($invalido);
+ $this->assertFalse($warehouse->save(), "can-save-almacen-bad-{$campo}");
+
+ // Corregimos el campo y comprobamos que ahora sí se puede guardar
+ $warehouse->{$campo} = Tools::randomString($valido);
+ $this->assertTrue($warehouse->save(), "cannot-save-almacen-fixed-{$campo}");
+
+ // Limpiar
+ $this->assertTrue($warehouse->delete(), "cannot-delete-almacen-{$campo}");
+ }
+ }
+
protected function tearDown(): void
{
$this->logErrors();
diff --git a/Test/Core/Model/ContactoTest.php b/Test/Core/Model/ContactoTest.php
index 6dae1bf1c2..d4e7f600be 100644
--- a/Test/Core/Model/ContactoTest.php
+++ b/Test/Core/Model/ContactoTest.php
@@ -23,6 +23,7 @@
use FacturaScripts\Core\Base\DataBase\DataBaseWhere;
use FacturaScripts\Core\Lib\Vies;
use FacturaScripts\Core\Model\Contacto;
+use FacturaScripts\Core\Tools;
use FacturaScripts\Test\Traits\LogErrorsTrait;
use FacturaScripts\Test\Traits\RandomDataTrait;
use PHPUnit\Framework\TestCase;
@@ -195,6 +196,51 @@ public function testNotNullFields(): void
$this->assertTrue($contact->delete(), 'contact-cant-delete');
}
+ public function testPropertiesLength(): void
+ {
+ // Definir los campos a validar: campo => [longitud_máxima, longitud_invalida]
+ $campos = [
+ 'apellidos' => [150, 151],
+ 'apartado' => [10, 11],
+ 'cargo' => [100, 101],
+ 'cifnif' => [30, 31],
+ 'ciudad' => [100, 101],
+ 'codpais' => [20, 21],
+ 'codpostal' => [10, 11],
+ 'descripcion' => [100, 101],
+ 'direccion' => [200, 201],
+ //'email' => [100, 101],
+ 'empresa' => [100, 101],
+ 'langcode' => [10, 11],
+ 'nombre' => [100, 101],
+ 'provincia' => [100, 101],
+ 'telefono1' => [30, 31],
+ 'telefono2' => [30, 31],
+ 'tipoidfiscal' => [25, 26],
+ //'web' => [100, 101],
+ ];
+
+ foreach ($campos as $campo => [$valido, $invalido]) {
+ // Creamos un nuevo almacén
+ $contact = new Contacto();
+
+ // campo obligatorio (not null)
+ $contact->nombre = 'Test';
+ $contact->descripcion = 'Test'; // evitar autorellenado
+
+ // Asignamos el valor inválido en el campo a probar
+ $contact->{$campo} = Tools::randomString($invalido);
+ $this->assertFalse($contact->save(), "can-save-contacto-bad-{$campo}");
+
+ // Corregimos el campo y comprobamos que ahora sí se puede guardar
+ $contact->{$campo} = Tools::randomString($valido);
+ $this->assertTrue($contact->save(), "cannot-save-contacto-fixed-{$campo}");
+
+ // Limpiar
+ $this->assertTrue($contact->delete(), "cannot-delete-contacto-{$campo}");
+ }
+ }
+
public function testVies(): void
{
// creamos un contacto sin cif/nif
diff --git a/Test/Core/Model/EmpresaTest.php b/Test/Core/Model/EmpresaTest.php
index 7c783d2b19..ca5284c359 100644
--- a/Test/Core/Model/EmpresaTest.php
+++ b/Test/Core/Model/EmpresaTest.php
@@ -22,6 +22,7 @@
use FacturaScripts\Core\Base\DataBase\DataBaseWhere;
use FacturaScripts\Core\Model\Almacen;
use FacturaScripts\Core\Model\Empresa;
+use FacturaScripts\Core\Tools;
use PHPUnit\Framework\TestCase;
final class EmpresaTest extends TestCase
@@ -46,4 +47,48 @@ public function testCreate(): void
// el almacén también se ha eliminado
$this->assertFalse($warehouse->exists(), 'warehouse-still-exists');
}
+
+ public function testPropertiesLength(): void
+ {
+ // Definir los campos a validar: campo => [longitud_máxima, longitud_invalida]
+ $campos = [
+ 'administrador' => [100, 101],
+ 'apartado' => [10, 11],
+ 'cifnif' => [30, 31],
+ 'ciudad' => [100, 101],
+ 'codpais' => [20, 21],
+ 'codpostal' => [10, 11],
+ 'direccion' => [200, 201],
+ 'excepcioniva' => [20, 21],
+ //'email' => [100, 101],
+ 'fax' => [30, 31],
+ 'nombre' => [100, 101],
+ 'nombrecorto' => [32, 33],
+ 'provincia' => [100, 101],
+ 'regimeniva' => [20, 21],
+ 'telefono1' => [30, 31],
+ 'telefono2' => [30, 31],
+ 'tipoidfiscal' => [25, 26],
+ //'web' => [100, 101],
+ ];
+
+ foreach ($campos as $campo => [$valido, $invalido]) {
+ // Creamos un nuevo almacén
+ $company = new Empresa();
+
+ // campo obligatorio (not null)
+ $company->nombre = 'Test';
+
+ // Asignamos el valor inválido en el campo a probar
+ $company->{$campo} = Tools::randomString($invalido);
+ $this->assertFalse($company->save(), "can-save-empresa-bad-{$campo}");
+
+ // Corregimos el campo y comprobamos que ahora sí se puede guardar
+ $company->{$campo} = Tools::randomString($valido);
+ $this->assertTrue($company->save(), "cannot-save-empresa-fixed-{$campo}");
+
+ // Limpiar
+ $this->assertTrue($company->delete(), "cannot-delete-empresa-{$campo}");
+ }
+ }
}
diff --git a/Test/Core/Model/FacturaClienteTest.php b/Test/Core/Model/FacturaClienteTest.php
index f703c51e02..90610b1fec 100644
--- a/Test/Core/Model/FacturaClienteTest.php
+++ b/Test/Core/Model/FacturaClienteTest.php
@@ -29,6 +29,7 @@
use FacturaScripts\Core\Model\Ejercicio;
use FacturaScripts\Core\Model\FacturaCliente;
use FacturaScripts\Core\Model\Stock;
+use FacturaScripts\Core\Tools;
use FacturaScripts\Test\Traits\DefaultSettingsTrait;
use FacturaScripts\Test\Traits\LogErrorsTrait;
use FacturaScripts\Test\Traits\RandomDataTrait;
@@ -800,6 +801,49 @@ public function testIntraCommunity(): void
$this->assertTrue($customer->delete());
}
+ public function testPropertiesLength(): void
+ {
+ // Definir los campos a validar: campo => [longitud_máxima, longitud_invalida]
+ $campos = [
+ 'apartado' => [10, 11],
+ 'cifnif' => [30, 31],
+ 'ciudad' => [100, 101],
+ 'codigo' => [20, 21],
+ 'codigoenv' => [200, 201],
+ 'codigorect' => [20, 21],
+ 'codpais' => [20, 21],
+ 'codpostal' => [10, 11],
+ 'direccion' => [200, 201],
+ 'nombrecliente' => [100, 101],
+ 'provincia' => [100, 101],
+ ];
+
+ // creamos un cliente
+ $customer = $this->getRandomCustomer();
+ $this->assertTrue($customer->save(), 'cant-create-customer');
+
+ foreach ($campos as $campo => [$valido, $invalido]) {
+ // Creamos un nuevo almacén
+ $invoice = new FacturaCliente();
+
+ // campo obligatorio (not null)
+ $invoice->setSubject($customer);
+
+ // Asignamos el valor inválido en el campo a probar
+ $invoice->{$campo} = Tools::randomString($invalido);
+ $this->assertFalse($invoice->save(), "can-save-facturaCliente-bad-{$campo}");
+
+ // Corregimos el campo y comprobamos que ahora sí se puede guardar
+ $invoice->{$campo} = Tools::randomString($valido);
+ $this->assertTrue($invoice->save(), "cannot-save-facturaCliente-fixed-{$campo}");
+
+ // Limpiar
+ $this->assertTrue($invoice->delete(), "cannot-delete-facturaCliente-{$campo}");
+ }
+
+ $this->assertTrue($customer->delete(), 'cant-delete-customer');;
+ }
+
public function testSetIntraCommunity(): void
{
// comprobamos primero si el VIES funciona
diff --git a/Test/Core/Model/FacturaProveedorTest.php b/Test/Core/Model/FacturaProveedorTest.php
index 3b92308b01..e136ab877c 100644
--- a/Test/Core/Model/FacturaProveedorTest.php
+++ b/Test/Core/Model/FacturaProveedorTest.php
@@ -29,6 +29,7 @@
use FacturaScripts\Core\Lib\RegimenIVA;
use FacturaScripts\Core\Lib\Vies;
use FacturaScripts\Core\Model\FacturaProveedor;
+use FacturaScripts\Core\Tools;
use FacturaScripts\Test\Traits\DefaultSettingsTrait;
use FacturaScripts\Test\Traits\LogErrorsTrait;
use FacturaScripts\Test\Traits\RandomDataTrait;
@@ -574,6 +575,43 @@ public function testIntraCommunity(): void
$this->assertTrue($supplier->delete());
}
+ public function testPropertiesLength(): void
+ {
+ // Definir los campos a validar: campo => [longitud_máxima, longitud_invalida]
+ $campos = [
+ 'cifnif' => [30, 31],
+ 'codigo' => [20, 21],
+ 'codigorect' => [20, 21],
+ 'nombre' => [100, 101],
+ 'operacion' => [20, 21],
+ ];
+
+ // creamos un cliente
+ $supplier = $this->getRandomSupplier();
+ $this->assertTrue($supplier->save(), 'cant-create-supplier');
+
+ foreach ($campos as $campo => [$valido, $invalido]) {
+ // Creamos un nuevo almacén
+ $invoice = new FacturaProveedor();
+
+ // campo obligatorio (not null)
+ $invoice->setSubject($supplier);
+
+ // Asignamos el valor inválido en el campo a probar
+ $invoice->{$campo} = Tools::randomString($invalido);
+ $this->assertFalse($invoice->save(), "can-save-facturaProveedor-bad-{$campo}");
+
+ // Corregimos el campo y comprobamos que ahora sí se puede guardar
+ $invoice->{$campo} = Tools::randomString($valido);
+ $this->assertTrue($invoice->save(), "cannot-save-facturaProveedor-fixed-{$campo}");
+
+ // Limpiar
+ $this->assertTrue($invoice->delete(), "cannot-delete-facturaProveedor-{$campo}");
+ }
+
+ $this->assertTrue($supplier->delete(), 'cant-delete-supplier');
+ }
+
public function testSetIntraCommunity(): void
{
// comprobamos si el VIES funciona
diff --git a/Test/Core/Model/PedidoClienteTest.php b/Test/Core/Model/PedidoClienteTest.php
index 50b7981e6d..5dfa655c1f 100644
--- a/Test/Core/Model/PedidoClienteTest.php
+++ b/Test/Core/Model/PedidoClienteTest.php
@@ -25,6 +25,7 @@
use FacturaScripts\Core\Model\Empresa;
use FacturaScripts\Core\Model\PedidoCliente;
use FacturaScripts\Core\Model\Stock;
+use FacturaScripts\Core\Tools;
use FacturaScripts\Test\Traits\DefaultSettingsTrait;
use FacturaScripts\Test\Traits\LogErrorsTrait;
use FacturaScripts\Test\Traits\RandomDataTrait;
@@ -228,6 +229,49 @@ public function testCreateProductLine()
$this->assertTrue($product->delete(), 'can-not-delete-product-3');
}
+ public function testPropertiesLength(): void
+ {
+ // Definir los campos a validar: campo => [longitud_máxima, longitud_invalida]
+ $campos = [
+ 'apartado' => [10, 11],
+ 'cifnif' => [30, 31],
+ 'ciudad' => [100, 101],
+ 'codigo' => [20, 21],
+ 'codigoenv' => [200, 201],
+ 'codpais' => [20, 21],
+ 'codpostal' => [10, 11],
+ 'direccion' => [200, 201],
+ 'nombrecliente' => [100, 101],
+ 'operacion' => [20, 21],
+ 'provincia' => [100, 101],
+ ];
+
+ // creamos un cliente
+ $subject = $this->getRandomCustomer();
+ $this->assertTrue($subject->save(), 'can-not-save-customer');
+
+ foreach ($campos as $campo => [$valido, $invalido]) {
+ // Creamos un nuevo almacén
+ $doc = new PedidoCliente();
+
+ // campo obligatorio (not null)
+ $doc->setSubject($subject);
+
+ // Asignamos el valor inválido en el campo a probar
+ $doc->{$campo} = Tools::randomString($invalido);
+ $this->assertFalse($doc->save(), "can-save-pedidoCliente-bad-{$campo}");
+
+ // Corregimos el campo y comprobamos que ahora sí se puede guardar
+ $doc->{$campo} = Tools::randomString($valido);
+ $this->assertTrue($doc->save(), "cannot-save-pedidoCliente-fixed-{$campo}");
+
+ // Limpiar
+ $this->assertTrue($doc->delete(), "cannot-delete-pedidoCliente-{$campo}");
+ }
+
+ $this->assertTrue($subject->delete(), 'can-not-delete-cliente');
+ }
+
public function testSecondCompany()
{
// creamos la empresa 2
diff --git a/Test/Core/Model/PedidoProveedorTest.php b/Test/Core/Model/PedidoProveedorTest.php
index 96be43f6f7..e62ec2a547 100644
--- a/Test/Core/Model/PedidoProveedorTest.php
+++ b/Test/Core/Model/PedidoProveedorTest.php
@@ -25,6 +25,7 @@
use FacturaScripts\Core\Model\Empresa;
use FacturaScripts\Core\Model\PedidoProveedor;
use FacturaScripts\Core\Model\Stock;
+use FacturaScripts\Core\Tools;
use FacturaScripts\Test\Traits\DefaultSettingsTrait;
use FacturaScripts\Test\Traits\LogErrorsTrait;
use FacturaScripts\Test\Traits\RandomDataTrait;
@@ -234,6 +235,43 @@ public function testCreateProductLine()
$this->assertTrue($product->delete(), 'can-not-delete-product-3');
}
+ public function testPropertiesLength(): void
+ {
+ // Definir los campos a validar: campo => [longitud_máxima, longitud_invalida]
+ $campos = [
+ 'cifnif' => [30, 31],
+ 'codigo' => [20, 21],
+ 'nombre' => [100, 101],
+ 'numproveedor' => [50, 51],
+ 'operacion' => [20, 21],
+ ];
+
+ // creamos un proveedor
+ $subject = $this->getRandomSupplier();
+ $this->assertTrue($subject->save(), 'can-not-save-customer');
+
+ foreach ($campos as $campo => [$valido, $invalido]) {
+ // Creamos un nuevo almacén
+ $doc = new PedidoProveedor();
+
+ // campo obligatorio (not null)
+ $doc->setSubject($subject);
+
+ // Asignamos el valor inválido en el campo a probar
+ $doc->{$campo} = Tools::randomString($invalido);
+ $this->assertFalse($doc->save(), "can-save-pedidoCliente-bad-{$campo}");
+
+ // Corregimos el campo y comprobamos que ahora sí se puede guardar
+ $doc->{$campo} = Tools::randomString($valido);
+ $this->assertTrue($doc->save(), "cannot-save-pedidoCliente-fixed-{$campo}");
+
+ // Limpiar
+ $this->assertTrue($doc->delete(), "cannot-delete-pedidoCliente-{$campo}");
+ }
+
+ $this->assertTrue($subject->delete(), 'can-not-delete-cliente');
+ }
+
public function testSecondCompany()
{
// creamos la empresa 2
diff --git a/Test/Core/Model/PresupuestoClienteTest.php b/Test/Core/Model/PresupuestoClienteTest.php
index cbe8717d52..21933bf477 100644
--- a/Test/Core/Model/PresupuestoClienteTest.php
+++ b/Test/Core/Model/PresupuestoClienteTest.php
@@ -339,6 +339,49 @@ public function testChangeExercise(): void
$this->assertTrue($subject->delete(), 'cliente-cant-delete');
}
+ public function testPropertiesLength(): void
+ {
+ // Definir los campos a validar: campo => [longitud_máxima, longitud_invalida]
+ $campos = [
+ 'apartado' => [10, 11],
+ 'cifnif' => [30, 31],
+ 'ciudad' => [100, 101],
+ 'codigo' => [20, 21],
+ 'codigoenv' => [200, 201],
+ 'codpais' => [20, 21],
+ 'codpostal' => [10, 11],
+ 'direccion' => [200, 201],
+ 'nombrecliente' => [100, 101],
+ 'operacion' => [20, 21],
+ 'provincia' => [100, 101],
+ ];
+
+ // creamos un cliente
+ $subject = $this->getRandomCustomer();
+ $this->assertTrue($subject->save(), 'can-not-save-customer');
+
+ foreach ($campos as $campo => [$valido, $invalido]) {
+ // Creamos un nuevo almacén
+ $doc = new PresupuestoCliente();
+
+ // campo obligatorio (not null)
+ $doc->setSubject($subject);
+
+ // Asignamos el valor inválido en el campo a probar
+ $doc->{$campo} = Tools::randomString($invalido);
+ $this->assertFalse($doc->save(), "can-save-pedidoCliente-bad-{$campo}");
+
+ // Corregimos el campo y comprobamos que ahora sí se puede guardar
+ $doc->{$campo} = Tools::randomString($valido);
+ $this->assertTrue($doc->save(), "cannot-save-pedidoCliente-fixed-{$campo}");
+
+ // Limpiar
+ $this->assertTrue($doc->delete(), "cannot-delete-pedidoCliente-{$campo}");
+ }
+
+ $this->assertTrue($subject->delete(), 'can-not-delete-cliente');
+ }
+
public function testSplitDocument(): void
{
// creamos un cliente
diff --git a/Test/Core/Model/PresupuestoProveedorTest.php b/Test/Core/Model/PresupuestoProveedorTest.php
index c0d27712b6..78b5229b24 100644
--- a/Test/Core/Model/PresupuestoProveedorTest.php
+++ b/Test/Core/Model/PresupuestoProveedorTest.php
@@ -24,6 +24,7 @@
use FacturaScripts\Core\Model\Almacen;
use FacturaScripts\Core\Model\Empresa;
use FacturaScripts\Core\Model\PresupuestoProveedor;
+use FacturaScripts\Core\Tools;
use FacturaScripts\Test\Traits\DefaultSettingsTrait;
use FacturaScripts\Test\Traits\LogErrorsTrait;
use FacturaScripts\Test\Traits\RandomDataTrait;
@@ -250,6 +251,43 @@ public function testCreateProductNotFoundLine()
$this->assertTrue($subject->delete(), 'can-not-delete-proveedor-3');
}
+ public function testPropertiesLength(): void
+ {
+ // Definir los campos a validar: campo => [longitud_máxima, longitud_invalida]
+ $campos = [
+ 'cifnif' => [30, 31],
+ 'codigo' => [20, 21],
+ 'nombre' => [100, 101],
+ 'numproveedor' => [50, 51],
+ 'operacion' => [20, 21],
+ ];
+
+ // creamos un proveedor
+ $subject = $this->getRandomSupplier();
+ $this->assertTrue($subject->save(), 'can-not-save-customer');
+
+ foreach ($campos as $campo => [$valido, $invalido]) {
+ // Creamos un nuevo almacén
+ $doc = new PresupuestoProveedor();
+
+ // campo obligatorio (not null)
+ $doc->setSubject($subject);
+
+ // Asignamos el valor inválido en el campo a probar
+ $doc->{$campo} = Tools::randomString($invalido);
+ $this->assertFalse($doc->save(), "can-save-pedidoCliente-bad-{$campo}");
+
+ // Corregimos el campo y comprobamos que ahora sí se puede guardar
+ $doc->{$campo} = Tools::randomString($valido);
+ $this->assertTrue($doc->save(), "cannot-save-pedidoCliente-fixed-{$campo}");
+
+ // Limpiar
+ $this->assertTrue($doc->delete(), "cannot-delete-pedidoCliente-{$campo}");
+ }
+
+ $this->assertTrue($subject->delete(), 'can-not-delete-cliente');
+ }
+
public function testSecondCompany()
{
// creamos la empresa 2