hass-core/tests/components/roon/test_event.py
2023-10-21 16:23:25 +01:00

30 lines
1.1 KiB
Python

"""Tests for the Roon event entity."""
from unittest.mock import MagicMock
from homeassistant.components.event import ATTR_EVENT_TYPE, EventDeviceClass
from homeassistant.components.roon.event import RoonEventEntity
async def test_event() -> None:
"""Test the roon event entity."""
event = RoonEventEntity("server", "test")
event.async_write_ha_state = MagicMock()
# Test retrieving data from entity
assert event.name == "test volume control"
assert event.event_types == ["volume_up", "volume_down"]
assert event.device_class == EventDeviceClass.BUTTON
# Test triggering an invalid event
event._roonapi_volume_callback("control_key", "invalid", 1)
assert event.state_attributes == {ATTR_EVENT_TYPE: None}
# Test triggering volume up
event._roonapi_volume_callback("control_key", "set_volume", 1)
assert event.state_attributes == {ATTR_EVENT_TYPE: "volume_up"}
# Test triggering volume down
event._roonapi_volume_callback("control_key", "set_volume", -1)
assert event.state_attributes == {ATTR_EVENT_TYPE: "volume_down"}