PHP Classes

File: tests/Integracao/Api/AaaEmpresa.php

Recommend this page to a friend!
  Classes of Matheusz Maydana   Bames   tests/Integracao/Api/AaaEmpresa.php   Download  
File: tests/Integracao/Api/AaaEmpresa.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: 7,341 bytes
 

Contents

Class file image Download
<?php

use App\Infraestrutura\Adaptadores\HTTP\ImplementacaoCurlClienteHTTP;

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

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

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

describe('(Auth): login', function() use (&$jwt, &$email, &$senha1){

   
it("Vamos utilizar nestes testes o usuário teste automatizado. (E-mail: {$email} - Senha: {$senha1})", function() use (&$jwt){
       
expect(true)->toBeTrue();
    })->
group('Integracao', 'Empresa');

   
it('Vamos logar no sistema com o usuario teste automatizado para pegar o JWT.', function() use (&$jwt, &$email, &$senha1){
   
       
$resposta = $this->clientHTTPAuth->post('/login', [
           
"email" => $email,
           
"senha" => $senha1
       
]);
   
       
$jwt = $resposta->body['access_token'];
   
       
expect($resposta->code)->toBe(201)
            ->
and($resposta->body)->toBeArray()
            ->
and($jwt)->toBeString();
   
    })->
group('Integracao', 'Empresa');
   
   
it('Deverá ter criado já um JWT diferente de vazio', function() use (&$jwt){
       
expect($jwt)->not->toBeEmpty();
    })->
group('Integracao', 'Empresa');

})->
group('Integracao', 'Empresa');


$empresaID = '';
describe('(Empresa): empresa', function() use (&$jwt, &$empresaID){

   
it('Deverá retornar os dados da empresa', function() use (&$jwt, &$empresaID){

       
$this->clientHTTPApi->configurar([
           
'headers' => [
               
'Authorization: Bearer ' . $jwt
           
]
        ]);
   
       
$resposta = $this->clientHTTPApi->get('/empresa');

       
expect($resposta->code)->toBe(200)
            ->
and($resposta->body)->toBeArray()
            ->
and($resposta->body)->toHaveKey('codigo')
            ->
and($resposta->body)->toHaveKey('apelido')
            ->
and($resposta->body)->toHaveKey('documentoTipo')
            ->
and($resposta->body)->toHaveKey('documentoNumero');

       
$empresaID = $resposta->body['codigo'];

    })->
group('Integracao', 'Empresa');

})->
group('Integracao', 'Empresa');

