]> git.basschouten.com Git - openhab-addons.git/blob
91bf977446b437c5f9af5b68942b3f4a5634ed93
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2022 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.vesync.internal.handler.requests;
14
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;
21
22 import static org.junit.jupiter.api.Assertions.assertEquals;
23
24 /**
25  * The {@link VesyncLoginCredentials} class implements unit test case for {@link VesyncLoginResponse}
26  *
27  * @author David Goodyear - Initial contribution
28  */
29 @NonNullByDefault
30 public class VesyncRequestManagedDeviceBypassV2Test {
31
32     @Test
33     public void checkMd5Calculation() {
34         assertEquals("577441848f056cd02d4c500b25fdd76a",VesyncV2ApiHelper.calculateMd5("TestHashInPythonLib=+"));
35     }
36
37     @Test
38     public void checkBaseFieldsExist() {
39         String content = VeSyncConstants.GSON.toJson(new VesyncRequestManagedDeviceBypassV2());
40
41         assertEquals(true, content.contains("\"method\": \"bypassV2\""));
42         assertEquals(true, content.contains("\"data\": {}"));
43     }
44
45     @Test
46     public void checkEmptyPayload() {
47         final VesyncRequestManagedDeviceBypassV2.EmptyPayload testPaylaod = new VesyncRequestManagedDeviceBypassV2.EmptyPayload();
48         final String contentTest1 = VeSyncConstants.GSON.toJson(testPaylaod);
49         assertEquals(true, contentTest1.equals("{}"));
50     }
51
52     @Test
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"));
59     }
60
61     @Test
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"));
66
67         testPaylaod.childLock = true;
68         final String contentTest2 = VeSyncConstants.GSON.toJson(testPaylaod);
69         assertEquals(true,contentTest2.contains("\"child_lock\": true"));
70     }
71
72     @Test
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"));
78
79         testPaylaod.enabled = false;
80         testPaylaod.id = 100;
81         final String contentTest2 = VeSyncConstants.GSON.toJson(testPaylaod);
82         assertEquals(true, contentTest2.contains("\"enabled\": false"));
83         assertEquals(true, contentTest2.contains("\"id\": 100"));
84     }
85
86     @Test
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\""));
91     }
92
93     @Test
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"));
98
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"));
102     }
103
104     @Test
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"));
109
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"));
113     }
114
115     @Test
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"));
120
121         final VesyncRequestManagedDeviceBypassV2.EnabledPayload enabledOff = new VesyncRequestManagedDeviceBypassV2.EnabledPayload(false);
122         final String contentTest2 = VeSyncConstants.GSON.toJson(enabledOff);
123         assertEquals(true, contentTest2.contains("\"enabled\": false"));
124     }
125
126     @Test
127     public void checkLoginMethodJson() {
128
129         String content = VeSyncConstants.GSON.toJson(new VesyncLoginCredentials("username", "passmd5"));
130
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\": \"\""));
136     }
137 }