Test get
This commit is contained in:
@ -5,12 +5,10 @@ use Psr\Log\LoggerInterface;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Faker;
|
||||
use Incoviba\Common\Implement;
|
||||
use Incoviba\Exception\ServiceAction;
|
||||
use Incoviba\Model;
|
||||
use Incoviba\Repository;
|
||||
use Incoviba\Service;
|
||||
use Incoviba\Common\Define;
|
||||
use Incoviba\Common\Ideal;
|
||||
use Tests\Extension\Faker\Provider\Rut;
|
||||
|
||||
class PersonaTest extends TestCase
|
||||
{
|
||||
@ -51,10 +49,11 @@ class PersonaTest extends TestCase
|
||||
$personaService = new Service\Persona($this->logger, $this->personaRepository, $this->datosPersonaRepository,
|
||||
$this->propietarioRepository, $this->direccionService);
|
||||
$faker = Faker\Factory::create('es_ES');
|
||||
$digit = $faker->boolean(100-round(1/11*100)) ? $faker->randomNumber(1) : 'K';
|
||||
$faker->addProvider(new Rut($faker));
|
||||
$rut = $faker->rut(false, false);
|
||||
$data = [
|
||||
'rut' => $faker->randomNumber(8),
|
||||
'digito' => $digit,
|
||||
'rut' => $rut,
|
||||
'digito' => $faker->digitoVerificador($rut),
|
||||
'nombres' => $faker->name(),
|
||||
'apellido_paterno' => $faker->lastName(),
|
||||
'apellido_materno' => $faker->lastName(),
|
||||
@ -62,4 +61,64 @@ class PersonaTest extends TestCase
|
||||
$persona = $personaService->add($data);
|
||||
$this->assertEquals($data['rut'], $persona->rut);
|
||||
}
|
||||
public function testGetById(): void
|
||||
{
|
||||
$faker = Faker\Factory::create('es_ES');
|
||||
$faker->addProvider(new Rut($faker));
|
||||
$direccion = $this->getMockBuilder(Model\Direccion::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$direccion->id = $faker->randomNumber(2);
|
||||
$datos = new Model\Venta\Datos();
|
||||
$datos->direccion = $direccion;
|
||||
$datos->telefono = $faker->randomNumber(8);
|
||||
$datos->email = $faker->email();
|
||||
$datos->sexo = $faker->randomElement(['M', 'F']);
|
||||
$rut = $faker->rut(false, false);
|
||||
$propietario = new Model\Venta\Propietario();
|
||||
$propietario->rut = $rut;
|
||||
$propietario->dv = $faker->digitoVerificador($rut);
|
||||
$propietario->nombres = $faker->name();
|
||||
$propietario->apellidos['paterno'] = $faker->lastName();
|
||||
$propietario->apellidos['materno'] = $faker->lastName();
|
||||
$propietario->datos = $datos;
|
||||
$propietarioRepository = $this->getMockBuilder(Repository\Venta\Propietario::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$personaRepository = $this->getMockBuilder(Repository\Persona::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$personaRepository->method('fetchById')->willThrowException(new Implement\Exception\EmptyResult(''));
|
||||
$personaRepository->method('create')->willReturnCallback(function($data) {
|
||||
$persona = new Model\Persona();
|
||||
$persona->rut = $data['rut'];
|
||||
$persona->digito = $data['digito'];
|
||||
$persona->nombres = $data['nombres'];
|
||||
$persona->apellidoPaterno = $data['apellido_paterno'];
|
||||
$persona->apellidoMaterno = $data['apellido_materno'];
|
||||
return $persona;
|
||||
});
|
||||
$personaRepository->method('save')->willReturnArgument(0);
|
||||
$datosPersona = new Model\Persona\Datos();
|
||||
$datosPersona->direccion = $direccion;
|
||||
$datosPersona->telefono = $datos->telefono;
|
||||
$datosPersona->email = $datos->email;
|
||||
$datosPersona->sexo = $datos->sexo;
|
||||
$datosPersonaRepository = $this->getMockBuilder(Repository\Persona\Datos::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$datosPersonaRepository->method('fetchByPersona')->willReturn($datosPersona);
|
||||
$propietarioRepository->method('fetchById')->willReturn($propietario);
|
||||
$direccionService = $this->getMockBuilder(Service\Direccion::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$direccionService->method('add')->willReturn($direccion);
|
||||
$personaService = new Service\Persona($this->logger, $personaRepository, $datosPersonaRepository,
|
||||
$propietarioRepository, $direccionService);
|
||||
$persona = $personaService->getById($rut);
|
||||
$this->assertEquals($rut, $persona->rut);
|
||||
$this->assertEquals($propietario->dv, $persona->digito);
|
||||
$this->assertEquals($propietario->nombres, $persona->nombres);
|
||||
$this->assertEquals($propietario->apellidos['paterno'], $persona->apellidoPaterno);
|
||||
$this->assertEquals($propietario->apellidos['materno'], $persona->apellidoMaterno);
|
||||
$this->assertEquals($datos->direccion, $persona->datos->direccion);
|
||||
$this->assertEquals($datos->telefono, $persona->datos->telefono);
|
||||
$this->assertEquals($datos->email, $persona->datos->email);
|
||||
$this->assertEquals($datos->sexo, $persona->datos->sexo);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user