diff --git a/Core/Base/AjaxForms/SalesHeaderHTML.php b/Core/Base/AjaxForms/SalesHeaderHTML.php index e72e4ce564..cc086ff445 100644 --- a/Core/Base/AjaxForms/SalesHeaderHTML.php +++ b/Core/Base/AjaxForms/SalesHeaderHTML.php @@ -599,7 +599,7 @@ private static function renderField(Translator $i18n, SalesDocument $model, stri return self::codtrans($i18n, $model); case 'direccion': - return self::addressField($i18n, $model, 'direccion', 'address', 6, 100); + return self::addressField($i18n, $model, 'direccion', 'address', 6, 200); case 'fecha': return self::fecha($i18n, $model); diff --git a/Core/Lib/AjaxForms/SalesHeaderHTML.php b/Core/Lib/AjaxForms/SalesHeaderHTML.php index 816c273a85..1b3b904760 100644 --- a/Core/Lib/AjaxForms/SalesHeaderHTML.php +++ b/Core/Lib/AjaxForms/SalesHeaderHTML.php @@ -588,7 +588,7 @@ private static function renderField(SalesDocument $model, string $field): ?strin return self::codtrans($model); case 'direccion': - return self::addressField($model, 'direccion', 'address', 6, 100); + return self::addressField($model, 'direccion', 'address', 6, 200); case 'fecha': return self::fecha($model); diff --git a/Core/Table/albaranescli.xml b/Core/Table/albaranescli.xml index 1740e5a0be..4c4e7d1244 100644 --- a/Core/Table/albaranescli.xml +++ b/Core/Table/albaranescli.xml @@ -74,7 +74,7 @@ direccion - character varying(100) + character varying(200) dtopor1 diff --git a/Core/Table/almacenes.xml b/Core/Table/almacenes.xml index 34ab39d0ed..91a7755231 100644 --- a/Core/Table/almacenes.xml +++ b/Core/Table/almacenes.xml @@ -34,7 +34,7 @@ direccion - character varying(100) + character varying(200) idempresa diff --git a/Core/Table/contactos.xml b/Core/Table/contactos.xml index 84b3727537..e40bdc503a 100644 --- a/Core/Table/contactos.xml +++ b/Core/Table/contactos.xml @@ -61,7 +61,7 @@ direccion - character varying(100) + character varying(200) email diff --git a/Core/Table/empresas.xml b/Core/Table/empresas.xml index c5ce115811..13e6b812c9 100644 --- a/Core/Table/empresas.xml +++ b/Core/Table/empresas.xml @@ -32,7 +32,7 @@ direccion - character varying(100) + character varying(200) excepcioniva diff --git a/Core/Table/facturascli.xml b/Core/Table/facturascli.xml index 6c23a1d22c..b6625644b2 100644 --- a/Core/Table/facturascli.xml +++ b/Core/Table/facturascli.xml @@ -78,7 +78,7 @@ direccion - character varying(100) + character varying(200) dtopor1 diff --git a/Core/Table/pedidoscli.xml b/Core/Table/pedidoscli.xml index 3f9cf7b67c..75b3591961 100644 --- a/Core/Table/pedidoscli.xml +++ b/Core/Table/pedidoscli.xml @@ -74,7 +74,7 @@ direccion - character varying(100) + character varying(200) dtopor1 diff --git a/Core/Table/presupuestoscli.xml b/Core/Table/presupuestoscli.xml index 0e52b4e012..833956a10c 100644 --- a/Core/Table/presupuestoscli.xml +++ b/Core/Table/presupuestoscli.xml @@ -73,7 +73,7 @@ direccion - character varying(100) + character varying(200) 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