### Question:
DatasetService extends AbstractService { public DatasetManifest getDatasetManifest(Project project, String datasetId) { notNull(project, "project"); notNull(project.getId(), "project.id"); notEmpty(datasetId, "datasetId"); try { return restTemplate.getForObject(DatasetManifest.URI, DatasetManifest.class, project.getId(), datasetId); } catch (GoodDataRestException e) { if (e.getStatusCode() == 404) { throw new DatasetNotFoundException(datasetId, e); } else { throw new DatasetException("Unable to get manifest", datasetId, e); } } catch (RestClientException e) { throw new DatasetException("Unable to get manifest", datasetId, 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(expectedExceptions = IllegalArgumentException.class) public void testGetDatasetManifestWithNullProject() { service.getDatasetManifest(null, DATASET_ID); }
@Test(expectedExceptions = IllegalArgumentException.class) public void testGetDatasetManifestWithNullId() { service.getDatasetManifest(project, null); }
@Test(expectedExceptions = IllegalArgumentException.class) public void testGetDatasetManifestWithEmptyId() { service.getDatasetManifest(project, ""); }
@Test(expectedExceptions = DatasetNotFoundException.class) public void testGetDatasetManifestWhenNotFound() { when(restTemplate.getForObject(DatasetManifest.URI, DatasetManifest.class, PROJECT_ID, DATASET_ID)) .thenThrow(new GoodDataRestException(404, "", "", "", "")); service.getDatasetManifest(project, DATASET_ID); }
@Test(expectedExceptions = DatasetException.class) public void testGetDatasetManifestWhenRestClientError() { when(restTemplate.getForObject(DatasetManifest.URI, DatasetManifest.class, PROJECT_ID, DATASET_ID)) .thenThrow(new RestClientException("")); service.getDatasetManifest(project, DATASET_ID); }
@Test(expectedExceptions = DatasetException.class) public void testGetDatasetManifestWhenOtherError() { when(restTemplate.getForObject(DatasetManifest.URI, DatasetManifest.class, PROJECT_ID, DATASET_ID)) .thenThrow(new GoodDataRestException(500, "", "", "", "")); service.getDatasetManifest(project, DATASET_ID); }