diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-04-01 16:18:14 +0200 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-04-01 19:47:03 +0200 |
commit | ca8fc0634e839662d24312c3bbeb49ad64756349 (patch) | |
tree | 91cf85c203e26ee6a4919a8ae08ad6d373ed945d | |
parent | 4815f910fb11c2ad236601a1c29a2be5cfb0985f (diff) | |
download | sonarqube-ca8fc0634e839662d24312c3bbeb49ad64756349.tar.gz sonarqube-ca8fc0634e839662d24312c3bbeb49ad64756349.zip |
SONAR-5174 Update date when updating rules
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/rule/RuleOperations.java | 1 | ||||
-rw-r--r-- | sonar-server/src/test/java/org/sonar/server/rule/RuleOperationsTest.java | 25 |
2 files changed, 11 insertions, 15 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/RuleOperations.java b/sonar-server/src/main/java/org/sonar/server/rule/RuleOperations.java index d587936bd58..e0289f8f01f 100644 --- a/sonar-server/src/main/java/org/sonar/server/rule/RuleOperations.java +++ b/sonar-server/src/main/java/org/sonar/server/rule/RuleOperations.java @@ -298,6 +298,7 @@ public class RuleOperations implements ServerComponent { } if (updated) { + ruleDto.setUpdatedAt(new Date(system.now())); ruleDao.update(ruleDto, session); session.commit(); reindexRule(ruleDto, session); diff --git a/sonar-server/src/test/java/org/sonar/server/rule/RuleOperationsTest.java b/sonar-server/src/test/java/org/sonar/server/rule/RuleOperationsTest.java index 4b760a27471..0ff30e70952 100644 --- a/sonar-server/src/test/java/org/sonar/server/rule/RuleOperationsTest.java +++ b/sonar-server/src/test/java/org/sonar/server/rule/RuleOperationsTest.java @@ -98,6 +98,8 @@ public class RuleOperationsTest { @Mock System2 system; + Date now = DateUtils.parseDate("2014-03-19"); + @Captor ArgumentCaptor<RuleDto> ruleCaptor; @@ -112,6 +114,8 @@ public class RuleOperationsTest { public void setUp() throws Exception { when(myBatis.openSession()).thenReturn(session); + when(system.now()).thenReturn(now.getTime()); + // Associate an id when inserting an object to simulate the db id generator doAnswer(new Answer() { public Object answer(InvocationOnMock invocation) { @@ -134,17 +138,14 @@ public class RuleOperationsTest { List<RuleRuleTagDto> ruleTags = newArrayList(new RuleRuleTagDto().setId(30L).setTag("style").setType(RuleTagType.SYSTEM)); when(ruleDao.selectTags(eq(10), eq(session))).thenReturn(ruleTags); - long now = System.currentTimeMillis(); - doReturn(now).when(system).now(); - operations.updateRuleNote(rule, "My note", authorizedUserSession); ArgumentCaptor<RuleDto> argumentCaptor = ArgumentCaptor.forClass(RuleDto.class); verify(ruleDao).update(argumentCaptor.capture()); assertThat(argumentCaptor.getValue().getNoteData()).isEqualTo("My note"); assertThat(argumentCaptor.getValue().getNoteUserLogin()).isEqualTo("nicolas"); - assertThat(argumentCaptor.getValue().getNoteCreatedAt().getTime()).isEqualTo(now); - assertThat(argumentCaptor.getValue().getNoteUpdatedAt().getTime()).isEqualTo(now); + assertThat(argumentCaptor.getValue().getNoteCreatedAt()).isEqualTo(now); + assertThat(argumentCaptor.getValue().getNoteUpdatedAt()).isEqualTo(now); verify(session).commit(); verify(ruleRegistry).save(eq(rule), any(CharacteristicDto.class), any(CharacteristicDto.class), eq(ruleParams), eq(ruleTags)); @@ -174,9 +175,6 @@ public class RuleOperationsTest { List<RuleRuleTagDto> ruleTags = newArrayList(new RuleRuleTagDto().setId(30L).setTag("style").setType(RuleTagType.SYSTEM)); when(ruleDao.selectTags(eq(10), eq(session))).thenReturn(ruleTags); - long now = System.currentTimeMillis(); - doReturn(now).when(system).now(); - operations.updateRuleNote(rule, "My new note", MockUserSession.create().setLogin("guy").setName("Guy").setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN)); ArgumentCaptor<RuleDto> argumentCaptor = ArgumentCaptor.forClass(RuleDto.class); @@ -184,7 +182,7 @@ public class RuleOperationsTest { assertThat(argumentCaptor.getValue().getNoteData()).isEqualTo("My new note"); assertThat(argumentCaptor.getValue().getNoteUserLogin()).isEqualTo("nicolas"); assertThat(argumentCaptor.getValue().getNoteCreatedAt()).isEqualTo(createdAt); - assertThat(argumentCaptor.getValue().getNoteUpdatedAt().getTime()).isEqualTo(now); + assertThat(argumentCaptor.getValue().getNoteUpdatedAt()).isEqualTo(now); verify(session).commit(); verify(ruleRegistry).save(eq(rule), any(CharacteristicDto.class), any(CharacteristicDto.class), eq(ruleParams), eq(ruleTags)); @@ -291,14 +289,11 @@ public class RuleOperationsTest { ActiveRuleDto activeRule = new ActiveRuleDto().setId(activeRuleId).setProfileId(1).setRuleId(ruleId).setSeverity(Severity.MINOR); when(activeRuleDao.selectByRuleId(ruleId)).thenReturn(newArrayList(activeRule)); - long now = System.currentTimeMillis(); - doReturn(now).when(system).now(); - operations.deleteCustomRule(rule, authorizedUserSession); verify(ruleDao).update(ruleCaptor.capture(), eq(session)); assertThat(ruleCaptor.getValue().getStatus()).isEqualTo(Rule.STATUS_REMOVED); - assertThat(ruleCaptor.getValue().getUpdatedAt()).isEqualTo(new Date(now)); + assertThat(ruleCaptor.getValue().getUpdatedAt()).isEqualTo(now); verify(ruleRegistry).save(eq(ruleCaptor.getValue()), any(CharacteristicDto.class), any(CharacteristicDto.class), eq(newArrayList(param)), eq(ruleTags)); verify(activeRuleDao).deleteParameters(eq(activeRuleId), eq(session)); @@ -348,7 +343,6 @@ public class RuleOperationsTest { RuleRuleTagDto existingTag = new RuleRuleTagDto().setTag(tag).setType(RuleTagType.ADMIN); when(ruleDao.selectTags(ruleId, session)).thenReturn(ImmutableList.of(existingTag)); - operations.updateRuleTags(rule, ImmutableList.<String>of(), authorizedUserSession); verify(ruleDao, atLeast(1)).selectTags(ruleId, session); @@ -406,6 +400,7 @@ public class RuleOperationsTest { assertThat(result.getRemediationFunction()).isEqualTo("LINEAR_OFFSET"); assertThat(result.getRemediationCoefficient()).isEqualTo("2h"); assertThat(result.getRemediationOffset()).isEqualTo("20min"); + assertThat(result.getUpdatedAt()).isEqualTo(now); verify(session).commit(); verify(ruleRegistry).save(eq(result), eq(characteristic), eq(subCharacteristic), anyListOf(RuleParamDto.class), anyListOf(RuleRuleTagDto.class)); @@ -433,7 +428,6 @@ public class RuleOperationsTest { verify(ruleRegistry, never()).save(any(RuleDto.class), any(CharacteristicDto.class), any(CharacteristicDto.class), anyListOf(RuleParamDto.class), anyListOf(RuleRuleTagDto.class)); } - @Test public void disable_characteristic_and_remove_remediation_function_when_update_rule_with_no_sub_characteristic() throws Exception { RuleDto dto = new RuleDto().setId(1).setRepositoryKey("squid").setRuleKey("UselessImportCheck") @@ -455,6 +449,7 @@ public class RuleOperationsTest { assertThat(result.getRemediationFunction()).isNull(); assertThat(result.getRemediationCoefficient()).isNull(); assertThat(result.getRemediationOffset()).isNull(); + assertThat(result.getUpdatedAt()).isEqualTo(now); verify(session).commit(); verify(ruleRegistry).save(eq(result), isNull(CharacteristicDto.class), isNull(CharacteristicDto.class), anyListOf(RuleParamDto.class), anyListOf(RuleRuleTagDto.class)); |