### Question:
DatasetService extends AbstractService { public Collection<Upload> listUploadsForDataset(Project project, String datasetId) { final UploadsInfo.DataSet dataSet = getDataSetInfo(project, datasetId); if (isEmpty(dataSet.getUploadsUri())) { return emptyList(); } try { final Uploads result = restTemplate.getForObject(dataSet.getUploadsUri(), Uploads.class); if (result == null) { throw new GoodDataException("Empty response from '" + dataSet.getUploadsUri() + "'."); } else if (result.items() == null){ return emptyList(); } return result.items(); } catch (RestClientException e) { throw new GoodDataException("Unable to get '" + dataSet.getUploadsUri() + "'.", e); } } DatasetService(final RestTemplate restTemplate, final DataStoreService dataStoreService,
                          final GoodDataSettings settings); DatasetManifest getDatasetManifest(Project project, String datasetId); FutureResult<Void> loadDataset(final Project project, final DatasetManifest manifest,
                                          final InputStream dataset); FutureResult<Void> loadDataset(Project project, String datasetId, InputStream dataset); FutureResult<Void> loadDatasets(final Project project, DatasetManifest... datasets); FutureResult<Void> loadDatasets(final Project project, final Collection<DatasetManifest> datasets); Collection<Link> listDatasetLinks(final Project project); FutureResult<Void> optimizeSliHash(final Project project); FutureResult<Void> updateProjectData(final Project project, final String maqlDml); Collection<Upload> listUploadsForDataset(Project project, String datasetId); Upload getLastUploadForDataset(Project project, String datasetId); UploadStatistics getUploadStatistics(Project project); static final UriTemplate UPLOADS_INFO_TEMPLATE; }### Answer:
@Test public void testListUploadsForDatasetMissingUri() throws Exception { mockDataSetInfo(null, null); assertThat(service.listUploadsForDataset(project, DATASET_ID), Matchers.empty()); }
@Test(expectedExceptions = GoodDataException.class) public void testListUploadsForDatasetRestClientError() throws Exception { mockDataSetInfo(DATASET_UPLOADS_URI, null); when(restTemplate.getForObject(DATASET_UPLOADS_URI, Uploads.class)).thenThrow(new RestClientException("")); service.listUploadsForDataset(project, DATASET_ID); }
@Test(expectedExceptions = GoodDataException.class) public void testListUploadsForDatasetEmptyResponse() throws Exception { mockDataSetInfo(DATASET_UPLOADS_URI, null); when(restTemplate.getForObject(DATASET_UPLOADS_URI, Uploads.class)).thenReturn(null); service.listUploadsForDataset(project, DATASET_ID); }
@Test public void testListUploadsForDatasetEmptyResponseBody() throws Exception { mockDataSetInfo(DATASET_UPLOADS_URI, null); when(restTemplate.getForObject(DATASET_UPLOADS_URI, Uploads.class)) .thenReturn(OBJECT_MAPPER.readValue("{\"dataUploads\":{}}", Uploads.class)); assertThat(service.listUploadsForDataset(project, DATASET_ID), Matchers.empty()); }