2 * Copyright (c) 2010-2023 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.vesync.internal.handler.requests;
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.junit.Test;
17 import org.openhab.binding.vesync.internal.VeSyncConstants;
18 import org.openhab.binding.vesync.internal.api.VesyncV2ApiHelper;
19 import org.openhab.binding.vesync.internal.dto.requests.VesyncLoginCredentials;
20 import org.openhab.binding.vesync.internal.dto.requests.VesyncRequestManagedDeviceBypassV2;
22 import static org.junit.jupiter.api.Assertions.assertEquals;
25 * The {@link VesyncLoginCredentials} class implements unit test case for {@link VesyncLoginResponse}
27 * @author David Goodyear - Initial contribution
30 public class VesyncRequestManagedDeviceBypassV2Test {
33 public void checkMd5Calculation() {
34 assertEquals("577441848f056cd02d4c500b25fdd76a",VesyncV2ApiHelper.calculateMd5("TestHashInPythonLib=+"));
38 public void checkBaseFieldsExist() {
39 String content = VeSyncConstants.GSON.toJson(new VesyncRequestManagedDeviceBypassV2());
41 assertEquals(true, content.contains("\"method\": \"bypassV2\""));
42 assertEquals(true, content.contains("\"data\": {}"));
46 public void checkEmptyPayload() {
47 final VesyncRequestManagedDeviceBypassV2.EmptyPayload testPaylaod = new VesyncRequestManagedDeviceBypassV2.EmptyPayload();
48 final String contentTest1 = VeSyncConstants.GSON.toJson(testPaylaod);
49 assertEquals(true, "{}".equals(contentTest1));
53 public void checkSetLevelPayload() {
54 final VesyncRequestManagedDeviceBypassV2.SetLevelPayload testPaylaod = new VesyncRequestManagedDeviceBypassV2.SetLevelPayload(1,"stringval",2);
55 final String contentTest1 = VeSyncConstants.GSON.toJson(testPaylaod);
56 assertEquals(true, contentTest1.contains("\"id\": 1"));
57 assertEquals(true,contentTest1.contains("\"type\": \"stringval\""));
58 assertEquals(true,contentTest1.contains("\"level\": 2"));
62 public void checkSetChildLockPayload() {
63 final VesyncRequestManagedDeviceBypassV2.SetChildLock testPaylaod = new VesyncRequestManagedDeviceBypassV2.SetChildLock(false);
64 final String contentTest1 = VeSyncConstants.GSON.toJson(testPaylaod);
65 assertEquals(true,contentTest1.contains("\"child_lock\": false"));
67 testPaylaod.childLock = true;
68 final String contentTest2 = VeSyncConstants.GSON.toJson(testPaylaod);
69 assertEquals(true,contentTest2.contains("\"child_lock\": true"));
73 public void checkSetSwitchPayload() {
74 final VesyncRequestManagedDeviceBypassV2.SetSwitchPayload testPaylaod = new VesyncRequestManagedDeviceBypassV2.SetSwitchPayload(true,0);
75 final String contentTest1 = VeSyncConstants.GSON.toJson(testPaylaod);
76 assertEquals(true, contentTest1.contains("\"enabled\": true"));
77 assertEquals(true, contentTest1.contains("\"id\": 0"));
79 testPaylaod.enabled = false;
81 final String contentTest2 = VeSyncConstants.GSON.toJson(testPaylaod);
82 assertEquals(true, contentTest2.contains("\"enabled\": false"));
83 assertEquals(true, contentTest2.contains("\"id\": 100"));
87 public void checkSetNightLightPayload() {
88 final VesyncRequestManagedDeviceBypassV2.SetNightLight testPaylaod = new VesyncRequestManagedDeviceBypassV2.SetNightLight("myValue");
89 final String contentTest1 = VeSyncConstants.GSON.toJson(testPaylaod);
90 assertEquals(true, contentTest1.contains("\"night_light\": \"myValue\""));
94 public void checkSetTargetHumidityPayload() {
95 final VesyncRequestManagedDeviceBypassV2.SetTargetHumidity test0Paylaod = new VesyncRequestManagedDeviceBypassV2.SetTargetHumidity(0);
96 final String contentTest1 = VeSyncConstants.GSON.toJson(test0Paylaod);
97 assertEquals(true, contentTest1.contains("\"target_humidity\": 0"));
99 final VesyncRequestManagedDeviceBypassV2.SetTargetHumidity test100Paylaod = new VesyncRequestManagedDeviceBypassV2.SetTargetHumidity(100);
100 final String contentTest2 = VeSyncConstants.GSON.toJson(test100Paylaod);
101 assertEquals(true, contentTest2.contains("\"target_humidity\": 100"));
105 public void checkSetNightLightBrightnessPayload() {
106 final VesyncRequestManagedDeviceBypassV2.SetNightLightBrightness test0Paylaod = new VesyncRequestManagedDeviceBypassV2.SetNightLightBrightness(0);
107 final String contentTest1 = VeSyncConstants.GSON.toJson(test0Paylaod);
108 assertEquals(true, contentTest1.contains("\"night_light_brightness\": 0"));
110 final VesyncRequestManagedDeviceBypassV2.SetNightLightBrightness test100Paylaod = new VesyncRequestManagedDeviceBypassV2.SetNightLightBrightness(100);
111 final String contentTest2 = VeSyncConstants.GSON.toJson(test100Paylaod);
112 assertEquals(true, contentTest2.contains("\"night_light_brightness\": 100"));
116 public void checkEnabledPayload() {
117 final VesyncRequestManagedDeviceBypassV2.EnabledPayload enabledOn = new VesyncRequestManagedDeviceBypassV2.EnabledPayload(true);
118 final String contentTest1 = VeSyncConstants.GSON.toJson(enabledOn);
119 assertEquals(true, contentTest1.contains("\"enabled\": true"));
121 final VesyncRequestManagedDeviceBypassV2.EnabledPayload enabledOff = new VesyncRequestManagedDeviceBypassV2.EnabledPayload(false);
122 final String contentTest2 = VeSyncConstants.GSON.toJson(enabledOff);
123 assertEquals(true, contentTest2.contains("\"enabled\": false"));
127 public void checkLoginMethodJson() {
129 String content = VeSyncConstants.GSON.toJson(new VesyncLoginCredentials("username", "passmd5"));
131 assertEquals(true, content.contains("\"method\": \"login\""));
132 assertEquals(true, content.contains("\"email\": \"username\""));
133 assertEquals(true, content.contains("\"password\": \"passmd5\""));
134 assertEquals(true, content.contains("\"userType\": \"1\""));
135 assertEquals(true, content.contains("\"devToken\": \"\""));