2 * Copyright (c) 2010-2024 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
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
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.mqtt.homeassistant.internal;
15 import static org.hamcrest.CoreMatchers.is;
16 import static org.hamcrest.MatcherAssert.assertThat;
17 import static org.hamcrest.core.IsIterableContaining.hasItem;
19 import java.util.Collection;
20 import java.util.List;
22 import org.eclipse.jdt.annotation.NonNullByDefault;
23 import org.junit.jupiter.api.Test;
24 import org.openhab.core.config.core.Configuration;
27 * @author Jochen Klein - Initial contribution
30 public class HaIDTests {
33 public void testWithoutNode() {
34 HaID subject = new HaID("homeassistant/switch/name/config");
36 assertThat(subject.objectID, is("name"));
38 assertThat(subject.component, is("switch"));
39 assertThat(subject.getTopic("suffix"), is("homeassistant/switch/name/suffix"));
41 Configuration config = new Configuration();
42 subject.toConfig(config);
44 HaID restore = HaID.fromConfig("homeassistant", config);
46 assertThat(restore, is(subject));
48 HandlerConfiguration haConfig = new HandlerConfiguration(subject.baseTopic, List.of(subject.toShortTopic()));
50 Collection<HaID> restoreList = HaID.fromConfig(haConfig);
51 assertThat(restoreList, hasItem(new HaID("homeassistant/switch/name/config")));
55 public void testWithNode() {
56 HaID subject = new HaID("homeassistant/switch/node/name/config");
58 assertThat(subject.objectID, is("name"));
60 assertThat(subject.component, is("switch"));
61 assertThat(subject.getTopic("suffix"), is("homeassistant/switch/node/name/suffix"));
63 Configuration config = new Configuration();
64 subject.toConfig(config);
66 HaID restore = HaID.fromConfig("homeassistant", config);
68 assertThat(restore, is(subject));
70 HandlerConfiguration haConfig = new HandlerConfiguration(subject.baseTopic, List.of(subject.toShortTopic()));
72 Collection<HaID> restoreList = HaID.fromConfig(haConfig);
73 assertThat(restoreList, hasItem(new HaID("homeassistant/switch/node/name/config")));