From b212aec486c494850fd293155576391f3191247c Mon Sep 17 00:00:00 2001 From: mauro Date: Thu, 5 Dec 2024 16:20:33 -0300 Subject: [PATCH] =?UTF-8?q?test:=20teste=20unit=C3=A1rio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Teste listar estruturas auto completar --- .../ListarEstruturasAutoCompletarTest.php | 130 ++++++++++++++++++ .../ListarEstruturasAutoCompletarTest.php | 130 ++++++++++++++++++ .../ListarEstruturasAutoCompletarTest.php | 130 ++++++++++++++++++ 3 files changed, 390 insertions(+) create mode 100644 tests_sei4/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php create mode 100644 tests_sei41/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php create mode 100644 tests_super/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php diff --git a/tests_sei4/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php b/tests_sei4/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php new file mode 100644 index 00000000..8199d46f --- /dev/null +++ b/tests_sei4/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php @@ -0,0 +1,130 @@ +mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['consultarEstruturas']) + ->getMock(); + } + + /** + * Testa o método listarEstruturasAutoCompletar com parâmetros válidos. + * + * Verifica se o retorno do método é formatado corretamente, incluindo: + * - Propriedades convertidas para UTF-8. + * - Hierarquia de siglas mapeada. + * - Quantidade correta de itens no resultado. + */ + public function testListarEstruturasAutoCompletarRetornaEstruturasFormatadas() + { + // Simulação de parâmetros e retorno esperado + $idRepositorioEstrutura = 1; + $nome = 'Teste Unidade'; + $mockResultado = [ + 'totalDeRegistros' => 2, + 'estruturas' => [ + [ + 'numeroDeIdentificacaoDaEstrutura' => 101, + 'nome' => 'Unidade A', + 'sigla' => 'UA', + 'ativo' => true, + 'aptoParaReceberTramites' => true, + 'codigoNoOrgaoEntidade' => '123', + 'hierarquia' => [ + ['sigla' => 'ORG'] + ] + ], + [ + 'numeroDeIdentificacaoDaEstrutura' => 102, + 'nome' => 'Unidade B', + 'sigla' => 'UB', + 'ativo' => true, + 'aptoParaReceberTramites' => false, + 'codigoNoOrgaoEntidade' => '456', + 'hierarquia' => [] + ] + ] + ]; + + $this->mockService->expects($this->once()) + ->method('consultarEstruturas') + ->with($idRepositorioEstrutura, $this->callback(function ($parametros) use ($nome) { + return $parametros['nome'] === $nome && $parametros['apenasAtivas'] === true; + })) + ->willReturn($mockResultado); + + $resultado = $this->mockService->listarEstruturasAutoCompletar($idRepositorioEstrutura, $nome); + + // Asserções sobre o retorno + $this->assertIsArray($resultado); + $this->assertArrayHasKey('diferencaDeRegistros', $resultado); + $this->assertArrayHasKey('itens', $resultado); + $this->assertCount(2, $resultado['itens']); + } + + /** + * Testa o método listarEstruturasAutoCompletar quando ocorre um erro. + * + * Simula um erro no método consultarEstruturas e verifica se uma exceção + * InfraException é lançada corretamente com a mensagem esperada. + */ + public function testListarEstruturasAutoCompletarLancaExcecaoParaErro() + { + $idRepositorioEstrutura = 1; + + $this->mockService->expects($this->once()) + ->method('consultarEstruturas') + ->willThrowException(new Exception('Erro interno')); + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obtenção de unidades externas'); + + $this->mockService->listarEstruturasAutoCompletar($idRepositorioEstrutura); + } + + /** + * Testa o método listarEstruturasAutoCompletar com repositório inválido. + * + * Verifica se uma exceção InfraException é lançada quando o ID do + * repositório de estruturas fornecido é inválido. + */ + public function testListarEstruturasAutoCompletarLancaExcecaoParaRepositorioInvalido() + { + $idRepositorioEstrutura = null; + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Repositório de Estruturas inválido'); + + $this->mockService->listarEstruturasAutoCompletar($idRepositorioEstrutura); + } +} diff --git a/tests_sei41/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php b/tests_sei41/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php new file mode 100644 index 00000000..8199d46f --- /dev/null +++ b/tests_sei41/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php @@ -0,0 +1,130 @@ +mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['consultarEstruturas']) + ->getMock(); + } + + /** + * Testa o método listarEstruturasAutoCompletar com parâmetros válidos. + * + * Verifica se o retorno do método é formatado corretamente, incluindo: + * - Propriedades convertidas para UTF-8. + * - Hierarquia de siglas mapeada. + * - Quantidade correta de itens no resultado. + */ + public function testListarEstruturasAutoCompletarRetornaEstruturasFormatadas() + { + // Simulação de parâmetros e retorno esperado + $idRepositorioEstrutura = 1; + $nome = 'Teste Unidade'; + $mockResultado = [ + 'totalDeRegistros' => 2, + 'estruturas' => [ + [ + 'numeroDeIdentificacaoDaEstrutura' => 101, + 'nome' => 'Unidade A', + 'sigla' => 'UA', + 'ativo' => true, + 'aptoParaReceberTramites' => true, + 'codigoNoOrgaoEntidade' => '123', + 'hierarquia' => [ + ['sigla' => 'ORG'] + ] + ], + [ + 'numeroDeIdentificacaoDaEstrutura' => 102, + 'nome' => 'Unidade B', + 'sigla' => 'UB', + 'ativo' => true, + 'aptoParaReceberTramites' => false, + 'codigoNoOrgaoEntidade' => '456', + 'hierarquia' => [] + ] + ] + ]; + + $this->mockService->expects($this->once()) + ->method('consultarEstruturas') + ->with($idRepositorioEstrutura, $this->callback(function ($parametros) use ($nome) { + return $parametros['nome'] === $nome && $parametros['apenasAtivas'] === true; + })) + ->willReturn($mockResultado); + + $resultado = $this->mockService->listarEstruturasAutoCompletar($idRepositorioEstrutura, $nome); + + // Asserções sobre o retorno + $this->assertIsArray($resultado); + $this->assertArrayHasKey('diferencaDeRegistros', $resultado); + $this->assertArrayHasKey('itens', $resultado); + $this->assertCount(2, $resultado['itens']); + } + + /** + * Testa o método listarEstruturasAutoCompletar quando ocorre um erro. + * + * Simula um erro no método consultarEstruturas e verifica se uma exceção + * InfraException é lançada corretamente com a mensagem esperada. + */ + public function testListarEstruturasAutoCompletarLancaExcecaoParaErro() + { + $idRepositorioEstrutura = 1; + + $this->mockService->expects($this->once()) + ->method('consultarEstruturas') + ->willThrowException(new Exception('Erro interno')); + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obtenção de unidades externas'); + + $this->mockService->listarEstruturasAutoCompletar($idRepositorioEstrutura); + } + + /** + * Testa o método listarEstruturasAutoCompletar com repositório inválido. + * + * Verifica se uma exceção InfraException é lançada quando o ID do + * repositório de estruturas fornecido é inválido. + */ + public function testListarEstruturasAutoCompletarLancaExcecaoParaRepositorioInvalido() + { + $idRepositorioEstrutura = null; + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Repositório de Estruturas inválido'); + + $this->mockService->listarEstruturasAutoCompletar($idRepositorioEstrutura); + } +} diff --git a/tests_super/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php b/tests_super/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php new file mode 100644 index 00000000..8199d46f --- /dev/null +++ b/tests_super/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php @@ -0,0 +1,130 @@ +mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['consultarEstruturas']) + ->getMock(); + } + + /** + * Testa o método listarEstruturasAutoCompletar com parâmetros válidos. + * + * Verifica se o retorno do método é formatado corretamente, incluindo: + * - Propriedades convertidas para UTF-8. + * - Hierarquia de siglas mapeada. + * - Quantidade correta de itens no resultado. + */ + public function testListarEstruturasAutoCompletarRetornaEstruturasFormatadas() + { + // Simulação de parâmetros e retorno esperado + $idRepositorioEstrutura = 1; + $nome = 'Teste Unidade'; + $mockResultado = [ + 'totalDeRegistros' => 2, + 'estruturas' => [ + [ + 'numeroDeIdentificacaoDaEstrutura' => 101, + 'nome' => 'Unidade A', + 'sigla' => 'UA', + 'ativo' => true, + 'aptoParaReceberTramites' => true, + 'codigoNoOrgaoEntidade' => '123', + 'hierarquia' => [ + ['sigla' => 'ORG'] + ] + ], + [ + 'numeroDeIdentificacaoDaEstrutura' => 102, + 'nome' => 'Unidade B', + 'sigla' => 'UB', + 'ativo' => true, + 'aptoParaReceberTramites' => false, + 'codigoNoOrgaoEntidade' => '456', + 'hierarquia' => [] + ] + ] + ]; + + $this->mockService->expects($this->once()) + ->method('consultarEstruturas') + ->with($idRepositorioEstrutura, $this->callback(function ($parametros) use ($nome) { + return $parametros['nome'] === $nome && $parametros['apenasAtivas'] === true; + })) + ->willReturn($mockResultado); + + $resultado = $this->mockService->listarEstruturasAutoCompletar($idRepositorioEstrutura, $nome); + + // Asserções sobre o retorno + $this->assertIsArray($resultado); + $this->assertArrayHasKey('diferencaDeRegistros', $resultado); + $this->assertArrayHasKey('itens', $resultado); + $this->assertCount(2, $resultado['itens']); + } + + /** + * Testa o método listarEstruturasAutoCompletar quando ocorre um erro. + * + * Simula um erro no método consultarEstruturas e verifica se uma exceção + * InfraException é lançada corretamente com a mensagem esperada. + */ + public function testListarEstruturasAutoCompletarLancaExcecaoParaErro() + { + $idRepositorioEstrutura = 1; + + $this->mockService->expects($this->once()) + ->method('consultarEstruturas') + ->willThrowException(new Exception('Erro interno')); + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obtenção de unidades externas'); + + $this->mockService->listarEstruturasAutoCompletar($idRepositorioEstrutura); + } + + /** + * Testa o método listarEstruturasAutoCompletar com repositório inválido. + * + * Verifica se uma exceção InfraException é lançada quando o ID do + * repositório de estruturas fornecido é inválido. + */ + public function testListarEstruturasAutoCompletarLancaExcecaoParaRepositorioInvalido() + { + $idRepositorioEstrutura = null; + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Repositório de Estruturas inválido'); + + $this->mockService->listarEstruturasAutoCompletar($idRepositorioEstrutura); + } +}