<?php
use App\Dominio\ObjetoValor\IdentificacaoUnica;
use App\Aplicacao\Compartilhado\Entidades\EntidadeUsuarioLogado;
use App\Infraestrutura\Adaptadores\Cache\ImplementacaoCacheMemoria;
use App\Infraestrutura\Adaptadores\Agenda\ImplementacaoGoogleAgenda;
use App\Infraestrutura\Adaptadores\Ambiente\ImplementacaoAmbienteArquivo;
use App\Dominio\Repositorios\Autenticacao\Fronteiras\SaidaFronteiraBuscarContaPorCodigo;
$ambiente = new ImplementacaoAmbienteArquivo();
$entidadeUsuarioLogado = EntidadeUsuarioLogado::instanciarEntidadeUsuarioLogado(new SaidaFronteiraBuscarContaPorCodigo(
empresaCodigo: (new IdentificacaoUnica())->get(),
contaCodigo: (new IdentificacaoUnica())->get(),
nomeCompleto: 'Matheus Maydana',
email: '[email protected]',
documento: '17816441010',
hashSenha: '',
oab: '123456',
));
$cache = new ImplementacaoCacheMemoria();
$agenda = new ImplementacaoGoogleAgenda(
ambiente: $ambiente,
cache: $cache,
//codigoAutorizacao: '4/0AdLIrYf6svLebAQTf_QeQhw8rg3q9sapnCKvnJ3UlrxUiyH8zYMgcGN4C_pff1olKt-MKQ'
);
test('O codigo de autorização deverá ser vazio', function() use (&$agenda){
expect($agenda->codigoAutorizacao)->toBeEmpty();
})->group('ImplementacaoGoogleAgenda');
test('O metodo checkCode deverá lançar uma exceção', function() use (&$agenda){
$agenda->checkCode();
})->group('ImplementacaoGoogleAgenda')->throws('Você não forneceu um código de autorização, acesse.');
test('Deverá acessar a URL para gerar o codigo de autorizacao', function() use (&$agenda){
$agenda->codigoAutorizacao = '4/0AdLIrYf6svLebAQTf_QeQhw8rg3q9sapnCKvnJ3UlrxUiyH8zYMgcGN4C_pff1olKt-MKQ';
expect($agenda->codigoAutorizacao)->toBe('4/0AdLIrYf6svLebAQTf_QeQhw8rg3q9sapnCKvnJ3UlrxUiyH8zYMgcGN4C_pff1olKt-MKQ');
})->group('ImplementacaoGoogleAgenda');
test('Deve retornar a URL de login: '.$agenda->getLoginUrl(), function() use (&$agenda){
$url = $agenda->getLoginUrl();
expect($url)->toBeString();
})->group('ImplementacaoGoogleAgenda');
test('Deve setar o novo codigoAutorizacao', function() use (&$agenda){
$agenda->codigoAutorizacao = '4/0AdLIrYdtPzxvW5Fit389HMnv0z7-0QysvBRpOSDASBvSIdvGlE1GjvGfSvR_zW1aj4eNqA';
expect($agenda->codigoAutorizacao)->toBe('4/0AdLIrYdtPzxvW5Fit389HMnv0z7-0QysvBRpOSDASBvSIdvGlE1GjvGfSvR_zW1aj4eNqA');
})->group('ImplementacaoGoogleAgenda');
test('Deve setar o accessToken', function() use (&$agenda){
$agenda->setAccessToken('ya29.a0AXooCgvi_-d1RLrEVXgpXRxSqNYpX184QDApIWZsGUg1aL_B0IkRTBlS3PvH3AhM7UGDK2YaYVR5xNzJDGh4GLhh6FV2FcRJ_dY5r5Q3sTF_25N5Uji1Z1Z3hJBO798WsD-YGII70LiEo-Uto24RSlCLbGXm8Dm49psaCgYKAaUSARISFQHGX2Mi3lRnA7VXwmT9ZdM2slLkVw0170');
expect($agenda->_getAccessToken())->toBe('ya29.a0AXooCgvi_-d1RLrEVXgpXRxSqNYpX184QDApIWZsGUg1aL_B0IkRTBlS3PvH3AhM7UGDK2YaYVR5xNzJDGh4GLhh6FV2FcRJ_dY5r5Q3sTF_25N5Uji1Z1Z3hJBO798WsD-YGII70LiEo-Uto24RSlCLbGXm8Dm49psaCgYKAaUSARISFQHGX2Mi3lRnA7VXwmT9ZdM2slLkVw0170');
})->group('ImplementacaoGoogleAgenda');
test('Deve retornar um array com os eventos da agenda', function() use (&$agenda){
$eventos = $agenda->listarEventos();
expect($eventos)->toBeArray();
})->group('ImplementacaoGoogleAgenda')->skip('Isse teste não sei fazer ainda, por conta de precisa de um "navegador" para fazer a requisição.');
|