### Question:
ProcessService extends AbstractService { public Collection<DataloadProcess> listUserProcesses() { return listProcesses(USER_PROCESSES_TEMPLATE.expand(accountService.getCurrent().getId())); } ProcessService(final RestTemplate restTemplate, final AccountService accountService,
                          final DataStoreService dataStoreService, final GoodDataSettings settings); DataloadProcess createProcess(Project project, DataloadProcess process, File processData); DataloadProcess createProcess(Project project, DataloadProcess process); FutureResult<DataloadProcess> createProcessFromAppstore(Project project, DataloadProcess process); DataloadProcess updateProcess(DataloadProcess process, File processData); FutureResult<DataloadProcess> updateProcessFromAppstore(DataloadProcess process); DataloadProcess getProcessByUri(String uri); DataloadProcess getProcessById(Project project, String id); Collection<DataloadProcess> listProcesses(Project project); Collection<DataloadProcess> listUserProcesses(); void removeProcess(DataloadProcess process); void getProcessSource(DataloadProcess process, OutputStream outputStream); void getExecutionLog(ProcessExecutionDetail executionDetail, OutputStream outputStream); FutureResult<ProcessExecutionDetail> executeProcess(ProcessExecution execution); Schedule createSchedule(Project project, Schedule schedule); Schedule updateSchedule(Schedule schedule); Schedule getScheduleByUri(String uri); Schedule getScheduleById(Project project, String id); PageBrowser<Schedule> listSchedules(final Project project); PageBrowser<Schedule> listSchedules(final Project project,
                                                final PageRequest startPage); void removeSchedule(final Schedule schedule); FutureResult<ScheduleExecution> executeSchedule(final Schedule schedule); static final UriTemplate SCHEDULE_TEMPLATE; static final UriTemplate PROCESS_TEMPLATE; static final UriTemplate SCHEDULES_TEMPLATE; static final UriTemplate PROCESSES_TEMPLATE; static final UriTemplate USER_PROCESSES_TEMPLATE; }### Answer:
@Test(expectedExceptions = GoodDataException.class) public void testListUserProcessesWithRestClientError() { when(restTemplate.getForObject(create(USER_PROCESS_URI), DataloadProcesses.class)) .thenThrow(new RestClientException("")); processService.listUserProcesses(); }
@Test(expectedExceptions = GoodDataException.class) public void testListUserProcessesWithNullResponse() { when(restTemplate.getForObject(create(USER_PROCESS_URI), DataloadProcesses.class)).thenReturn(null); processService.listUserProcesses(); }
@Test public void testListUserProcessesWithNoProcesses() throws Exception { when(restTemplate.getForObject(create(USER_PROCESS_URI), DataloadProcesses.class)) .thenReturn(OBJECT_MAPPER.readValue("{\"processes\":{\"items\":[]}}", DataloadProcesses.class)); final Collection<DataloadProcess> result = processService.listUserProcesses(); assertThat(result, empty()); }
@Test public void testListUserProcessesWithOneProcesses() throws IOException { when(restTemplate.getForObject(create(USER_PROCESS_URI), DataloadProcesses.class)) .thenReturn(OBJECT_MAPPER.readValue(PROCESSES_JSON, DataloadProcesses.class)); final Collection<DataloadProcess> result = processService.listUserProcesses(); assertThat(result, hasSize(1)); assertThat(result.iterator().next().getName(), is(process.getName())); assertThat(result.iterator().next().getType(), is(process.getType())); }