==================================================== TDD — CentralSocketNotifier / Registry / Interface ==================================================== --- Registry --- [PASS] Registry vazio: temRegistro() retorna false [PASS] Após registrar(): temRegistro() retorna true [PASS] resolver() retorna a mesma instância registrada [PASS] Após reset(): temRegistro() retorna false novamente [PASS] resolver() lança RuntimeException quando registry está vazio [PASS] Chave interna "central_v2": resolver() retorna instância válida sem colisão --- Interface e implementação --- [PASS] CentralSocketNotifier implementa CentralBroadcastInterface --- Spy via Registry --- [PASS] Spy captura: calls[0][method] === rotaAtualizada [PASS] Spy captura: calls[0][rotaId] === 42 [PASS] Spy captura: calls[0][campos] === [cubagem => 99.5] [PASS] Spy captura: calls[1][method] === rotaRemovida [PASS] Spy captura: calls[1][rotaId] === 7 [PASS] Spy captura: calls[2][method] === markersAtualizados [PASS] Spy captura: calls[2][markers] === [m1, m2] --- Contrato da interface (Reflection) --- [PASS] Interface possui exatamente 3 métodos [PASS] Interface contém método: rotaAtualizada [PASS] Interface contém método: rotaRemovida [PASS] Interface contém método: markersAtualizados [PASS] rotaAtualizada possui 2 parâmetros [PASS] rotaAtualizada: param[0] é $rotaId [PASS] rotaAtualizada: param[1] é $campos [PASS] rotaRemovida possui 1 parâmetro [PASS] rotaRemovida: param[0] é $rotaId [PASS] markersAtualizados possui 1 parâmetro [PASS] markersAtualizados: param[0] é $markers --- Rooms V2 (constantes do Notifier) --- [PASS] CentralSocketNotifier define constante ROOM_CENTRAL [PASS] CentralSocketNotifier define constante ROOM_BOARD [PASS] ROOM_CENTRAL === "galaxia_logistica_central_v2" [PASS] ROOM_BOARD === "galaxia_logistica_board_v2" [PASS] ROOM_CENTRAL NÃO é a room V1 (sem sufixo _v2) [PASS] ROOM_BOARD NÃO é a room V1 (sem sufixo _v2) ==================================================== RESULTADO: PASS=31 FAIL=0 TODOS OS TESTES PASSARAM