diff --git a/common/transport/http/src/main/java/org/thingsboard/server/transport/http/DeviceApiController.java b/common/transport/http/src/main/java/org/thingsboard/server/transport/http/DeviceApiController.java index fd20b030df..f8212b1009 100644 --- a/common/transport/http/src/main/java/org/thingsboard/server/transport/http/DeviceApiController.java +++ b/common/transport/http/src/main/java/org/thingsboard/server/transport/http/DeviceApiController.java @@ -431,7 +431,7 @@ public class DeviceApiController implements TbTransportService { .setDeviceIdMSB(sessionInfo.getDeviceIdMSB()) .setDeviceIdLSB(sessionInfo.getDeviceIdLSB()) .setType(firmwareType.name()).build(); - transportContext.getTransportService().process(sessionInfo, requestMsg, new GetOtaPackageCallback(responseWriter, title, version, size, chunk)); + transportContext.getTransportService().process(sessionInfo, requestMsg, new GetOtaPackageCallback(transportContext,responseWriter, title, version, size, chunk)); })); return responseWriter; } @@ -494,14 +494,16 @@ public class DeviceApiController implements TbTransportService { } } - private class GetOtaPackageCallback implements TransportServiceCallback { + static class GetOtaPackageCallback implements TransportServiceCallback { + private final TransportContext transportContext; private final DeferredResult responseWriter; private final String title; private final String version; private final int chuckSize; private final int chuck; - GetOtaPackageCallback(DeferredResult responseWriter, String title, String version, int chuckSize, int chuck) { + GetOtaPackageCallback(TransportContext transportContext, DeferredResult responseWriter, String title, String version, int chuckSize, int chuck) { + this.transportContext = transportContext; this.responseWriter = responseWriter; this.title = title; this.version = version; diff --git a/common/transport/http/src/test/java/org/thingsboard/server/transport/http/DeviceApiControllerTest.java b/common/transport/http/src/test/java/org/thingsboard/server/transport/http/DeviceApiControllerTest.java index 47efa5b25a..e439d0d3a4 100644 --- a/common/transport/http/src/test/java/org/thingsboard/server/transport/http/DeviceApiControllerTest.java +++ b/common/transport/http/src/test/java/org/thingsboard/server/transport/http/DeviceApiControllerTest.java @@ -16,7 +16,6 @@ package org.thingsboard.server.transport.http; import com.google.gson.JsonParseException; -import com.google.gson.JsonSyntaxException; import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.springframework.http.ResponseEntity; @@ -28,12 +27,10 @@ import org.thingsboard.server.gen.transport.TransportProtos; import java.io.IOException; import java.util.function.Consumer; -import static org.junit.jupiter.api.Assertions.*; - class DeviceApiControllerTest { @Test - void DeviceAuthCallbackTest() { + void deviceAuthCallbackTest() { TransportContext transportContext = Mockito.mock(TransportContext.class); DeferredResult responseWriter = Mockito.mock(DeferredResult.class); Consumer onSuccess = x -> {}; @@ -49,7 +46,7 @@ class DeviceApiControllerTest { } @Test - void DeviceProvisionCallbackTest() { + void deviceProvisionCallbackTest() { DeferredResult responseWriter = Mockito.mock(DeferredResult.class); var callback = new DeviceApiController.DeviceProvisionCallback(responseWriter); @@ -62,14 +59,23 @@ class DeviceApiControllerTest { callback.onError(new RuntimeException("oops it is run time error")); } -//@Test -// void GetOtaPackageCallback() { -// DeferredResult responseWriter = Mockito.mock(DeferredResult.class); -// String title = "Title"; -// String version = "version"; -// int chuckSize = 11; -// int chuck = 3; -// -// var callback = new DeviceApiController.GetOtaPackageCallback(responseWriter, title, version, chuckSize, chuck); -// } +@Test + void getOtaPackageCallback() { + TransportContext transportContext = Mockito.mock(TransportContext.class); + DeferredResult responseWriter = Mockito.mock(DeferredResult.class); + String title = "Title"; + String version = "version"; + int chuckSize = 11; + int chuck = 3; + + var callback = new DeviceApiController.GetOtaPackageCallback(transportContext, responseWriter, title, version, chuckSize, chuck); + + callback.onError(new HttpMessageNotReadableException("JSON incorrect syntax")); + + callback.onError(new JsonParseException("Json ; expected")); + + callback.onError(new IOException("not found")); + + callback.onError(new RuntimeException("oops it is run time error")); + } }