private void validateFilter(final DefaultIssueFilter issueFilter) {
List<IssueFilterDto> userFilters = selectUserIssueFilters(issueFilter.user());
IssueFilterDto userFilterSameName = findFilterWithSameName(userFilters, issueFilter.name());
- if (userFilterSameName != null && userFilterSameName.getId() != issueFilter.id()) {
+ if (userFilterSameName != null && !userFilterSameName.getId().equals(issueFilter.id())) {
throw new IllegalArgumentException("Name already exists");
}
if (issueFilter.shared()) {
verify(issueFilterDao).update(any(IssueFilterDto.class));
}
+ @Test
+ public void should_update_own_user_filter_without_changing_anything() {
+ IssueFilterDto dto = new IssueFilterDto().setId(1L).setName("My Filter").setUserLogin("john");
+ when(issueFilterDao.selectById(1L)).thenReturn(dto);
+ when(issueFilterDao.selectByUser("john")).thenReturn(newArrayList(dto));
+
+ DefaultIssueFilter result = service.update(new DefaultIssueFilter().setId(1L).setName("My Filter").setUser("john"), userSession);
+ assertThat(result.name()).isEqualTo("My Filter");
+
+ verify(issueFilterDao).update(any(IssueFilterDto.class));
+ }
+
@Test
public void should_remove_other_favorite_filters_if_filter_become_unshared() {
when(issueFilterDao.selectById(1L)).thenReturn(new IssueFilterDto().setId(1L).setName("My Old Filter").setUserLogin("john").setShared(true));