PHP Classes

File: tests/Integracao/Api/AaAuth.php

Recommend this page to a friend!
  Classes of Matheusz Maydana   Bames   tests/Integracao/Api/AaAuth.php   Download  
File: tests/Integracao/Api/AaAuth.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Bames
Application collection to study design patterns
Author: By
Last change:
Date: 1 month ago
Size: 3,967 bytes
 

Contents

Class file image Download
<?php

use App\Dominio\ObjetoValor\CNPJ;
use
App\Infraestrutura\Adaptadores\HTTP\ImplementacaoCurlClienteHTTP;
use
App\Infraestrutura\Adaptadores\Ambiente\ImplementacaoAmbienteArquivo;

$CNPJ = CNPJ::gerar();

global
$email;
global
$senha1;
global
$oab;
global
$jwt;

if(!
is_file(__DIR__.'/../../../.env')) {
    return;
}

$email = 'meus-email-'.rand(str_repeat(1, 16), str_repeat(9, 16)).'@gmail.com';
$senha1 = '0hHMaydana%';
$oab = 'RS '.rand(str_repeat(1, 3), str_repeat(9, 3));
$ambiente = new ImplementacaoAmbienteArquivo();
$desenvolvimento = $ambiente->get('TEST_INTEGRATION_RUN');
$jwt = '';

if(!
$desenvolvimento){
   
// Não é ambiente de desenvolvimento, não permitir rodar os testes (pelo menos por enquanto.)
   
return;
}

beforeEach(function() {
   
$this->clientHTTP = new ImplementacaoCurlClienteHTTP([
       
'baseURL' => 'http://localhost:8052'
   
]);
});

test("Deverá criar uma empresa com o E-mail: $email CNPJ: $CNPJ e senha: $senha1", function() use ($CNPJ, $email, $senha1, $oab){

   
$resposta = $this->clientHTTP->post('/empresa', [
       
'nome_fantasia' => 'Empresa Teste',
       
'numero_documento' => $CNPJ,
       
'oab' => $oab,
       
'responsavel_nome_completo' => 'Matheus Maydana',
       
'responsavel_email' => $email,
       
'responsavel_senha' => $senha1
   
]);

   
expect($resposta->code)->toBe(201)
        ->
and($resposta->body)->toBeArray()
        ->
and($resposta->body['message'])->toBe('Empresa cadastrada com sucesso');
})
    ->
group('Integracao');


test('Deverá já existir uma empresa com esse documento', function() use ($CNPJ, $email, $senha1, $oab){

   
$resposta = $this->clientHTTP->post('/empresa', [
       
'nome_fantasia' => 'Empresa Teste',
       
'numero_documento' => $CNPJ,
       
'oab' => $oab,
       
'responsavel_nome_completo' => 'Matheus Maydana',
       
'responsavel_email' => $email,
       
'responsavel_senha' => $senha1
   
]);

   
expect($resposta->code)->toBe(400)
        ->
and($resposta->body)->toBeArray()
        ->
and($resposta->body['message'])->toBe('Já existe uma empresa com número do documento informado. ('.(new CNPJ($CNPJ))->get().')');
})
    ->
group('Integracao');

test('Deverá gerar um acess Token - Login efetuado com sucesso', function() use ($email, $senha1, &$jwt){
   
   
$resposta = $this->clientHTTP->post('/login', [
       
"email" => $email,
       
"senha" => $senha1
   
]);

   
$jwt = $resposta->body['access_token'];

   
expect($resposta->code)->toBe(201)
        ->
and($resposta->body)->toBeArray()
        ->
and($resposta->body['access_token'])->toBeString();
})
    ->
group('Integracao', 'Processos', 'Clientes');


test('Deverá falhar o login - Login e-mail ou senha inválido', function() use ($email, $senha1){
   
   
$resposta = $this->clientHTTP->post('/login', [
       
"email" => $email,
       
"senha" => "{$senha1}42"
   
]);

   
expect($resposta->code)->toBe(401)
        ->
and($resposta->body)->toBeArray()
        ->
and($resposta->body['message'])->toBeString()
        ->
and($resposta->body['message'])->toBe('E-mail ou senha inválidos.');
})
    ->
group('Integracao');

test('Deverá recuperar a senha da conta', function() use ($email){
   
   
$resposta = $this->clientHTTP->post('/recuperar', [
       
"email" => $email
   
]);

   
expect($resposta->code)->toBe(201)
        ->
and($resposta->body)->toBeArray()
        ->
and($resposta->body['message'])->toBeString()
        ->
and($resposta->body['message'])->toBe('Enviamos um e-mail com as instruções para recuperação de senha.');
})
    ->
group('Integracao');

test('Deverá acusar um erro dizendo que já foi feito a solicitação de recuperação e foi enviado por e-mail', function() use ($email){
   
   
$resposta = $this->clientHTTP->post('/recuperar', [
       
"email" => $email
   
]);

   
expect($resposta->code)->toBe(400)
        ->
and($resposta->body)->toBeArray()
        ->
and($resposta->body['message'])->toBeString()
        ->
and($resposta->body['message'])->toBe('Já enviamos para seu e-mail um token para recuperação.');
})
    ->
group('Integracao');