From 7427ff427d86cf6a2db991f7047edb50322d92bf Mon Sep 17 00:00:00 2001 From: Bernadette Date: Tue, 11 Jun 2024 14:07:42 -0500 Subject: [PATCH 1/4] error handling for cache --- .../cashdrawer/CashDrawerManager.java | 23 +++++++++++++------ .../components/check/MicrManager.java | 22 ++++++++++++------ .../linedisplay/LineDisplayManager.java | 22 ++++++++++++------ .../components/scanner/ScannerManager.java | 22 ++++++++++++------ 4 files changed, 61 insertions(+), 28 deletions(-) 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/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); } } From 96230856018de81c3f8d9dba908ca6488ce76e24 Mon Sep 17 00:00:00 2001 From: Bernadette Date: Tue, 11 Jun 2024 15:47:20 -0500 Subject: [PATCH 2/4] unit tests --- .../components/printer/PrinterManager.java | 22 ++++++--- .../components/scale/ScaleManager.java | 22 ++++++--- .../cashdrawer/CashDrawerManagerTest.java | 31 ++++++++++++ .../components/check/MicrManagerTest.java | 31 ++++++++++++ .../linedisplay/LineDisplayManagerTest.java | 31 ++++++++++++ .../printer/PrinterManagerTest.java | 31 ++++++++++++ .../components/scale/ScaleManagerTest.java | 48 +++++++++++++++++++ .../scanner/ScannerManagerTest.java | 44 +++++++++++++++++ 8 files changed, 246 insertions(+), 14 deletions(-) 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..bf9c834 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 (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..b85a41e 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 (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/test/java/com/target/devicemanager/components/cashdrawer/CashDrawerManagerTest.java b/src/test/java/com/target/devicemanager/components/cashdrawer/CashDrawerManagerTest.java index 0f8720f..a730ac2 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()); } + + @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()); + } } \ No newline at end of file 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..dbe3ef9 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()); } + + @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()); + } } \ No newline at end of file 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..5dd1775 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()); } + + @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()); + } } \ No newline at end of file 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 From e40b298080c4b7f94f68c6f51ca696f726395034 Mon Sep 17 00:00:00 2001 From: Bernadette Date: Tue, 11 Jun 2024 15:49:22 -0500 Subject: [PATCH 3/4] cache check null --- .../target/devicemanager/components/printer/PrinterManager.java | 2 +- .../com/target/devicemanager/components/scale/ScaleManager.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 bf9c834..9b6a48b 100644 --- a/src/main/java/com/target/devicemanager/components/printer/PrinterManager.java +++ b/src/main/java/com/target/devicemanager/components/printer/PrinterManager.java @@ -166,7 +166,7 @@ public DeviceHealthResponse getHealth() { public DeviceHealthResponse getStatus() { try { - if (Objects.requireNonNull(cacheManager.getCache("printerHealth")).get("health") != null) { + if (cacheManager != null && Objects.requireNonNull(cacheManager.getCache("printerHealth")).get("health") != null) { if (connectStatus == ConnectEnum.CHECK_HEALTH) { connectStatus = ConnectEnum.HEALTH_UPDATED; 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 b85a41e..74b0dd5 100644 --- a/src/main/java/com/target/devicemanager/components/scale/ScaleManager.java +++ b/src/main/java/com/target/devicemanager/components/scale/ScaleManager.java @@ -200,7 +200,7 @@ public DeviceHealthResponse getHealth() { public DeviceHealthResponse getStatus() { try { - if (Objects.requireNonNull(cacheManager.getCache("scaleHealth")).get("health") != null) { + if (cacheManager != null && Objects.requireNonNull(cacheManager.getCache("scaleHealth")).get("health") != null) { if (connectStatus == ConnectEnum.CHECK_HEALTH) { connectStatus = ConnectEnum.HEALTH_UPDATED; return getHealth(); From 721e8cb1f41c92b35e4327a8e63dd085b7bffeed Mon Sep 17 00:00:00 2001 From: Bernadette Date: Tue, 11 Jun 2024 15:51:10 -0500 Subject: [PATCH 4/4] whitespace --- .../components/cashdrawer/CashDrawerManagerTest.java | 2 +- .../target/devicemanager/components/check/MicrManagerTest.java | 2 +- .../components/linedisplay/LineDisplayManagerTest.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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 a730ac2..ebf7f8d 100644 --- a/src/test/java/com/target/devicemanager/components/cashdrawer/CashDrawerManagerTest.java +++ b/src/test/java/com/target/devicemanager/components/cashdrawer/CashDrawerManagerTest.java @@ -423,4 +423,4 @@ public void getStatus_WhenCacheNull_CallHealth() { //assert assertEquals(expected.toString(), deviceHealthResponse.toString()); } -} \ No newline at end of file +} 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 dbe3ef9..e8cd482 100644 --- a/src/test/java/com/target/devicemanager/components/check/MicrManagerTest.java +++ b/src/test/java/com/target/devicemanager/components/check/MicrManagerTest.java @@ -485,4 +485,4 @@ public void getStatus_WhenCacheNull_CallHealth() { //assert assertEquals(expected.toString(), deviceHealthResponse.toString()); } -} \ No newline at end of file +} 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 5dd1775..23cb2fe 100644 --- a/src/test/java/com/target/devicemanager/components/linedisplay/LineDisplayManagerTest.java +++ b/src/test/java/com/target/devicemanager/components/linedisplay/LineDisplayManagerTest.java @@ -396,4 +396,4 @@ public void getStatus_WhenCacheNull_CallHealth() { //assert assertEquals(expected.toString(), deviceHealthResponse.toString()); } -} \ No newline at end of file +}