]> git.basschouten.com Git - openhab-addons.git/blob
f61cfef9767dd34d003719cd8b0a7f9a81562063
[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.liquidcheck.internal.json;
14
15 import static org.hamcrest.CoreMatchers.equalTo;
16 import static org.hamcrest.CoreMatchers.is;
17 import static org.hamcrest.CoreMatchers.notNullValue;
18 import static org.hamcrest.CoreMatchers.nullValue;
19 import static org.hamcrest.MatcherAssert.assertThat;
20
21 import java.nio.charset.StandardCharsets;
22 import java.nio.file.Files;
23 import java.nio.file.Paths;
24 import java.util.List;
25
26 import org.eclipse.jdt.annotation.NonNullByDefault;
27 import org.junit.jupiter.api.DisplayName;
28 import org.junit.jupiter.api.Test;
29
30 import com.google.gson.Gson;
31
32 /**
33  * The {@link ResponseTest} will test the correct parsing from json responses for the CommData class.
34  *
35  * @author Marcel Goerentz - Initial contribution
36  */
37 @NonNullByDefault
38 public class ResponseTest {
39
40     @DisplayName("Test response from polling")
41     @Test
42     @SuppressWarnings("null")
43     public void pollingResponseTest() {
44         CommData response = new CommData();
45         try {
46             List<String> lines = Files.readAllLines(Paths.get("src/test/resources/PollingResponseExample.json"),
47                     StandardCharsets.UTF_8);
48             StringBuilder sb = new StringBuilder();
49             for (String line : lines) {
50                 sb.append(line);
51             }
52             String json = sb.toString();
53             response = new Gson().fromJson(json, CommData.class);
54         } catch (Exception e) {
55             return;
56         }
57         if (response != null && !"".equals(response.header.messageId)) {
58             assertThat(response, is(notNullValue()));
59             assertThat(response.header.namespace, is(equalTo("Device")));
60             assertThat(response.header.name, is(equalTo("Response")));
61             assertThat(response.header.messageId, is(equalTo("499C7D21-F9579A3C")));
62             assertThat(response.header.payloadVersion, is(equalTo("1")));
63             assertThat(response.header.authorization, is(equalTo("1C9DC262BE70-00038BC8-TX0K103HIXCXVLTBMVKVXFF")));
64             assertThat(response.payload.measure.level, is(equalTo(2.23)));
65             assertThat(response.payload.measure.content, is(equalTo(9265.0)));
66             assertThat(response.payload.measure.age, is(equalTo(1981)));
67             assertThat(response.payload.measure.raw.level, is(equalTo(2.2276)));
68             assertThat(response.payload.measure.raw.content, is(equalTo(9255.3193)));
69             assertThat(response.payload.expansion.boardType, is(equalTo(-1)));
70             assertThat(response.payload.expansion.board, is(nullValue()));
71             assertThat(response.payload.expansion.oneWire, is(nullValue()));
72             assertThat(response.payload.device.firmware, is(equalTo("1.60")));
73             assertThat(response.payload.device.hardware, is(equalTo("B5")));
74             assertThat(response.payload.device.name, is(equalTo("Liquid-Check")));
75             assertThat(response.payload.device.manufacturer, is(equalTo("SI-Elektronik GmbH")));
76             assertThat(response.payload.device.uuid, is(equalTo("0ba64a0c-7a88b168-0001")));
77             assertThat(response.payload.device.model.name, is(equalTo("")));
78             assertThat(response.payload.device.model.number, is(equalTo(1)));
79             assertThat(response.payload.device.security.code, is(equalTo("gkzQ5uGo6ElSdUsDWKQu2A==")));
80             assertThat(response.payload.system.error, is(equalTo(0)));
81             assertThat(response.payload.system.uptime, is(equalTo(232392)));
82             assertThat(response.payload.system.pump.totalRuns, is(equalTo(351)));
83             assertThat(response.payload.system.pump.totalRuntime, is(equalTo(1249)));
84             assertThat(response.payload.wifi.station.hostname, is(equalTo("Liquid-Check")));
85             assertThat(response.payload.wifi.station.ip, is(equalTo("192.168.2.102")));
86             assertThat(response.payload.wifi.station.gateway, is(equalTo("192.168.2.1")));
87             assertThat(response.payload.wifi.station.netmask, is(equalTo("255.255.255.0")));
88             assertThat(response.payload.wifi.station.mac, is(equalTo("1C:9D:C2:62:BE:70")));
89             assertThat(response.payload.wifi.accessPoint.ssid, is(equalTo("WLAN-267994")));
90             assertThat(response.payload.wifi.accessPoint.bssid, is(equalTo("4C:09:D4:2B:C3:97")));
91             assertThat(response.payload.wifi.accessPoint.rssi, is(equalTo(-45)));
92         }
93     }
94
95     @DisplayName("Test response from measurement command")
96     @Test
97     public void commandResponseTest() {
98         CommData response = new CommData();
99         try {
100             List<String> lines = Files.readAllLines(Paths.get("src/test/resources/CommandResponseExample.json"),
101                     StandardCharsets.UTF_8);
102             StringBuilder sb = new StringBuilder();
103             for (String line : lines) {
104                 sb.append(line);
105             }
106             String json = sb.toString();
107             response = new Gson().fromJson(json, CommData.class);
108         } catch (Exception e) {
109             return;
110         }
111         if (response != null && !"".equals(response.header.messageId)) {
112             assertThat(response, is(notNullValue()));
113             assertThat(response.header.namespace, is(equalTo("Device.Control")));
114             assertThat(response.header.name, is(equalTo("StartMeasure.Response")));
115             assertThat(response.header.messageId, is(equalTo("6D6A415C-A116FF36")));
116             assertThat(response.header.payloadVersion, is(equalTo("1")));
117             assertThat(response.header.authorization, is(equalTo("1C9DC262BE70-001092EA-4D4KU4ID5ZCXPNTQJ3V8HD")));
118             assertThat(response.context.status, is(equalTo("success")));
119         }
120     }
121 }