1515import static org .hamcrest .CoreMatchers .*;
1616import static org .hamcrest .MatcherAssert .assertThat ;
1717
18+ import java .util .Objects ;
19+
1820import org .eclipse .jdt .annotation .NonNullByDefault ;
1921import org .junit .jupiter .api .Test ;
2022import org .openhab .binding .shelly .internal .api2 .Shelly2ApiJsonDTO .Shelly2DeviceConfig .Shelly2GetConfigResult ;
@@ -42,7 +44,7 @@ void getCCTStatusDeserializes() {
4244 String json = """
4345 {"id":0,"output":false,"brightness":50.0,"ct":3200}
4446 """ ;
45- Shelly2CCTStatus status = gson .fromJson (json , Shelly2CCTStatus .class );
47+ Shelly2CCTStatus status = Objects . requireNonNull ( gson .fromJson (json , Shelly2CCTStatus .class ) );
4648 assertThat (status .output , is (false ));
4749 assertThat (status .brightness , is (50.0 ));
4850 assertThat (status .ct , is (3200 ));
@@ -54,7 +56,7 @@ void getCCTStatusNullCtWhenOff() {
5456 String json = """
5557 {"id":0,"output":false,"brightness":0}
5658 """ ;
57- Shelly2CCTStatus status = gson .fromJson (json , Shelly2CCTStatus .class );
59+ Shelly2CCTStatus status = Objects . requireNonNull ( gson .fromJson (json , Shelly2CCTStatus .class ) );
5860 assertThat (status .output , is (false ));
5961 assertThat (status .ct , is (nullValue ()));
6062 }
@@ -64,7 +66,7 @@ void getRGBCCTStatusDeserializesInCctMode() {
6466 String json = """
6567 {"id":0,"mode":"cct","output":true,"brightness":75.0,"ct":4000}
6668 """ ;
67- Shelly2RGBCCTStatus status = gson .fromJson (json , Shelly2RGBCCTStatus .class );
69+ Shelly2RGBCCTStatus status = Objects . requireNonNull ( gson .fromJson (json , Shelly2RGBCCTStatus .class ) );
6870 assertThat (status .mode , is ("cct" ));
6971 assertThat (status .output , is (true ));
7072 assertThat (status .brightness , is (75.0 ));
@@ -77,7 +79,7 @@ void getRGBCCTStatusDeserializesInRgbMode() {
7779 String json = """
7880 {"id":0,"mode":"rgb","output":true,"brightness":60.0,"rgb":[255,128,0]}
7981 """ ;
80- Shelly2RGBCCTStatus status = gson .fromJson (json , Shelly2RGBCCTStatus .class );
82+ Shelly2RGBCCTStatus status = Objects . requireNonNull ( gson .fromJson (json , Shelly2RGBCCTStatus .class ) );
8183 assertThat (status .mode , is ("rgb" ));
8284 assertThat (status .output , is (true ));
8385 assertThat (status .brightness , is (60.0 ));
@@ -98,7 +100,7 @@ void getRGBCCTStatusNullModeDefaultsToCct() {
98100 String json = """
99101 {"id":0,"output":false,"brightness":50.0,"ct":3200}
100102 """ ;
101- Shelly2RGBCCTStatus status = gson .fromJson (json , Shelly2RGBCCTStatus .class );
103+ Shelly2RGBCCTStatus status = Objects . requireNonNull ( gson .fromJson (json , Shelly2RGBCCTStatus .class ) );
102104 assertThat (status .mode , is (nullValue ()));
103105 // inColor = "rgb".equals(null) → false → CCT mode
104106 boolean inColor = "rgb" .equals (status .mode );
@@ -113,7 +115,8 @@ void deviceStatusResultHasCct0Field() {
113115 String json = """
114116 {"cct:0":{"id":0,"output":true,"brightness":80.0,"ct":3500}}
115117 """ ;
116- Shelly2DeviceStatus .Shelly2DeviceStatusResult result = gson .fromJson (json , Shelly2DeviceStatusResult .class );
118+ Shelly2DeviceStatus .Shelly2DeviceStatusResult result = Objects
119+ .requireNonNull (gson .fromJson (json , Shelly2DeviceStatusResult .class ));
117120 Shelly2CCTStatus cct = result .cct0 ;
118121 assertThat (cct , is (notNullValue ()));
119122 if (cct != null ) {
@@ -129,7 +132,7 @@ void deviceStatusResultHasRgbcct0Field() {
129132 String json = """
130133 {"rgbcct:0":{"id":0,"mode":"cct","output":true,"brightness":80.0,"ct":3500}}
131134 """ ;
132- Shelly2DeviceStatusResult result = gson .fromJson (json , Shelly2DeviceStatusResult .class );
135+ Shelly2DeviceStatusResult result = Objects . requireNonNull ( gson .fromJson (json , Shelly2DeviceStatusResult .class ) );
133136 Shelly2RGBCCTStatus rgbcct = result .rgbcct0 ;
134137 assertThat (rgbcct , is (notNullValue ()));
135138 if (rgbcct != null ) {
@@ -145,7 +148,7 @@ void deviceStatusResultCct0NullWhenAbsent() {
145148 String json = """
146149 {"rgbcct:0":{"id":0,"mode":"rgb","output":true,"brightness":50.0,"rgb":[0,255,0]}}
147150 """ ;
148- Shelly2DeviceStatusResult result = gson .fromJson (json , Shelly2DeviceStatusResult .class );
151+ Shelly2DeviceStatusResult result = Objects . requireNonNull ( gson .fromJson (json , Shelly2DeviceStatusResult .class ) );
149152 assertThat (result .cct0 , is (nullValue ()));
150153 assertThat (result .rgbcct0 , is (notNullValue ()));
151154 }
@@ -157,7 +160,7 @@ void getConfigResultHasCct0WhenCctOnly() {
157160 String json = """
158161 {"cct:0":{"id":0,"auto_on":false,"auto_off":false}}
159162 """ ;
160- Shelly2GetConfigResult result = gson .fromJson (json , Shelly2GetConfigResult .class );
163+ Shelly2GetConfigResult result = Objects . requireNonNull ( gson .fromJson (json , Shelly2GetConfigResult .class ) );
161164 assertThat (result .cct0 , is (notNullValue ()));
162165 assertThat (result .rgbcct0 , is (nullValue ()));
163166 }
@@ -168,7 +171,7 @@ void getConfigResultHasRgbcct0WhenRgbcct() {
168171 String json = """
169172 {"rgbcct:0":{"id":0,"auto_on":false,"auto_off":false}}
170173 """ ;
171- Shelly2GetConfigResult result = gson .fromJson (json , Shelly2GetConfigResult .class );
174+ Shelly2GetConfigResult result = Objects . requireNonNull ( gson .fromJson (json , Shelly2GetConfigResult .class ) );
172175 assertThat (result .rgbcct0 , is (notNullValue ()));
173176 assertThat (result .cct0 , is (nullValue ()));
174177 }
@@ -179,7 +182,7 @@ void getConfigResultCct0NullWhenAbsent() {
179182 String json = """
180183 {"switch:0":{"id":0}}
181184 """ ;
182- Shelly2GetConfigResult result = gson .fromJson (json , Shelly2GetConfigResult .class );
185+ Shelly2GetConfigResult result = Objects . requireNonNull ( gson .fromJson (json , Shelly2GetConfigResult .class ) );
183186 assertThat (result .cct0 , is (nullValue ()));
184187 assertThat (result .rgbcct0 , is (nullValue ()));
185188 }
0 commit comments