7 Commits

Author SHA1 Message Date
019d57a0b0 Nuevas pruebas 2025-04-30 01:12:23 -04:00
1a400d9a5c Watcher solo para unit tests 2025-04-30 01:12:09 -04:00
6276f87274 Pruebas nuevas 2025-04-30 00:14:38 -04:00
28c93a42bc Logs de pruebas 2025-04-30 00:14:24 -04:00
4ff5d28522 Nuevas pruebas 2025-04-29 23:57:59 -04:00
a93642c55d Actualizacion de pruebas con extensiones 2025-04-29 23:57:49 -04:00
87c0d8c8d9 Se mueve todo a extension de pruebas 2025-04-29 23:55:51 -04:00
20 changed files with 206 additions and 37 deletions

View File

@ -10,5 +10,5 @@ notifications:
failingTests: false
hideManual: true
phpunit:
arguments: '--log-events-text /logs/output.txt --stop-on-failure'
arguments: '--testsuite unit --log-events-text /logs/output.txt --stop-on-failure'
timeout: 180

View File

@ -150,6 +150,7 @@ class TestBootstrap
spl_autoload_register(function($className) {
$baseTestPath = __DIR__ . "/tests";
$namespaceMap = [
"ProVM\\Tests\\Extension\\" => "{$baseTestPath}/extension",
"ProVM\\Integration\\" => "{$baseTestPath}/integration",
"ProVM\\Unit\\" => "{$baseTestPath}/unit/src",
"ProVM\\Performance\\" => "{$baseTestPath}/performance",

View File

@ -1,9 +1,9 @@
<?php
namespace ProVM\Integration;
namespace ProVM\Tests\Extension;
use Psr\Http\Client\ClientInterface;
use GuzzleHttp\Client;
use PHPUnit\Framework\TestCase;
use Psr\Http\Client\ClientInterface;
abstract class AbstractIntegration extends TestCase
{

View File

@ -0,0 +1,10 @@
<?php
namespace ProVM\Tests\Extension;
use PHPUnit\Framework\TestCase;
use Incoviba\Common\Define\Model;
abstract class AbstractModel extends TestCase
{
protected Model $model;
}

View File

@ -1,5 +1,5 @@
<?php
namespace ProVM\Performance;
namespace ProVM\Tests\Extension;
use PHPUnit\Framework\TestCase;

View File

@ -1,5 +1,5 @@
<?php
namespace ProVM\Unit;
namespace ProVM\Tests\Extension;
trait ObjectHasMethodTrait
{

View File

@ -0,0 +1,18 @@
<?php
namespace ProVM\Tests\Extension;
trait testMethodsTrait
{
use ObjectHasMethodTrait;
public function testMethods(): void
{
$object = $this->model;
foreach ($this->methods as $method) {
$this->assertObjectHasMethod($method, $object);
}
}
protected array $methods = [];
}

View File

@ -0,0 +1,24 @@
<?php
namespace ProVM\Tests\Extension;
use Incoviba\Common\Define\Model;
trait testPropertiesTrait
{
use ObjectHasMethodTrait;
public function testProperties(): void
{
$model = $this->model;
$this->assertProperties($model);
}
protected array $properties = [];
protected function assertProperties(Model $model): void
{
foreach ($this->properties as $key) {
$this->assertObjectHasProperty($key, $model);
}
}
}

View File

@ -1,6 +1,8 @@
<?php
namespace ProVM\Integration;
use ProVM\Tests\Extension\AbstractIntegration;
class HomeTest extends AbstractIntegration
{
public function testLoad(): void

View File

@ -2,6 +2,7 @@
namespace ProVM\Performance;
use GuzzleHttp\Client;
use ProVM\Tests\Extension\AbstractPerformance;
class HomeTest extends AbstractPerformance
{

View File

@ -1,22 +1,17 @@
<?php
namespace ProVM\Unit\Model;
use Incoviba\Model\Inmobiliaria\Proveedor;
use PHPUnit\Framework\TestCase;
use ProVM\Tests\Extension\AbstractModel;
use ProVM\Tests\Extension\testPropertiesTrait;
class ProveedorTest extends TestCase
class ProveedorTest extends AbstractModel
{
public function testCreate()
{
$proveedor = new Proveedor();
$this->assertInstanceOf(Proveedor::class, $proveedor);
}
public function testProperties()
{
$proveedor = new Proveedor();
use testPropertiesTrait;
$this->assertObjectHasProperty('rut', $proveedor);
$this->assertObjectHasProperty('digito', $proveedor);
$this->assertObjectHasProperty('nombre', $proveedor);
$this->assertObjectHasProperty('razon', $proveedor);
$this->assertObjectHasProperty('contacto', $proveedor);
protected function setUp(): void
{
$this->model = new Proveedor();
$this->properties = ['rut', 'digito', 'nombre', 'razon', 'contacto'];
}
}

View File

@ -0,0 +1,17 @@
<?php
namespace ProVM\Unit\Model\Proyecto\Broker;
use Incoviba\Model\Proyecto\Broker\Contact;
use ProVM\Tests\Extension\AbstractModel;
use ProVM\Tests\Extension\testPropertiesTrait;
class ContactTest extends AbstractModel
{
use testPropertiesTrait;
protected function setUp(): void
{
$this->model = new Contact();
$this->properties = ['name', 'email', 'phone', 'address'];
}
}

View File

@ -0,0 +1,17 @@
<?php
namespace ProVM\Unit\Model\Proyecto\Broker\Contract;
use Incoviba\Model\Proyecto\Broker\Contract\State;
use ProVM\Tests\Extension\AbstractModel;
use ProVM\Tests\Extension\testPropertiesTrait;
class StateTest extends AbstractModel
{
use testPropertiesTrait;
protected function setUp(): void
{
$this->model = new State();
$this->properties = ['contract', 'date', 'type'];
}
}

View File

@ -0,0 +1,19 @@
<?php
namespace ProVM\Unit\Model\Proyecto\Broker;
use Incoviba\Model\Proyecto\Broker\Contract;
use ProVM\Tests\Extension\AbstractModel;
use ProVM\Tests\Extension\testMethodsTrait;
use ProVM\Tests\Extension\testPropertiesTrait;
class ContractTest extends AbstractModel
{
use testPropertiesTrait, testMethodsTrait;
protected function setUp(): void
{
$this->model = new Contract();
$this->properties = ['project', 'broker', 'commission'];
$this->methods = ['states', 'current', 'promotions'];
}
}

View File

@ -0,0 +1,17 @@
<?php
namespace ProVM\Unit\Model\Proyecto\Broker;
use Incoviba\Model\Proyecto\Broker;
use ProVM\Tests\Extension\AbstractModel;
use ProVM\Tests\Extension\testPropertiesTrait;
class DataTest extends AbstractModel
{
use testPropertiesTrait;
protected function setUp(): void
{
$this->model = new Broker\Data();
$this->properties = ['broker', 'representative', 'legalName'];
}
}

View File

@ -2,26 +2,18 @@
namespace ProVM\Unit\Model\Proyecto;
use Incoviba\Model\Proyecto\Broker;
use PHPUnit\Framework\TestCase;
use ProVM\Unit\ObjectHasMethodTrait;
use ProVM\Tests\Extension\AbstractModel;
use ProVM\Tests\Extension\testMethodsTrait;
use ProVM\Tests\Extension\testPropertiesTrait;
class BrokerTest extends TestCase
class BrokerTest extends AbstractModel
{
use ObjectHasMethodTrait;
use testPropertiesTrait, testMethodsTrait;
public function testAttributes(): void
protected function setUp(): void
{
$broker = new Broker();
$this->assertObjectHasProperty('rut', $broker);
$this->assertObjectHasProperty('digit', $broker);
$this->assertObjectHasProperty('name', $broker);
}
public function testRelations(): void
{
$broker = new Broker();
$this->assertObjectHasMethod('data', $broker);
$this->assertObjectHasMethod('contracts', $broker);
$this->model = new Broker();
$this->properties = ['rut', 'digit', 'name'];
$this->methods = ['data', 'contracts'];
}
}

View File

@ -0,0 +1,19 @@
<?php
namespace ProVM\Unit\Model\Venta;
use Incoviba\Model\Venta\Promotion;
use ProVM\Tests\Extension\AbstractModel;
use ProVM\Tests\Extension\testMethodsTrait;
use ProVM\Tests\Extension\testPropertiesTrait;
class PromotionTest extends AbstractModel
{
use testPropertiesTrait, testMethodsTrait;
protected function setUp(): void
{
$this->model = new Promotion();
$this->properties = ['description', 'amount', 'startDate', 'endDate', 'validUntil', 'type', 'state'];
$this->methods = ['projects', 'brokers', 'unitTypes', 'unitLines', 'units', 'value'];
}
}

View File

@ -0,0 +1,17 @@
<?php
namespace ProVM\Unit\Model\Venta\Reservation;
use Incoviba\Model\Venta\Reservation\State;
use ProVM\Tests\Extension\AbstractModel;
use ProVM\Tests\Extension\testPropertiesTrait;
class StateTest extends AbstractModel
{
use testPropertiesTrait;
protected function setUp(): void
{
$this->model = new State();
$this->properties = ['reservation', 'date', 'type'];
}
}

View File

@ -0,0 +1,19 @@
<?php
namespace ProVM\Unit\Model\Venta;
use Incoviba\Model\Venta\Reservation;
use ProVM\Tests\Extension\AbstractModel;
use ProVM\Tests\Extension\testMethodsTrait;
use ProVM\Tests\Extension\testPropertiesTrait;
class ReservationTest extends AbstractModel
{
use testPropertiesTrait, testMethodsTrait;
protected function setUp(): void
{
$this->model = new Reservation();
$this->properties = ['buyer', 'date', 'units', 'promotions', 'broker'];
$this->methods = ['states', 'currentState', 'addUnit', 'removeUnit', 'findUnit', 'hasUnit'];
}
}

View File

@ -9,6 +9,7 @@ services:
- ./.key.env
volumes:
- ${APP_PATH:-.}/:/code
- ./logs/test:/logs
command: [ '/code/bin/phpunit-watcher', 'watch' ]
networks:
- testing