Browse Source

Code refactoring and reformat in DeviceApiController and DeviceApiControllerTest.

Signed-off-by: Oleksandra Matviienko <al.zzzeebra@gmail.com>
pull/10436/head
Oleksandra Matviienko 3 years ago
parent
commit
c633515b19
  1. 30
      common/transport/http/src/main/java/org/thingsboard/server/transport/http/DeviceApiController.java
  2. 29
      common/transport/http/src/test/java/org/thingsboard/server/transport/http/DeviceApiControllerTest.java

30
common/transport/http/src/main/java/org/thingsboard/server/transport/http/DeviceApiController.java

@ -431,22 +431,17 @@ public class DeviceApiController implements TbTransportService {
.setDeviceIdMSB(sessionInfo.getDeviceIdMSB()) .setDeviceIdMSB(sessionInfo.getDeviceIdMSB())
.setDeviceIdLSB(sessionInfo.getDeviceIdLSB()) .setDeviceIdLSB(sessionInfo.getDeviceIdLSB())
.setType(firmwareType.name()).build(); .setType(firmwareType.name()).build();
transportContext.getTransportService().process(sessionInfo, requestMsg, new GetOtaPackageCallback(transportContext,responseWriter, title, version, size, chunk)); transportContext.getTransportService().process(sessionInfo, requestMsg, new GetOtaPackageCallback(transportContext, responseWriter, title, version, size, chunk));
})); }));
return responseWriter; return responseWriter;
} }
@RequiredArgsConstructor
static class DeviceAuthCallback implements TransportServiceCallback<ValidateDeviceCredentialsResponse> { static class DeviceAuthCallback implements TransportServiceCallback<ValidateDeviceCredentialsResponse> {
private final TransportContext transportContext; private final TransportContext transportContext;
private final DeferredResult<ResponseEntity> responseWriter; private final DeferredResult<ResponseEntity> responseWriter;
private final Consumer<SessionInfoProto> onSuccess; private final Consumer<SessionInfoProto> onSuccess;
DeviceAuthCallback(TransportContext transportContext, DeferredResult<ResponseEntity> responseWriter, Consumer<SessionInfoProto> onSuccess) {
this.transportContext = transportContext;
this.responseWriter = responseWriter;
this.onSuccess = onSuccess;
}
@Override @Override
public void onSuccess(ValidateDeviceCredentialsResponse msg) { public void onSuccess(ValidateDeviceCredentialsResponse msg) {
if (msg.hasDeviceInfo()) { if (msg.hasDeviceInfo()) {
@ -469,13 +464,10 @@ public class DeviceApiController implements TbTransportService {
} }
} }
@RequiredArgsConstructor
static class DeviceProvisionCallback implements TransportServiceCallback<ProvisionDeviceResponseMsg> { static class DeviceProvisionCallback implements TransportServiceCallback<ProvisionDeviceResponseMsg> {
private final DeferredResult<ResponseEntity> responseWriter; private final DeferredResult<ResponseEntity> responseWriter;
DeviceProvisionCallback(DeferredResult<ResponseEntity> responseWriter) {
this.responseWriter = responseWriter;
}
@Override @Override
public void onSuccess(ProvisionDeviceResponseMsg msg) { public void onSuccess(ProvisionDeviceResponseMsg msg) {
responseWriter.setResult(new ResponseEntity<>(JsonConverter.toJson(msg).toString(), HttpStatus.OK)); responseWriter.setResult(new ResponseEntity<>(JsonConverter.toJson(msg).toString(), HttpStatus.OK));
@ -494,22 +486,14 @@ public class DeviceApiController implements TbTransportService {
} }
} }
@RequiredArgsConstructor
static class GetOtaPackageCallback implements TransportServiceCallback<TransportProtos.GetOtaPackageResponseMsg> { static class GetOtaPackageCallback implements TransportServiceCallback<TransportProtos.GetOtaPackageResponseMsg> {
private final TransportContext transportContext; private final TransportContext transportContext;
private final DeferredResult<ResponseEntity> responseWriter; private final DeferredResult<ResponseEntity> responseWriter;
private final String title; private final String title;
private final String version; private final String version;
private final int chuckSize; private final int chunkSize;
private final int chuck; private final int chunk;
GetOtaPackageCallback(TransportContext transportContext, DeferredResult<ResponseEntity> responseWriter, String title, String version, int chuckSize, int chuck) {
this.transportContext = transportContext;
this.responseWriter = responseWriter;
this.title = title;
this.version = version;
this.chuckSize = chuckSize;
this.chuck = chuck;
}
@Override @Override
public void onSuccess(TransportProtos.GetOtaPackageResponseMsg otaPackageResponseMsg) { public void onSuccess(TransportProtos.GetOtaPackageResponseMsg otaPackageResponseMsg) {
@ -517,7 +501,7 @@ public class DeviceApiController implements TbTransportService {
responseWriter.setResult(new ResponseEntity<>(HttpStatus.NOT_FOUND)); responseWriter.setResult(new ResponseEntity<>(HttpStatus.NOT_FOUND));
} else if (title.equals(otaPackageResponseMsg.getTitle()) && version.equals(otaPackageResponseMsg.getVersion())) { } else if (title.equals(otaPackageResponseMsg.getTitle()) && version.equals(otaPackageResponseMsg.getVersion())) {
String otaPackageId = new UUID(otaPackageResponseMsg.getOtaPackageIdMSB(), otaPackageResponseMsg.getOtaPackageIdLSB()).toString(); String otaPackageId = new UUID(otaPackageResponseMsg.getOtaPackageIdMSB(), otaPackageResponseMsg.getOtaPackageIdLSB()).toString();
ByteArrayResource resource = new ByteArrayResource(transportContext.getOtaPackageDataCache().get(otaPackageId, chuckSize, chuck)); ByteArrayResource resource = new ByteArrayResource(transportContext.getOtaPackageDataCache().get(otaPackageId, chunkSize, chunk));
ResponseEntity<ByteArrayResource> response = ResponseEntity.ok() ResponseEntity<ByteArrayResource> response = ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + otaPackageResponseMsg.getFileName()) .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + otaPackageResponseMsg.getFileName())
.header("x-filename", otaPackageResponseMsg.getFileName()) .header("x-filename", otaPackageResponseMsg.getFileName())

29
common/transport/http/src/test/java/org/thingsboard/server/transport/http/DeviceApiControllerTest.java

@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
@ -33,7 +33,8 @@ class DeviceApiControllerTest {
void deviceAuthCallbackTest() { void deviceAuthCallbackTest() {
TransportContext transportContext = Mockito.mock(TransportContext.class); TransportContext transportContext = Mockito.mock(TransportContext.class);
DeferredResult<ResponseEntity> responseWriter = Mockito.mock(DeferredResult.class); DeferredResult<ResponseEntity> responseWriter = Mockito.mock(DeferredResult.class);
Consumer<TransportProtos.SessionInfoProto> onSuccess = x -> {}; Consumer<TransportProtos.SessionInfoProto> onSuccess = x -> {
};
var callback = new DeviceApiController.DeviceAuthCallback(transportContext, responseWriter, onSuccess); var callback = new DeviceApiController.DeviceAuthCallback(transportContext, responseWriter, onSuccess);
callback.onError(new HttpMessageNotReadableException("JSON incorrect syntax")); callback.onError(new HttpMessageNotReadableException("JSON incorrect syntax"));
@ -59,23 +60,23 @@ class DeviceApiControllerTest {
callback.onError(new RuntimeException("oops it is run time error")); callback.onError(new RuntimeException("oops it is run time error"));
} }
@Test @Test
void getOtaPackageCallback() { void getOtaPackageCallback() {
TransportContext transportContext = Mockito.mock(TransportContext.class); TransportContext transportContext = Mockito.mock(TransportContext.class);
DeferredResult<ResponseEntity> responseWriter = Mockito.mock(DeferredResult.class); DeferredResult<ResponseEntity> responseWriter = Mockito.mock(DeferredResult.class);
String title = "Title"; String title = "Title";
String version = "version"; String version = "version";
int chuckSize = 11; int chunkSize = 11;
int chuck = 3; int chunk = 3;
var callback = new DeviceApiController.GetOtaPackageCallback(transportContext, responseWriter, title, version, chuckSize, chuck); var callback = new DeviceApiController.GetOtaPackageCallback(transportContext, responseWriter, title, version, chunkSize, chunk);
callback.onError(new HttpMessageNotReadableException("JSON incorrect syntax")); callback.onError(new HttpMessageNotReadableException("JSON incorrect syntax"));
callback.onError(new JsonParseException("Json ; expected")); callback.onError(new JsonParseException("Json ; expected"));
callback.onError(new IOException("not found")); callback.onError(new IOException("not found"));
callback.onError(new RuntimeException("oops it is run time error")); callback.onError(new RuntimeException("oops it is run time error"));
} }
} }

Loading…
Cancel
Save