diff --git a/tests/components/sonos/test_plex_playback.py b/tests/components/sonos/test_plex_playback.py
index 428e970697e79470bb9b5396776f2066cb41e7e0..01a66f640d5aa6d6e0b01ca62996a023a176ef4e 100644
--- a/tests/components/sonos/test_plex_playback.py
+++ b/tests/components/sonos/test_plex_playback.py
@@ -8,17 +8,24 @@ import pytest
 from homeassistant.components.media_player import (
     ATTR_MEDIA_CONTENT_ID,
     ATTR_MEDIA_CONTENT_TYPE,
+    ATTR_MEDIA_ENQUEUE,
     DOMAIN as MP_DOMAIN,
     SERVICE_PLAY_MEDIA,
+    MediaPlayerEnqueue,
     MediaType,
 )
 from homeassistant.components.plex import DOMAIN as PLEX_DOMAIN, PLEX_URI_SCHEME
+from homeassistant.components.sonos.media_player import LONG_SERVICE_TIMEOUT
 from homeassistant.const import ATTR_ENTITY_ID
 from homeassistant.core import HomeAssistant
 from homeassistant.exceptions import HomeAssistantError
 
+from .conftest import MockSoCo
 
-async def test_plex_play_media(hass: HomeAssistant, async_autosetup_sonos) -> None:
+
+async def test_plex_play_media(
+    hass: HomeAssistant, soco: MockSoCo, async_autosetup_sonos
+) -> None:
     """Test playing media via the Plex integration."""
     mock_plex_server = Mock()
     mock_lookup = mock_plex_server.lookup_media
@@ -55,6 +62,9 @@ async def test_plex_play_media(hass: HomeAssistant, async_autosetup_sonos) -> No
         assert not mock_shuffle.called
         assert mock_lookup.mock_calls[0][1][0] == MediaType.MUSIC
         assert mock_lookup.mock_calls[0][2] == json.loads(media_content_id)
+        assert soco.clear_queue.call_count == 1
+        assert soco.play_from_queue.call_count == 1
+        soco.play_from_queue.assert_called_with(0)
 
         # Test handling shuffle in payload
         mock_lookup.reset_mock()
@@ -130,3 +140,41 @@ async def test_plex_play_media(hass: HomeAssistant, async_autosetup_sonos) -> No
         assert mock_shuffle.called
         assert mock_lookup.mock_calls[0][1][0] == PLEX_DOMAIN
         assert mock_lookup.mock_calls[0][2] == {"plex_key": plex_item_key}
+
+        mock_add_to_queue.reset_mock()
+        await hass.services.async_call(
+            MP_DOMAIN,
+            SERVICE_PLAY_MEDIA,
+            {
+                ATTR_ENTITY_ID: media_player,
+                ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
+                ATTR_MEDIA_CONTENT_ID: f"{PLEX_URI_SCHEME}{media_content_id}",
+                ATTR_MEDIA_ENQUEUE: MediaPlayerEnqueue.ADD,
+            },
+            blocking=True,
+        )
+        assert mock_add_to_queue.call_count == 1
+        mock_add_to_queue.assert_called_with(
+            mock_lookup(), timeout=LONG_SERVICE_TIMEOUT
+        )
+
+        soco.play_from_queue.reset_mock()
+        mock_add_to_queue.reset_mock()
+        mock_add_to_queue.return_value = 9
+        await hass.services.async_call(
+            MP_DOMAIN,
+            SERVICE_PLAY_MEDIA,
+            {
+                ATTR_ENTITY_ID: media_player,
+                ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
+                ATTR_MEDIA_CONTENT_ID: f"{PLEX_URI_SCHEME}{media_content_id}",
+                ATTR_MEDIA_ENQUEUE: MediaPlayerEnqueue.PLAY,
+            },
+            blocking=True,
+        )
+        assert mock_add_to_queue.call_count == 1
+        mock_add_to_queue.assert_called_with(
+            mock_lookup(), position=1, timeout=LONG_SERVICE_TIMEOUT
+        )
+        assert soco.play_from_queue.call_count == 1
+        soco.play_from_queue.assert_called_with(mock_add_to_queue.return_value - 1)