]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4383 Fix issue when comparing filter ids
authorJulien Lancelot <julien.lancelot@gmail.com>
Wed, 3 Jul 2013 12:47:56 +0000 (14:47 +0200)
committerJulien Lancelot <julien.lancelot@gmail.com>
Wed, 3 Jul 2013 12:48:07 +0000 (14:48 +0200)
sonar-server/src/main/java/org/sonar/server/issue/IssueFilterService.java
sonar-server/src/test/java/org/sonar/server/issue/IssueFilterServiceTest.java

index a60adcdb26a104d3db7347cc7f67724ef1260866..5db8808b18a1a1dd64f87a3c35df598808e51c85 100644 (file)
@@ -226,7 +226,7 @@ public class IssueFilterService implements ServerComponent {
   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()) {
index 3737a31fa371381b4b25c9a7ffab6fbe18599bb6..6350e37a41429ae108bcdccde20ae1827607770a 100644 (file)
@@ -235,6 +235,18 @@ public class IssueFilterServiceTest {
     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));