describe('(Empresa): usuários', function() use (&$jwt){

   
it('Deverá listar pelo menos 1 usuario da empresa', function() use (&$jwt){

       
$this->clientHTTPApi->configurar([
           
'headers' => [
               
'Authorization: Bearer ' . $jwt
           
]
        ]);
   
       
$resposta = $this->clientHTTPApi->get('/empresa/usuarios');
   
       
expect($resposta->code)->toBe(200)
            ->
and($resposta->body)->toBeArray()
            ->
and($resposta->body[0])->toHaveKey('codigo')
            ->
and($resposta->body[0])->toHaveKey('nome')
            ->
and($resposta->body[0])->toHaveKey('email');
   
    })->
group('Integracao', 'Empresa');
   
   
$emailCadastrar = '';
   
it('Deverá cadastrar um novo usuário na empresa', function() use (&$jwt, &$emailCadastrar){
   
       
$this->clientHTTPApi->configurar([
           
'headers' => [
               
'Authorization: Bearer ' . $jwt
           
]
        ]);
   
       
$emailCadastrar = "email-aqui-".rand(111111, 999999)."@gmail.com";
   
       
$resposta = $this->clientHTTPApi->post('/empresa/usuarios', [
           
"nome" => "Teste Automatizado",
           
"email" => $emailCadastrar,
           
"oab" => "RS 123".rand(111,999)
        ]);

       
expect($resposta->code)->toBe(201)
            ->
and($resposta->body)->toBeArray()
            ->
and($resposta->body)->toHaveKey('message');
   
    })->
group('Integracao', 'Empresa');
   
   
it('Deverá retornar erro ao tentar cadastrar um novo usuário na empresa com email já existente', function() use (&$jwt, &$emailCadastrar){
   
       
$this->clientHTTPApi->configurar([
           
'headers' => [
               
'Authorization: Bearer ' . $jwt
           
]
        ]);
   
       
$resposta = $this->clientHTTPApi->post('/empresa/usuarios', [
           
"nome" => "Teste Automatizado Versao",
           
"email" => $emailCadastrar,
           
"oab" => "RS 123".rand(111,999)
        ]);
   
       
expect($resposta->code)->toBe(400)
            ->
and($resposta->body)->toBeArray()
            ->
and($resposta->body)->toHaveKey('message')
            ->
and($resposta->body['message'])->toBe('Já existe um colaborador com o e-mail informado.');
   
    })->
group('Integracao', 'Empresa');
   
   
it('Deverá retornar erro ao tentar cadastrar um novo usuário na empresa sem informar o email', function() use (&$jwt){
   
       
$this->clientHTTPApi->configurar([
           
'headers' => [
               
'Authorization: Bearer ' . $jwt
           
]
        ]);
   
       
$resposta = $this->clientHTTPApi->post('/empresa/usuarios', [
           
"nome" => "Teste Automatizado Versao",
        ]);
   
       
expect($resposta->code)->toBe(400)
            ->
and($resposta->body)->toBeArray()
            ->
and($resposta->body)->toHaveKey('message')
            ->
and($resposta->body['message'])->toBe('O e-mail precisa ser informado adequadamente.');
   
    })->
group('Integracao', 'Empresa');
   
   
it('Deverá retornar erro ao tentar cadastrar um novo usuário na empresa sem informar o nome completo', function() use (&$jwt){
   
       
$this->clientHTTPApi->configurar([
           
'headers' => [
               
'Authorization: Bearer ' . $jwt
           
]
        ]);
   
       
$resposta = $this->clientHTTPApi->post('/empresa/usuarios', [
           
"email" => "email-aqui-".random_int(1, 999999)."@gmail.com",
        ]);
   
       
expect($resposta->code)->toBe(400)
            ->
and($resposta->body)->toBeArray()
            ->
and($resposta->body)->toHaveKey('message')
            ->
and($resposta->body['message'])->toBe('O nome completo precisa ser informado adequadamente.');
   
    })->
group('Integracao', 'Empresa');
   
   
it('Deverá retornar erro ao tentar cadastrar um novo usuário na empresa sem informar o nome completo e o email', function() use (&$jwt){
   
       
$this->clientHTTPApi->configurar([
           
'headers' => [
               
'Authorization: Bearer ' . $jwt
           
]
        ]);
   
       
$resposta = $this->clientHTTPApi->post('/empresa/usuarios', []);
   
       
expect($resposta->code)->toBe(400)
            ->
and($resposta->body)->toBeArray()
            ->
and($resposta->body)->toHaveKey('message')
            ->
and($resposta->body['message'])->toBe('O nome completo precisa ser informado adequadamente.');
   
    })->
group('Integracao', 'Empresa');
   
   
it('Deverá retornar uma lista com os usuarios da empresa, no mínimo 2', function() use (&$jwt){
   
       
$this->clientHTTPApi->configurar([
           
'headers' => [
               
'Authorization: Bearer ' . $jwt
           
]
        ]);
   
       
$resposta = $this->clientHTTPApi->get('/empresa/usuarios');
   
       
expect($resposta->code)->toBe(200)
            ->
and($resposta->body)->toBeArray()
            ->
and(count($resposta->body))->toBeGreaterThan(1);
   
    })->
group('Integracao', 'Empresa');

})->
group('Integracao', 'Empresa');

afterAll(function() use(&$empresaID) {
    echo
"Vamos limpar tudo da empresa com ID: $empresaID";
});