IncidentService extends RecordService { public Incident saveOrUpdate(ItemValuesMap itemValues) throws IOException { if (itemValues.getAsString(INCIDENT_ID) == null) { return save(itemValues); } else { return update(itemValues); } } IncidentService();  IncidentService(IncidentDao incidentDao); Incident getById(long incidentId); Incident getByUniqueId(String uniqueId); List<Incident> getAll(); List<Long> getAllOrderByDateASC(); List<Long> getAllOrderByDateDES(); List<Long> getAllOrderByAgeASC(); List<Long> getAllOrderByAgeDES(); List<Long> getSearchResult(String uniqueId, String survivorCode, int ageFrom, int ageTo, String
            typeOfViolence, String location); Incident saveOrUpdate(ItemValuesMap itemValues); Incident save(ItemValuesMap itemValues); Incident update(ItemValuesMap itemValues); Incident deleteByRecordId(long recordId); Incident getByInternalId(String id); boolean hasSameRev(String id, String rev); List<Long> getAllSyncedRecordsId(); static final String TAG; static final String INCIDENT_DISPLAY_ID; static final String INCIDENT_ID; static final String INCIDENT_PRIMARY_ID; static final String EMPTY_ID; }
@Test public void should_save_when_incident_id_is_null() throws Exception { ItemValuesMap itemValues = new ItemValuesMap(); itemValues.addStringItem(INCIDENT_ID, null); String uuid = UUID.randomUUID().toString(); IncidentService incidentServiceSpy = spy(incidentService); when(incidentServiceSpy.generateUniqueId()).thenReturn(uuid); Incident actual = incidentServiceSpy.saveOrUpdate(itemValues); assertThat("Should return same uuid", actual.getUniqueId(), is(uuid)); }