Compare commits
7 Commits
dd1741a930
...
019d57a0b0
Author | SHA1 | Date | |
---|---|---|---|
019d57a0b0 | |||
1a400d9a5c | |||
6276f87274 | |||
28c93a42bc | |||
4ff5d28522 | |||
a93642c55d | |||
87c0d8c8d9 |
@ -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
|
||||
|
@ -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",
|
||||
|
@ -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
|
||||
{
|
10
app/tests/extension/AbstractModel.php
Normal file
10
app/tests/extension/AbstractModel.php
Normal 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;
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
namespace ProVM\Performance;
|
||||
namespace ProVM\Tests\Extension;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
namespace ProVM\Unit;
|
||||
namespace ProVM\Tests\Extension;
|
||||
|
||||
trait ObjectHasMethodTrait
|
||||
{
|
18
app/tests/extension/testMethodsTrait.php
Normal file
18
app/tests/extension/testMethodsTrait.php
Normal 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 = [];
|
||||
}
|
24
app/tests/extension/testPropertiesTrait.php
Normal file
24
app/tests/extension/testPropertiesTrait.php
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,6 +1,8 @@
|
||||
<?php
|
||||
namespace ProVM\Integration;
|
||||
|
||||
use ProVM\Tests\Extension\AbstractIntegration;
|
||||
|
||||
class HomeTest extends AbstractIntegration
|
||||
{
|
||||
public function testLoad(): void
|
||||
|
@ -2,6 +2,7 @@
|
||||
namespace ProVM\Performance;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use ProVM\Tests\Extension\AbstractPerformance;
|
||||
|
||||
class HomeTest extends AbstractPerformance
|
||||
{
|
||||
|
@ -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'];
|
||||
}
|
||||
}
|
||||
|
17
app/tests/unit/src/Model/Proyecto/Broker/ContactTest.php
Normal file
17
app/tests/unit/src/Model/Proyecto/Broker/ContactTest.php
Normal 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'];
|
||||
}
|
||||
}
|
@ -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'];
|
||||
}
|
||||
}
|
19
app/tests/unit/src/Model/Proyecto/Broker/ContractTest.php
Normal file
19
app/tests/unit/src/Model/Proyecto/Broker/ContractTest.php
Normal 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'];
|
||||
}
|
||||
}
|
17
app/tests/unit/src/Model/Proyecto/Broker/DataTest.php
Normal file
17
app/tests/unit/src/Model/Proyecto/Broker/DataTest.php
Normal 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'];
|
||||
}
|
||||
}
|
@ -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'];
|
||||
}
|
||||
}
|
19
app/tests/unit/src/Model/Venta/PromotionTest.php
Normal file
19
app/tests/unit/src/Model/Venta/PromotionTest.php
Normal 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'];
|
||||
}
|
||||
}
|
17
app/tests/unit/src/Model/Venta/Reservation/StateTest.php
Normal file
17
app/tests/unit/src/Model/Venta/Reservation/StateTest.php
Normal 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'];
|
||||
}
|
||||
}
|
19
app/tests/unit/src/Model/Venta/ReservationTest.php
Normal file
19
app/tests/unit/src/Model/Venta/ReservationTest.php
Normal 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'];
|
||||
}
|
||||
}
|
@ -9,6 +9,7 @@ services:
|
||||
- ./.key.env
|
||||
volumes:
|
||||
- ${APP_PATH:-.}/:/code
|
||||
- ./logs/test:/logs
|
||||
command: [ '/code/bin/phpunit-watcher', 'watch' ]
|
||||
networks:
|
||||
- testing
|
||||
|
Reference in New Issue
Block a user