@Test public void serviceExceptionTest() throws ServiceException, IOException { URL serviceUrl = new URL("http://localhost:8082/download-manager/dataAccessRequests"); when(downloadManagerService.sendGetCommand(serviceUrl)) .thenThrow(new ServiceException("Test ServiceException")); try { getStatus.getStatus(); } catch (CLICommandException e) { assertEquals( "Unable to execute command, ServiceException: Test ServiceException", e.getMessage()); } }
@Test public void getStatusEmptyDarListTest() throws CLICommandException, ServiceException, IOException { HttpURLConnection conn = mock(HttpURLConnection.class); when(downloadManagerService.sendGetCommand( new URL("http://localhost:8082/download-manager/dataAccessRequests"))) .thenReturn(conn); // setup basic status response StatusResponse statusResponse = new StatusResponse(); List<DataAccessRequest> darList = new ArrayList<>(); statusResponse.setDataAccessRequests(darList); when(downloadManagerResponseParser.parseStatusResponse(conn)).thenReturn(statusResponse); assertEquals("There are currently no visible DARs.", getStatus.getStatus()); }
@Test public void getStatusWithNameNotMonitoredTest() throws CLICommandException, ServiceException, IOException { HttpURLConnection conn = mock(HttpURLConnection.class); when(downloadManagerService.sendGetCommand( new URL("http://localhost:8082/download-manager/dataAccessRequests"))) .thenReturn(conn); // setup basic status response StatusResponse statusResponse = new StatusResponse(); List<DataAccessRequest> darList = new ArrayList<>(); DataAccessRequest dar = new DataAccessRequestBuilder().buildDAR(null, "Test DAR name", false); Product product3 = new ProductBuilder().buildProduct("product 3 url"); product3.setTotalFileSize(5242880); product3.getProductProgress().setDownloadedSize(5242880); product3.getProductProgress().setProgressPercentage(100); product3.getProductProgress().setStatus(EDownloadStatus.COMPLETED); List<Product> productList = new ArrayList<>(); productList.add(product3); dar.setProductList(productList); darList.add(dar); statusResponse.setDataAccessRequests(darList); when(downloadManagerResponseParser.parseStatusResponse(conn)).thenReturn(statusResponse); StringBuilder expectedOutput = new StringBuilder(100); expectedOutput.append("Test DAR name\n\n"); expectedOutput.append(String.format("\tproduct 3 url (%s)\n", product3.getUuid())); expectedOutput.append("\t\tDownloaded: 5,242,880 / 5,242,880 (100%)\n"); expectedOutput.append("\t\tStatus: COMPLETED\n\n"); assertEquals(expectedOutput.toString(), getStatus.getStatus()); }
@Test public void getStatusTest() throws CLICommandException, ServiceException, IOException { HttpURLConnection conn = mock(HttpURLConnection.class); when(downloadManagerService.sendGetCommand( new URL("http://localhost:8082/download-manager/dataAccessRequests"))) .thenReturn(conn); // setup basic status response StatusResponse statusResponse = new StatusResponse(); List<DataAccessRequest> darList = new ArrayList<>(); DataAccessRequest dar = new DataAccessRequestBuilder().buildDAR("http://www.test.com/dar", null, true); Product product1 = new ProductBuilder().buildProduct("product 1 url"); product1.setTotalFileSize(-1); product1.getProductProgress().setDownloadedSize(21345); product1.getProductProgress().setProgressPercentage(-1); Product product2 = new ProductBuilder().buildProduct("product 2 url"); product2.setPriority(ProductPriority.HIGH); Product product3 = new ProductBuilder().buildProduct("product 3 url"); product3.setTotalFileSize(5242880); product3.getProductProgress().setDownloadedSize(5242880); product3.getProductProgress().setProgressPercentage(100); product3.getProductProgress().setStatus(EDownloadStatus.COMPLETED); Product hiddenProduct = new ProductBuilder().buildProduct("hidden product url"); hiddenProduct.setVisible(false); List<Product> productList = new ArrayList<>(); productList.add(product1); productList.add(product2); productList.add(product3); productList.add(hiddenProduct); dar.setProductList(productList); darList.add(dar); DataAccessRequest hiddenDar = new DataAccessRequestBuilder().buildDAR("hidden dar url", "hidden dar name", true); hiddenDar.setVisible(false); darList.add(hiddenDar); statusResponse.setDataAccessRequests(darList); when(downloadManagerResponseParser.parseStatusResponse(conn)).thenReturn(statusResponse); StringBuilder expectedOutput = new StringBuilder(100); expectedOutput.append("http://www.test.com/dar\nMonitoring Status: IN_PROGRESS\n\n"); expectedOutput.append(String.format("\tproduct 1 url (%s)\n", product1.getUuid())); expectedOutput.append("\t\tDownloaded: 21,345 / Unknown (Unknown %)\n"); expectedOutput.append("\t\tStatus: NOT_STARTED\n"); expectedOutput.append("\t\tPriority: Normal\n\n"); expectedOutput.append(String.format("\tproduct 2 url (%s)\n", product2.getUuid())); expectedOutput.append("\t\tDownloaded: 0 / 0 (0%)\n"); expectedOutput.append("\t\tStatus: NOT_STARTED\n"); expectedOutput.append("\t\tPriority: High\n\n"); expectedOutput.append(String.format("\tproduct 3 url (%s)\n", product3.getUuid())); expectedOutput.append("\t\tDownloaded: 5,242,880 / 5,242,880 (100%)\n"); expectedOutput.append("\t\tStatus: COMPLETED\n\n"); assertEquals(expectedOutput.toString(), getStatus.getStatus()); }
@Test public void isConfigAvailableTest() { assertTrue(getStatus.isGetStatusAvailable()); }