S1005403_RisCC/tests/core/test_payload_router.py

35 lines
1.1 KiB
Python

import json
import logging
import pytest
from target_simulator.core.payload_router import PayloadRouter
def test_get_handlers_contains_expected_keys():
router = PayloadRouter()
handlers = router.get_handlers()
assert isinstance(handlers, dict)
# Expect flows for 'M','S','B','J'
for ch in (ord('M'), ord('S'), ord('B'), ord('J')):
assert ch in handlers
assert callable(handlers[ch])
def test_handle_json_payload_valid(monkeypatch, caplog):
router = PayloadRouter()
payload = json.dumps({"type": "status_update", "value": 42}).encode('utf-8')
caplog.set_level(logging.INFO)
# Should not raise
router.handle_json_payload(payload)
# Expect log mentioning decoded type
assert any("Decoded JSON message" in r.message or "Decoded JSON" in r.message for r in caplog.records)
def test_handle_json_payload_invalid(caplog):
router = PayloadRouter()
payload = b"not-a-json"
caplog.set_level(logging.ERROR)
router.handle_json_payload(payload)
assert any("Error decoding JSON payload" in r.message for r in caplog.records)