<?php
use App\Infraestrutura\Adaptadores\HTTP\ImplementacaoCurlClienteHTTP;
global $jwt;
if(!is_file(__DIR__.'/../../../.env')) {
return;
}
$CNJdoProcesso = '';
beforeEach(function(){
$this->clientHTTPAuth = new ImplementacaoCurlClienteHTTP([
'baseURL' => 'http://localhost:8052'
]);
$this->clientHTTPApi = new ImplementacaoCurlClienteHTTP([
'baseURL' => 'http://localhost:8053'
]);
});
describe('(Clientes):', function() use (&$jwt){
it('Deverá retornar a lista de substituições do cliente para o modelo de documento.', function() use (&$jwt){
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$resposta = $this->clientHTTPApi->get('/clientes/substituicoes');
expect($resposta->code)->toBe(200)
->and($resposta->body)->toBeArray()
->and($resposta->body)->toHaveKey('{{cliente_nome}}')
->and($resposta->body)->toHaveKey('{{cliente_email}}')
->and($resposta->body)->toHaveKey('{{cliente_telefone}}')
->and($resposta->body)->toHaveKey('{{cliente_documento_numero}}')
->and($resposta->body)->toHaveKey('{{cliente_documento_tipo}}')
->and($resposta->body)->toHaveKey('{{cliente_profissao}}')
->and($resposta->body)->toHaveKey('{{cliente_nacionalidade}}')
->and($resposta->body)->toHaveKey('{{cliente_endereco_completo}}')
->and($resposta->body)->toHaveKey('{{cliente_endereco}}')
->and($resposta->body)->toHaveKey('{{cliente_endereco_numero}}')
->and($resposta->body)->toHaveKey('{{cliente_endereco_bairro}}')
->and($resposta->body)->toHaveKey('{{cliente_endereco_cidade}}')
->and($resposta->body)->toHaveKey('{{cliente_endereco_estado}}')
->and($resposta->body)->toHaveKey('{{cliente_endereco_pais}}')
->and($resposta->body)->toHaveKey('{{cliente_endereco_cep}}')
->and($resposta->body)->toHaveKey('{{cliente_endereco_complemento}}')
->and($resposta->body)->toHaveKey('{{cliente_endereco_referencia}}')
->and($resposta->body)->toHaveKey('{{cliente_endereco_localizacao_latitude}}')
->and($resposta->body)->toHaveKey('{{cliente_endereco_localizacao_longitude}}')
->and($resposta->body)->toHaveKey('{{cliente_data_nascimento}}')
->and($resposta->body)->toHaveKey('{{cliente_sexo}}')
->and($resposta->body)->toHaveKey('{{cliente_mae_nome}}')
->and($resposta->body)->toHaveKey('{{cliente_mae_documento}}')
->and($resposta->body)->toHaveKey('{{cliente_pai_nome}}')
->and($resposta->body)->toHaveKey('{{cliente_pai_documento}}');
});
it("Deverá retornar uma lista de clientes da empresa com 1 clientes.", function() use (&$jwt){
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$resposta = $this->clientHTTPApi->get('/clientes');
expect($resposta->code)->toBe(200)
->and($resposta->body)->toBeArray()
->and($resposta->body[0])->toHaveKey('codigo')
->and($resposta->body[0])->toHaveKey('nomeCompleto')
->and($resposta->body[0])->toHaveKey('documento')
->and($resposta->body[0])->toHaveKey('whatsapp')
->and($resposta->body)->toHaveCount(1);
})->group('Integracao', 'Clientes');
it("Deverá consultar informações de uma pessoa através do CPF e cadastra-la.", function() use (&$jwt){
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$resposta = $this->clientHTTPApi->post('/clientes/consultarinformacoesnainternet', [
'documento' => '61908533072'
]);
expect($resposta->code)->toBe(200)
->and($resposta->body)->toBeArray()
->and($resposta->body)->toHaveKey('message')
->and($resposta->body['message'])->toBe('Consulta realizada com sucesso');
})->group('Integracao', 'Clientes');
it("Deverá retornar uma lista de clientes da empresa com 2 clientes, um deles com o CPF: 619.085.330-72.", function() use (&$jwt){
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$resposta = $this->clientHTTPApi->get('/clientes');
expect($resposta->code)->toBe(200)
->and($resposta->body)->toBeArray()
->and($resposta->body[0])->toHaveKey('codigo')
->and($resposta->body[0])->toHaveKey('nomeCompleto')
->and($resposta->body[0])->toHaveKey('documento')
->and($resposta->body[0])->toHaveKey('whatsapp')
->and($resposta->body)->toHaveCount(2)
->and(array_filter($resposta->body, function ($cliente) {
return $cliente['documento'] === '619.085.330-72';
}))->toHaveCount(1);
})->group('Integracao', 'Clientes');
// Vamos criar um teste para atualizar as informações de um cliente.
it("Deverá atualizar as informações de um cliente e verificar se elas foram atualizada conforme esperado.", function() use (&$jwt) {
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$resposta = $this->clientHTTPApi->get('/clientes');
$cliente = array_filter($resposta->body, function ($cliente) {
return $cliente['documento'] === '619.085.330-72';
});
$cliente = array_shift($cliente);
$clienteCodigo = $cliente['codigo'];
$resposta = $this->clientHTTPApi->get('/clientes/detalhes/'.$clienteCodigo);
$cliente = $resposta->body;
$nomeCompletoOriginal = $cliente['nomeCompleto'];
$nomeCompletoNovo = $cliente['nomeCompleto'] . ' Novo';
$emailOriginal = $cliente['email'];
$emailNovo = 'email'.((string) random_int(111,999)).'@email.teste';
$telefoneOriginal = $cliente['telefone'];
$telefoneNovo = '(11) 9999-9999';
$enderecoOriginal = $cliente['endereco'];
$enderecoNovo = $cliente['endereco'] . ' Novo';
$numeroOriginal = $cliente['numero'];
$numeroNovo = '123';
$complementoOriginal = $cliente['complemento'];
$complementoNovo = $cliente['complemento'] . ' Novo';
$bairroOriginal = $cliente['bairro'];
$bairroNovo = $cliente['bairro'] . ' Novo';
$cidadeOriginal = $cliente['cidade'];
$cidadeNovo = $cliente['cidade'] . ' Novo';
$estadoOriginal = $cliente['estado'];
$estadoNovo = 'SP';
$cepOriginal = $cliente['cep'];
$cepNovo = '12345-678';
$nomeMaeOriginal = $cliente['nomeMae'];
$nomeMaeNovo = $cliente['nomeMae'] . ' Novo';
$sexoOriginal = $cliente['sexo'];
$sexoNovo = 'F';
if($sexoOriginal === 'F') $sexoNovo = 'M';
$dataNascimentoOriginal = $cliente['dataNascimento'];
$dataNascimentoNovo = '01/01/2000';
$cpfMaeNovo = '841.676.700-97';
$resposta = $this->clientHTTPApi->put('/clientes', [
'id' => $cliente['codigo'],
'nome' => $nomeCompletoNovo,
'email' => $emailNovo,
'telefone' => $telefoneNovo,
'documento' => $cliente['documento'],
'dataNascimento' => $dataNascimentoNovo,
'endereco' => $enderecoNovo,
'enderecoNumero' => $numeroNovo,
'enderecoComplemento' => $complementoNovo,
'enderecoBairro' => $bairroNovo,
'enderecoCidade' => $cidadeNovo,
'enderecoEstado' => $estadoNovo,
'enderecoCep' => $cepNovo,
'nomeMae' => $nomeMaeNovo,
'cpfMae' => $cpfMaeNovo,
'sexo' => $sexoNovo
]);
expect($resposta->code)->toBe(200)
->and($resposta->body)->toBeArray()
->and($resposta->body)->toHaveKey('message')
->and($resposta->body['message'])->toBe('Cliente atualizado com sucesso');
$resposta = $this->clientHTTPApi->get('/clientes/detalhes/'.$clienteCodigo);
$cliente = $resposta->body;
expect($cliente['nomeCompleto'])->toBe($nomeCompletoNovo)
->and($cliente['nomeCompleto'])->not->toBe($nomeCompletoOriginal)
->and($cliente['email'])->toBe($emailNovo)
->and($cliente['email'])->not->toBe($emailOriginal)
->and($cliente['telefone'])->toBe($telefoneNovo)
->and($cliente['telefone'])->not->toBe($telefoneOriginal)
->and($cliente['endereco'])->toBe($enderecoNovo)
->and($cliente['endereco'])->not->toBe($enderecoOriginal)
->and($cliente['numero'])->toBe($numeroNovo)
->and($cliente['numero'])->not->toBe($numeroOriginal)
->and($cliente['complemento'])->toBe($complementoNovo)
->and($cliente['complemento'])->not->toBe($complementoOriginal)
->and($cliente['bairro'])->toBe($bairroNovo)
->and($cliente['bairro'])->not->toBe($bairroOriginal)
->and($cliente['cidade'])->toBe($cidadeNovo)
->and($cliente['cidade'])->not->toBe($cidadeOriginal)
->and($cliente['estado'])->toBe($estadoNovo)
->and($cliente['estado'])->not->toBe($estadoOriginal)
->and($cliente['cep'])->toBe($cepNovo)
->and($cliente['cep'])->not->toBe($cepOriginal)
->and($cliente['nomeMae'])->toBe($nomeMaeNovo)
->and($cliente['nomeMae'])->not->toBe($nomeMaeOriginal)
->and($cliente['sexo'])->toBe($sexoNovo)
->and($cliente['sexo'])->not->toBe($sexoOriginal)
->and($cliente['dataNascimento'])->toBe($dataNascimentoNovo)
->and($cliente['dataNascimento'])->not->toBe($dataNascimentoOriginal);
})
->group('Integracao', 'Clientes');
it("Deverá consultar os processos do cliente com o CPF: 619.085.330-72.", function() use (&$jwt) {
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
// IDENTIFICA O CLIENTE PELO CPF E VERIFICA SE ELE POSSUI NENHUM PROCESSO
$resposta = $this->clientHTTPApi->get('/clientes');
$cliente = array_filter($resposta->body, function ($cliente) {
return $cliente['documento'] === '619.085.330-72';
});
$cliente = array_shift($cliente);
$resposta = $this->clientHTTPApi->get('/clientes/detalhes/'.$cliente['codigo']);
$cliente = $resposta->body;
expect($cliente)->toHaveKey('processos')
->and($cliente['processos'])->toBeArray()
->and($cliente['processos'])->toHaveCount(0);
// CONSULTA OS PROCESSOS DO CLIENTE
$resposta = $this->clientHTTPApi->post('/clientes/consultarProcessos', [
'documento' => '619.085.330-72'
]);
expect($resposta->code)->toBe(200)
->and($resposta->body)->toBeArray()
->and($resposta->body)->toHaveKey('message')
->and($resposta->body['message'])->toBe('Os processos do cliente foram consultados com sucesso');
/// AGORA O CLIENTE PRECISA TER 10 PROCESSOS
$resposta = $this->clientHTTPApi->get('/clientes/processos/'.$cliente['codigo']);
$processos = $resposta->body;
expect($processos)->toBeArray()
->and($processos)->toHaveCount(10);
$primeiroProcesso = $processos[0];
expect($primeiroProcesso)->toHaveKey('codigo')
->and($primeiroProcesso)->toHaveKey('numeroCNJ')
->and($primeiroProcesso)->toHaveKey('dataUltimaMovimentacao')
->and($primeiroProcesso)->toHaveKey('quantidadeMovimentacoes')
->and($primeiroProcesso)->toHaveKey('demandante')
->and($primeiroProcesso)->toHaveKey('demandado')
->and($primeiroProcesso)->toHaveKey('ultimaMovimentacaoData')
->and($primeiroProcesso)->toHaveKey('ultimaMovimentacaoDescricao');
})
->group('Integracao', 'Clientes');
})->group('Integracao', 'Clientes');
|