]> git.basschouten.com Git - openhab-addons.git/blob
2c19051f0e08fd56beef8a6f98fc882a8404a73e
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
7  * This program and the accompanying materials are made available under the
8  * terms of the Eclipse Public License 2.0 which is available at
9  * http://www.eclipse.org/legal/epl-2.0
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.heos.internal.json.dto;
14
15 import static org.junit.jupiter.api.Assertions.*;
16 import static org.openhab.binding.heos.internal.json.dto.HeosCommand.*;
17 import static org.openhab.binding.heos.internal.json.dto.HeosCommandGroup.SYSTEM;
18
19 import org.eclipse.jdt.annotation.NonNullByDefault;
20 import org.junit.jupiter.api.Test;
21
22 /**
23  * Tests to validate the functioning of the HeosCommandTuple
24  *
25  * @author Martin van Wingerden - Initial Contribution
26  */
27 @NonNullByDefault
28 public class HeosCommandTupleTest {
29     @Test
30     public void system() {
31         assertMatches("system/check_account", SYSTEM, CHECK_ACCOUNT);
32         assertMatches("system/sign_in", SYSTEM, SIGN_IN);
33         assertMatches("system/sign_out", SYSTEM, SIGN_OUT);
34         assertMatches("system/register_for_change_events", SYSTEM, REGISTER_FOR_CHANGE_EVENTS);
35         assertMatches("system/heart_beat", SYSTEM, HEART_BEAT);
36         assertMatches("system/prettify_json_response", SYSTEM, PRETTIFY_JSON_RESPONSE);
37     }
38
39     @Test
40     public void browse() {
41         assertMatches("browse/browse", HeosCommandGroup.BROWSE, HeosCommand.BROWSE);
42         assertMatches("browse/get_music_sources", HeosCommandGroup.BROWSE, HeosCommand.GET_MUSIC_SOURCES);
43         assertMatches("browse/get_source_info", HeosCommandGroup.BROWSE, HeosCommand.GET_SOURCE_INFO);
44         assertMatches("browse/get_search_criteria", HeosCommandGroup.BROWSE, HeosCommand.GET_SEARCH_CRITERIA);
45         assertMatches("browse/search", HeosCommandGroup.BROWSE, HeosCommand.SEARCH);
46         assertMatches("browse/play_stream", HeosCommandGroup.BROWSE, HeosCommand.PLAY_STREAM);
47         assertMatches("browse/play_preset", HeosCommandGroup.BROWSE, HeosCommand.PLAY_PRESET);
48         assertMatches("browse/play_input", HeosCommandGroup.BROWSE, HeosCommand.PLAY_INPUT);
49         assertMatches("browse/play_stream", HeosCommandGroup.BROWSE, HeosCommand.PLAY_STREAM);
50         assertMatches("browse/add_to_queue", HeosCommandGroup.BROWSE, HeosCommand.ADD_TO_QUEUE);
51         assertMatches("browse/rename_playlist", HeosCommandGroup.BROWSE, HeosCommand.RENAME_PLAYLIST);
52         assertMatches("browse/delete_playlist", HeosCommandGroup.BROWSE, HeosCommand.DELETE_PLAYLIST);
53         assertMatches("browse/retrieve_metadata", HeosCommandGroup.BROWSE, HeosCommand.RETRIEVE_METADATA);
54     }
55
56     @Test
57     public void player() {
58         assertMatches("player/get_players", HeosCommandGroup.PLAYER, HeosCommand.GET_PLAYERS);
59         assertMatches("player/get_player_info", HeosCommandGroup.PLAYER, HeosCommand.GET_PLAYER_INFO);
60         assertMatches("player/get_play_state", HeosCommandGroup.PLAYER, HeosCommand.GET_PLAY_STATE);
61         assertMatches("player/set_play_state", HeosCommandGroup.PLAYER, HeosCommand.SET_PLAY_STATE);
62         assertMatches("player/get_now_playing_media", HeosCommandGroup.PLAYER, HeosCommand.GET_NOW_PLAYING_MEDIA);
63         assertMatches("player/get_volume", HeosCommandGroup.PLAYER, HeosCommand.GET_VOLUME);
64         assertMatches("player/set_volume", HeosCommandGroup.PLAYER, HeosCommand.SET_VOLUME);
65         assertMatches("player/volume_up", HeosCommandGroup.PLAYER, HeosCommand.VOLUME_UP);
66         assertMatches("player/volume_down", HeosCommandGroup.PLAYER, HeosCommand.VOLUME_DOWN);
67         assertMatches("player/get_mute", HeosCommandGroup.PLAYER, HeosCommand.GET_MUTE);
68         assertMatches("player/set_mute", HeosCommandGroup.PLAYER, HeosCommand.SET_MUTE);
69         assertMatches("player/toggle_mute", HeosCommandGroup.PLAYER, HeosCommand.TOGGLE_MUTE);
70         assertMatches("player/get_play_mode", HeosCommandGroup.PLAYER, HeosCommand.GET_PLAY_MODE);
71         assertMatches("player/set_play_mode", HeosCommandGroup.PLAYER, HeosCommand.SET_PLAY_MODE);
72         assertMatches("player/get_queue", HeosCommandGroup.PLAYER, HeosCommand.GET_QUEUE);
73         assertMatches("player/play_queue", HeosCommandGroup.PLAYER, HeosCommand.PLAY_QUEUE);
74         assertMatches("player/remove_from_queue", HeosCommandGroup.PLAYER, HeosCommand.REMOVE_FROM_QUEUE);
75         assertMatches("player/save_queue", HeosCommandGroup.PLAYER, HeosCommand.SAVE_QUEUE);
76         assertMatches("player/clear_queue", HeosCommandGroup.PLAYER, HeosCommand.CLEAR_QUEUE);
77         assertMatches("player/move_queue_item", HeosCommandGroup.PLAYER, HeosCommand.MOVE_QUEUE_ITEM);
78         assertMatches("player/play_next", HeosCommandGroup.PLAYER, HeosCommand.PLAY_NEXT);
79         assertMatches("player/play_previous", HeosCommandGroup.PLAYER, HeosCommand.PLAY_PREVIOUS);
80         assertMatches("player/set_quickselect", HeosCommandGroup.PLAYER, HeosCommand.SET_QUICKSELECT);
81         assertMatches("player/play_quickselect", HeosCommandGroup.PLAYER, HeosCommand.PLAY_QUICKSELECT);
82         assertMatches("player/get_quickselects", HeosCommandGroup.PLAYER, HeosCommand.GET_QUICKSELECTS);
83         assertMatches("player/check_update", HeosCommandGroup.PLAYER, HeosCommand.CHECK_UPDATE);
84     }
85
86     @Test
87     public void group() {
88         assertMatches("group/get_groups", HeosCommandGroup.GROUP, HeosCommand.GET_GROUPS);
89         assertMatches("group/get_group_info", HeosCommandGroup.GROUP, HeosCommand.GET_GROUP_INFO);
90         assertMatches("group/set_group", HeosCommandGroup.GROUP, HeosCommand.SET_GROUP);
91         assertMatches("group/get_volume", HeosCommandGroup.GROUP, HeosCommand.GET_VOLUME);
92         assertMatches("group/set_volume", HeosCommandGroup.GROUP, HeosCommand.SET_VOLUME);
93         assertMatches("group/volume_up", HeosCommandGroup.GROUP, HeosCommand.VOLUME_UP);
94         assertMatches("group/volume_down", HeosCommandGroup.GROUP, HeosCommand.VOLUME_DOWN);
95         assertMatches("group/get_mute", HeosCommandGroup.GROUP, HeosCommand.GET_MUTE);
96         assertMatches("group/set_mute", HeosCommandGroup.GROUP, HeosCommand.SET_MUTE);
97         assertMatches("group/toggle_mute", HeosCommandGroup.GROUP, HeosCommand.TOGGLE_MUTE);
98     }
99
100     private void assertMatches(String command, HeosCommandGroup commandGroup, HeosCommand heosCommand) {
101         HeosCommandTuple tuple = HeosCommandTuple.valueOf(command);
102
103         assertNotNull(tuple);
104         assertEquals(commandGroup, tuple.commandGroup);
105         assertEquals(heosCommand, tuple.command);
106     }
107
108     /**
109      * "browse/browse"
110      * "group/get_groups"
111      * "player/get_mute"
112      * "player/get_now_playing_media"
113      * "player/get_player_info"
114      * "player/get_players"
115      * "player/get_play_mode"
116      * "player/get_play_state"
117      * "player/get_volume"
118      * "player/play_next"
119      * "player/play_previous"
120      * "player/set_mute"
121      * "player/set_play_mode"
122      * "player/set_play_state"
123      * "player/set_volume"
124      * "player/volume_down"
125      * "system/heart_beat"
126      * "system/register_for_change_events"
127      * "system/sign_in"
128      */
129 }