diff --git a/src/main/java/com/target/devicemanager/components/cashdrawer/CashDrawerManager.java b/src/main/java/com/target/devicemanager/components/cashdrawer/CashDrawerManager.java index c0088e7..bdba420 100644 --- a/src/main/java/com/target/devicemanager/components/cashdrawer/CashDrawerManager.java +++ b/src/main/java/com/target/devicemanager/components/cashdrawer/CashDrawerManager.java @@ -102,19 +102,28 @@ public DeviceHealthResponse getHealth() { } else { deviceHealthResponse = new DeviceHealthResponse(cashDrawerDevice.getDeviceName(), DeviceHealth.NOTREADY); } - Objects.requireNonNull(cacheManager.getCache("cashDrawerHealth")).put("health", deviceHealthResponse); + try { + Objects.requireNonNull(cacheManager.getCache("cashDrawerHealth")).put("health", deviceHealthResponse); + } catch (Exception exception) { + LOGGER.error("getCache(cashDrawerHealth) Failed: " + exception.getMessage()); + } return deviceHealthResponse; } public DeviceHealthResponse getStatus() { - if (Objects.requireNonNull(cacheManager.getCache("cashDrawerHealth")).get("health") != null) { - if(connectStatus == ConnectEnum.CHECK_HEALTH) { - connectStatus = ConnectEnum.HEALTH_UPDATED; + try { + if (cacheManager != null && Objects.requireNonNull(cacheManager.getCache("cashDrawerHealth")).get("health") != null) { + if (connectStatus == ConnectEnum.CHECK_HEALTH) { + connectStatus = ConnectEnum.HEALTH_UPDATED; + return getHealth(); + } + return (DeviceHealthResponse) Objects.requireNonNull(cacheManager.getCache("cashDrawerHealth")).get("health").get(); + } else { + LOGGER.debug("Not able to retrieve from cache, checking getHealth()"); return getHealth(); } - return (DeviceHealthResponse) Objects.requireNonNull(cacheManager.getCache("cashDrawerHealth")).get("health").get(); - } else { - LOGGER.debug("Not able to retrieve from cache, checking getHealth()"); + } + catch (Exception exception) { return getHealth(); } } diff --git a/src/main/java/com/target/devicemanager/components/check/MicrManager.java b/src/main/java/com/target/devicemanager/components/check/MicrManager.java index 49f299f..5679da3 100644 --- a/src/main/java/com/target/devicemanager/components/check/MicrManager.java +++ b/src/main/java/com/target/devicemanager/components/check/MicrManager.java @@ -143,19 +143,27 @@ public DeviceHealthResponse getHealth() { } else { deviceHealthResponse = new DeviceHealthResponse(micrDevice.getDeviceName(), DeviceHealth.NOTREADY); } - Objects.requireNonNull(cacheManager.getCache("micrHealth")).put("health", deviceHealthResponse); + try { + Objects.requireNonNull(cacheManager.getCache("micrHealth")).put("health", deviceHealthResponse); + } catch (Exception exception) { + LOGGER.error("getCache(micrHealth) Failed: " + exception.getMessage()); + } return deviceHealthResponse; } public DeviceHealthResponse getStatus() { - if(Objects.requireNonNull(cacheManager.getCache("micrHealth")).get("health") != null) { - if(connectStatus == ConnectEnum.CHECK_HEALTH) { - connectStatus = ConnectEnum.HEALTH_UPDATED; + try { + if (cacheManager != null && Objects.requireNonNull(cacheManager.getCache("micrHealth")).get("health") != null) { + if (connectStatus == ConnectEnum.CHECK_HEALTH) { + connectStatus = ConnectEnum.HEALTH_UPDATED; + return getHealth(); + } + return (DeviceHealthResponse) Objects.requireNonNull(cacheManager.getCache("micrHealth")).get("health").get(); + } else { + LOGGER.debug("Not able to retrieve from cache, checking getHealth()"); return getHealth(); } - return (DeviceHealthResponse) Objects.requireNonNull(cacheManager.getCache("micrHealth")).get("health").get(); - } else { - LOGGER.debug("Not able to retrieve from cache, checking getHealth()"); + } catch (Exception exception) { return getHealth(); } } diff --git a/src/main/java/com/target/devicemanager/components/linedisplay/LineDisplayManager.java b/src/main/java/com/target/devicemanager/components/linedisplay/LineDisplayManager.java index 1d4514c..126e79e 100644 --- a/src/main/java/com/target/devicemanager/components/linedisplay/LineDisplayManager.java +++ b/src/main/java/com/target/devicemanager/components/linedisplay/LineDisplayManager.java @@ -104,19 +104,27 @@ public DeviceHealthResponse getHealth() { } else { deviceHealthResponse = new DeviceHealthResponse(lineDisplayDevice.getDeviceName(), DeviceHealth.NOTREADY); } - Objects.requireNonNull(cacheManager.getCache("lineDisplayHealth")).put("health", deviceHealthResponse); + try { + Objects.requireNonNull(cacheManager.getCache("lineDisplayHealth")).put("health", deviceHealthResponse); + } catch (Exception exception) { + LOGGER.error("getCache(lineDisplayHealth) Failed: " + exception.getMessage()); + } return deviceHealthResponse; } public DeviceHealthResponse getStatus() { - if(Objects.requireNonNull(cacheManager.getCache("lineDisplayHealth")).get("health") != null) { - if(connectStatus == ConnectEnum.CHECK_HEALTH) { - connectStatus = ConnectEnum.HEALTH_UPDATED; + try { + if (cacheManager != null && Objects.requireNonNull(cacheManager.getCache("lineDisplayHealth")).get("health") != null) { + if (connectStatus == ConnectEnum.CHECK_HEALTH) { + connectStatus = ConnectEnum.HEALTH_UPDATED; + return getHealth(); + } + return (DeviceHealthResponse) Objects.requireNonNull(cacheManager.getCache("lineDisplayHealth")).get("health").get(); + } else { + LOGGER.debug("Not able to retrieve from cache, checking getHealth()"); return getHealth(); } - return (DeviceHealthResponse) Objects.requireNonNull(cacheManager.getCache("lineDisplayHealth")).get("health").get(); - } else { - LOGGER.debug("Not able to retrieve from cache, checking getHealth()"); + } catch (Exception exception) { return getHealth(); } } diff --git a/src/main/java/com/target/devicemanager/components/printer/PrinterManager.java b/src/main/java/com/target/devicemanager/components/printer/PrinterManager.java index 81c0b35..9b6a48b 100644 --- a/src/main/java/com/target/devicemanager/components/printer/PrinterManager.java +++ b/src/main/java/com/target/devicemanager/components/printer/PrinterManager.java @@ -156,19 +156,27 @@ public DeviceHealthResponse getHealth() { } else { deviceHealthResponse = new DeviceHealthResponse(printerDevice.getDeviceName(), DeviceHealth.NOTREADY); } - Objects.requireNonNull(cacheManager.getCache("printerHealth")).put("health", deviceHealthResponse); + try { + Objects.requireNonNull(cacheManager.getCache("printerHealth")).put("health", deviceHealthResponse); + } catch (Exception exception) { + LOGGER.error("getCache(printerHealth) Failed: " + exception.getMessage()); + } return deviceHealthResponse; } public DeviceHealthResponse getStatus() { - if(Objects.requireNonNull(cacheManager.getCache("printerHealth")).get("health") != null) { - if(connectStatus == ConnectEnum.CHECK_HEALTH) { - connectStatus = ConnectEnum.HEALTH_UPDATED; + try { + if (cacheManager != null && Objects.requireNonNull(cacheManager.getCache("printerHealth")).get("health") != null) { + if (connectStatus == ConnectEnum.CHECK_HEALTH) { + connectStatus = ConnectEnum.HEALTH_UPDATED; + return getHealth(); + } + return (DeviceHealthResponse) Objects.requireNonNull(cacheManager.getCache("printerHealth")).get("health").get(); + } else { + LOGGER.debug("Not able to retrieve from cache, checking getHealth()"); return getHealth(); } - return (DeviceHealthResponse) Objects.requireNonNull(cacheManager.getCache("printerHealth")).get("health").get(); - } else { - LOGGER.debug("Not able to retrieve from cache, checking getHealth()"); + } catch (Exception exception) { return getHealth(); } } diff --git a/src/main/java/com/target/devicemanager/components/scale/ScaleManager.java b/src/main/java/com/target/devicemanager/components/scale/ScaleManager.java index 81f3805..74b0dd5 100644 --- a/src/main/java/com/target/devicemanager/components/scale/ScaleManager.java +++ b/src/main/java/com/target/devicemanager/components/scale/ScaleManager.java @@ -190,19 +190,27 @@ public DeviceHealthResponse getHealth() { } else { deviceHealthResponse = new DeviceHealthResponse(scaleDevice.getDeviceName(), DeviceHealth.NOTREADY); } - Objects.requireNonNull(cacheManager.getCache("scaleHealth")).put("health", deviceHealthResponse); + try { + Objects.requireNonNull(cacheManager.getCache("scaleHealth")).put("health", deviceHealthResponse); + } catch (Exception exception) { + LOGGER.error("getCache(scaleHealth) Failed: " + exception.getMessage()); + } return deviceHealthResponse; } public DeviceHealthResponse getStatus() { - if(Objects.requireNonNull(cacheManager.getCache("scaleHealth")).get("health") != null) { - if(connectStatus == ConnectEnum.CHECK_HEALTH) { - connectStatus = ConnectEnum.HEALTH_UPDATED; + try { + if (cacheManager != null && Objects.requireNonNull(cacheManager.getCache("scaleHealth")).get("health") != null) { + if (connectStatus == ConnectEnum.CHECK_HEALTH) { + connectStatus = ConnectEnum.HEALTH_UPDATED; + return getHealth(); + } + return (DeviceHealthResponse) Objects.requireNonNull(cacheManager.getCache("scaleHealth")).get("health").get(); + } else { + LOGGER.debug("Not able to retrieve from cache, checking getHealth()"); return getHealth(); } - return (DeviceHealthResponse) Objects.requireNonNull(cacheManager.getCache("scaleHealth")).get("health").get(); - } else { - LOGGER.debug("Not able to retrieve from cache, checking getHealth()"); + } catch (Exception exception) { return getHealth(); } } diff --git a/src/main/java/com/target/devicemanager/components/scanner/ScannerManager.java b/src/main/java/com/target/devicemanager/components/scanner/ScannerManager.java index 954e791..b6219a2 100644 --- a/src/main/java/com/target/devicemanager/components/scanner/ScannerManager.java +++ b/src/main/java/com/target/devicemanager/components/scanner/ScannerManager.java @@ -201,20 +201,28 @@ public List getHealth(ScannerType scannerType) { } } } - Objects.requireNonNull(cacheManager.getCache("scannerHealth")).put("health", response); + try { + Objects.requireNonNull(cacheManager.getCache("scannerHealth")).put("health", response); + } catch (Exception exception) { + LOGGER.error("getCache(scannerHealth) Failed: " + exception.getMessage()); + } LOGGER.trace("getHealth(out)"); return response; } public List getStatus() { - if(Objects.requireNonNull(cacheManager.getCache("scannerHealth")).get("health") != null) { - if(connectStatus == ConnectEnum.CHECK_HEALTH) { - connectStatus = ConnectEnum.HEALTH_UPDATED; + try { + if (cacheManager != null && Objects.requireNonNull(cacheManager.getCache("scannerHealth")).get("health") != null) { + if (connectStatus == ConnectEnum.CHECK_HEALTH) { + connectStatus = ConnectEnum.HEALTH_UPDATED; + return getHealth(ScannerType.BOTH); + } + return (List) Objects.requireNonNull(cacheManager.getCache("scannerHealth")).get("health").get(); + } else { + LOGGER.debug("Not able to retrieve from cache, checking getHealth()"); return getHealth(ScannerType.BOTH); } - return (List) Objects.requireNonNull(cacheManager.getCache("scannerHealth")).get("health").get(); - } else { - LOGGER.debug("Not able to retrieve from cache, checking getHealth()"); + } catch (Exception exception) { return getHealth(ScannerType.BOTH); } } diff --git a/src/test/java/com/target/devicemanager/components/cashdrawer/CashDrawerManagerTest.java b/src/test/java/com/target/devicemanager/components/cashdrawer/CashDrawerManagerTest.java index 0f8720f..ebf7f8d 100644 --- a/src/test/java/com/target/devicemanager/components/cashdrawer/CashDrawerManagerTest.java +++ b/src/test/java/com/target/devicemanager/components/cashdrawer/CashDrawerManagerTest.java @@ -331,6 +331,22 @@ public void getHealth_WhenDeviceOnline_ShouldReturnReadyHealthResponse() { assertEquals(expected.toString(), testCache.get("health").get().toString()); } + @Test + public void getHealth_WhenCacheFails_ShouldReturnReadyHealthResponse() { + //arrange + when(mockCashDrawerDevice.isConnected()).thenReturn(true); + when(mockCashDrawerDevice.getDeviceName()).thenReturn("cashDrawer"); + when(mockCacheManager.getCache("cashDrawerHealth")).thenReturn(null); + DeviceHealthResponse expected = new DeviceHealthResponse("cashDrawer", DeviceHealth.READY); + + //act + DeviceHealthResponse deviceHealthResponse = cashDrawerManagerCache.getHealth(); + + //assert + assertEquals("cashDrawer", deviceHealthResponse.getDeviceName()); + assertEquals(DeviceHealth.READY, deviceHealthResponse.getHealthStatus()); + } + @Test public void getStatus_WhenCacheExists() { //arrange @@ -392,4 +408,19 @@ public void getStatus_WhenCacheNull_WhenDeviceOnline() { //assert assertEquals(expected.toString(), deviceHealthResponse.toString()); } -} \ No newline at end of file + + @Test + public void getStatus_WhenCacheNull_CallHealth() { + //arrange + when(mockCashDrawerDevice.isConnected()).thenReturn(true); + when(mockCashDrawerDevice.getDeviceName()).thenReturn("cashDrawer"); + when(mockCacheManager.getCache("cashDrawerHealth")).thenReturn(null); + DeviceHealthResponse expected = new DeviceHealthResponse("cashDrawer", DeviceHealth.READY); + + //act + DeviceHealthResponse deviceHealthResponse = cashDrawerManagerCache.getStatus(); + + //assert + assertEquals(expected.toString(), deviceHealthResponse.toString()); + } +} diff --git a/src/test/java/com/target/devicemanager/components/check/MicrManagerTest.java b/src/test/java/com/target/devicemanager/components/check/MicrManagerTest.java index 2a2e006..e8cd482 100644 --- a/src/test/java/com/target/devicemanager/components/check/MicrManagerTest.java +++ b/src/test/java/com/target/devicemanager/components/check/MicrManagerTest.java @@ -393,6 +393,22 @@ public void getHealth_WhenDeviceOnline_ShouldReturnReadyHealthResponse() { assertEquals(expected.toString(), testCache.get("health").get().toString()); } + @Test + public void getHealth_WhenCacheNull_ShouldReturnReadyHealthResponse() { + //arrange + when(mockMicrDevice.isConnected()).thenReturn(true); + when(mockMicrDevice.getDeviceName()).thenReturn("micr"); + when(mockCacheManager.getCache("micrHealth")).thenReturn(null); + DeviceHealthResponse expected = new DeviceHealthResponse("micr", DeviceHealth.READY); + + //act + DeviceHealthResponse deviceHealthResponse = micrManagerCacheClient.getHealth(); + + //assert + assertEquals("micr", deviceHealthResponse.getDeviceName()); + assertEquals(DeviceHealth.READY, deviceHealthResponse.getHealthStatus()); + } + @Test public void getStatus_WhenCacheExists() { //arrange @@ -454,4 +470,19 @@ public void getStatus_WhenCacheNull_WhenDeviceOnline() { //assert assertEquals(expected.toString(), deviceHealthResponse.toString()); } -} \ No newline at end of file + + @Test + public void getStatus_WhenCacheNull_CallHealth() { + //arrange + when(mockMicrDevice.isConnected()).thenReturn(true); + when(mockMicrDevice.getDeviceName()).thenReturn("micr"); + when(mockCacheManager.getCache("micrHealth")).thenReturn(null); + DeviceHealthResponse expected = new DeviceHealthResponse("micr", DeviceHealth.READY); + + //act + DeviceHealthResponse deviceHealthResponse = micrManagerCacheClient.getStatus(); + + //assert + assertEquals(expected.toString(), deviceHealthResponse.toString()); + } +} diff --git a/src/test/java/com/target/devicemanager/components/linedisplay/LineDisplayManagerTest.java b/src/test/java/com/target/devicemanager/components/linedisplay/LineDisplayManagerTest.java index 12d3c2b..23cb2fe 100644 --- a/src/test/java/com/target/devicemanager/components/linedisplay/LineDisplayManagerTest.java +++ b/src/test/java/com/target/devicemanager/components/linedisplay/LineDisplayManagerTest.java @@ -304,6 +304,22 @@ public void getHealth_WhenDeviceOnline_ShouldReturnReadyHealthResponse() { assertEquals(expected.toString(), testCache.get("health").get().toString()); } + @Test + public void getHealth_CacheNull_ShouldReturnReadyHealthResponse() { + //arrange + when(mockLineDisplayDevice.isConnected()).thenReturn(true); + when(mockLineDisplayDevice.getDeviceName()).thenReturn("lineDisplay"); + when(mockCacheManager.getCache("lineDisplayHealth")).thenReturn(null); + DeviceHealthResponse expected = new DeviceHealthResponse("lineDisplay", DeviceHealth.READY); + + //act + DeviceHealthResponse deviceHealthResponse = lineDisplayManagerCache.getHealth(); + + //assert + assertEquals("lineDisplay", deviceHealthResponse.getDeviceName()); + assertEquals(DeviceHealth.READY, deviceHealthResponse.getHealthStatus()); + } + @Test public void getStatus_WhenCacheExists() { //arrange @@ -365,4 +381,19 @@ public void getStatus_WhenCacheNull_WhenDeviceOnline() { //assert assertEquals(expected.toString(), deviceHealthResponse.toString()); } -} \ No newline at end of file + + @Test + public void getStatus_WhenCacheNull_CallHealth() { + //arrange + when(mockLineDisplayDevice.isConnected()).thenReturn(true); + when(mockLineDisplayDevice.getDeviceName()).thenReturn("lineDisplay"); + when(mockCacheManager.getCache("lineDisplayHealth")).thenReturn(null); + DeviceHealthResponse expected = new DeviceHealthResponse("lineDisplay", DeviceHealth.READY); + + //act + DeviceHealthResponse deviceHealthResponse = lineDisplayManagerCache.getStatus(); + + //assert + assertEquals(expected.toString(), deviceHealthResponse.toString()); + } +} diff --git a/src/test/java/com/target/devicemanager/components/printer/PrinterManagerTest.java b/src/test/java/com/target/devicemanager/components/printer/PrinterManagerTest.java index dd50f67..2f34b97 100644 --- a/src/test/java/com/target/devicemanager/components/printer/PrinterManagerTest.java +++ b/src/test/java/com/target/devicemanager/components/printer/PrinterManagerTest.java @@ -444,6 +444,22 @@ public void getHealth_WhenDeviceOnline_ShouldReturnReadyHealthResponse() { assertEquals(expected.toString(), testCache.get("health").get().toString()); } + @Test + public void getHealth_CacheNull_ShouldReturnReadyHealthResponse() { + //arrange + when(mockPrinterDevice.isConnected()).thenReturn(true); + when(mockPrinterDevice.getDeviceName()).thenReturn("printer"); + when(mockCacheManager.getCache("printerHealth")).thenReturn(null); + DeviceHealthResponse expected = new DeviceHealthResponse("printer", DeviceHealth.READY); + + //act + DeviceHealthResponse deviceHealthResponse = printerManagerCacheFuture.getHealth(); + + //assert + assertEquals("printer", deviceHealthResponse.getDeviceName()); + assertEquals(DeviceHealth.READY, deviceHealthResponse.getHealthStatus()); + } + @Test public void getStatus_WhenCacheExists() { //arrange @@ -505,4 +521,19 @@ public void getStatus_WhenCacheNull_WhenDeviceOnline() { //assert assertEquals(expected.toString(), deviceHealthResponse.toString()); } + + @Test + public void getStatus_WhenCacheNull_CallHealth() { + //arrange + when(mockPrinterDevice.isConnected()).thenReturn(true); + when(mockPrinterDevice.getDeviceName()).thenReturn("printer"); + when(mockCacheManager.getCache("printerHealth")).thenReturn(null); + DeviceHealthResponse expected = new DeviceHealthResponse("printer", DeviceHealth.READY); + + //act + DeviceHealthResponse deviceHealthResponse = printerManagerCacheFuture.getStatus(); + + //assert + assertEquals(expected.toString(), deviceHealthResponse.toString()); + } } diff --git a/src/test/java/com/target/devicemanager/components/scale/ScaleManagerTest.java b/src/test/java/com/target/devicemanager/components/scale/ScaleManagerTest.java index 3f2a82f..1179f36 100644 --- a/src/test/java/com/target/devicemanager/components/scale/ScaleManagerTest.java +++ b/src/test/java/com/target/devicemanager/components/scale/ScaleManagerTest.java @@ -366,6 +366,23 @@ public void getStableWeight_ReturnsBusy() throws ScaleException, ExecutionExcept fail("Expected Exception, but got none"); } + @Test + public void getStableWeight_DeviceOffline_ReturnsOffline() throws ScaleException, ExecutionException, InterruptedException, TimeoutException { + //arrange + when(mockScaleDevice.tryLock()).thenReturn(true); + when(scaleManager.isScaleReady()).thenReturn(false); + //act + try{ + scaleManager.getStableWeight(mockCompletableFutureFormattedWeight); + } + catch(ScaleException scaleException) { + //assert + assertEquals("DEVICE_OFFLINE", scaleException.getDeviceError().getCode()); + return; + } + fail("Expected Exception, but got none"); + } + @Test public void getStableWeight_ThrowsExecutionException() throws ExecutionException, InterruptedException, TimeoutException { //arrange @@ -568,6 +585,22 @@ public void getHealth_WhenDeviceOnline_ShouldReturnReadyHealthResponse() { assertEquals(expected.toString(), testCache.get("health").get().toString()); } + @Test + public void getHealth_CacheNull_ShouldReturnReadyHealthResponse() { + //arrange + when(mockScaleDevice.isConnected()).thenReturn(true); + when(mockScaleDevice.getDeviceName()).thenReturn("scale"); + when(mockCacheManager.getCache("scaleHealth")).thenReturn(testCache); + DeviceHealthResponse expected = new DeviceHealthResponse("scale", DeviceHealth.READY); + + //act + DeviceHealthResponse deviceHealthResponse = scaleManagerListCacheEmitter.getHealth(); + + //assert + assertEquals("scale", deviceHealthResponse.getDeviceName()); + assertEquals(DeviceHealth.READY, deviceHealthResponse.getHealthStatus()); + } + @Test public void getStatus_WhenCacheExists() { //arrange @@ -629,4 +662,19 @@ public void getStatus_WhenCacheNull_WhenDeviceOnline() { //assert assertEquals(expected.toString(), deviceHealthResponse.toString()); } + + @Test + public void getStatus_WhenCacheNull_CheckHealth() { + //arrange + when(mockScaleDevice.isConnected()).thenReturn(true); + when(mockScaleDevice.getDeviceName()).thenReturn("scale"); + when(mockCacheManager.getCache("scaleHealth")).thenReturn(null); + DeviceHealthResponse expected = new DeviceHealthResponse("scale", DeviceHealth.READY); + + //act + DeviceHealthResponse deviceHealthResponse = scaleManagerListCacheEmitter.getStatus(); + + //assert + assertEquals(expected.toString(), deviceHealthResponse.toString()); + } } diff --git a/src/test/java/com/target/devicemanager/components/scanner/ScannerManagerTest.java b/src/test/java/com/target/devicemanager/components/scanner/ScannerManagerTest.java index 12557a8..e57c355 100644 --- a/src/test/java/com/target/devicemanager/components/scanner/ScannerManagerTest.java +++ b/src/test/java/com/target/devicemanager/components/scanner/ScannerManagerTest.java @@ -433,6 +433,30 @@ public void getHealth_WhenBothDevicesOnline_ShouldReturnReadyHealthResponse() { assertEquals(expectedList.toString(), testCache.get("health").get().toString()); } + @Test + public void getHealth_CacheNull_ShouldReturnReadyHealthResponse() { + //arrange + when(mockHandheldScannerDevice.isConnected()).thenReturn(true); + when(mockHandheldScannerDevice.getDeviceName()).thenReturn("HANDHELD"); + when(mockFlatbedScannerDevice.isConnected()).thenReturn(true); + when(mockFlatbedScannerDevice.getDeviceName()).thenReturn("FLATBED"); + when(mockCacheManager.getCache("scannerHealth")).thenReturn(null); + List expectedList = new ArrayList<>(); + expectedList.add(new DeviceHealthResponse("HANDHELD", DeviceHealth.READY)); + expectedList.add(new DeviceHealthResponse("FLATBED", DeviceHealth.READY)); + when(mockFlatbedScannerDevice.getScannerType()).thenReturn("FLATBED"); + when(mockHandheldScannerDevice.getScannerType()).thenReturn("HANDHELD"); + + //act + List deviceHealthResponseList = scannerManagerCache.getHealth(ScannerType.BOTH); + + //assert + assertEquals("HANDHELD", deviceHealthResponseList.get(0).getDeviceName()); + assertEquals(DeviceHealth.READY, deviceHealthResponseList.get(0).getHealthStatus()); + assertEquals("FLATBED", deviceHealthResponseList.get(1).getDeviceName()); + assertEquals(DeviceHealth.READY, deviceHealthResponseList.get(1).getHealthStatus()); + } + @Test public void getHealth_WhenHandheldDeviceOnline_ShouldReturnNotReadyHealthResponse() { //arrange @@ -557,6 +581,26 @@ public void getStatus_WhenCacheNull_WhenDeviceOnline() { assertEquals(expectedList.toString(), deviceHealthResponseList.toString()); } + @Test + public void getStatus_WhenCacheNull_CheckHealth() { + //arrange + when(mockCacheManager.getCache("scannerHealth")).thenReturn(null); + List expectedList = new ArrayList<>(); + expectedList.add(new DeviceHealthResponse("HANDHELD", DeviceHealth.READY)); + expectedList.add(new DeviceHealthResponse("FLATBED", DeviceHealth.READY)); + + when(mockHandheldScannerDevice.isConnected()).thenReturn(true); + when(mockFlatbedScannerDevice.isConnected()).thenReturn(true); + when(mockFlatbedScannerDevice.getDeviceName()).thenReturn("FLATBED"); + when(mockHandheldScannerDevice.getDeviceName()).thenReturn("HANDHELD"); + + //act + List deviceHealthResponseList = scannerManagerCache.getStatus(); + + //assert + assertEquals(expectedList.toString(), deviceHealthResponseList.toString()); + } + @Test void getScannerHealthStatus_FlatbedScanner() { //arrange