From f708dfbad7bacac33b18bb5c7c1221565b803fa5 Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Wed, 14 Dec 2016 18:08:17 +0100 Subject: SONAR-7292 IssueChangeDao#selectCommentByKey now returns a dto --- .../org/sonar/db/issue/IssueChangeDaoTest.java | 28 +++++++++++++++++---- .../java/org/sonar/db/issue/IssueDbTester.java | 29 +++++++++++++++++++++- 2 files changed, 51 insertions(+), 6 deletions(-) (limited to 'sonar-db/src/test') diff --git a/sonar-db/src/test/java/org/sonar/db/issue/IssueChangeDaoTest.java b/sonar-db/src/test/java/org/sonar/db/issue/IssueChangeDaoTest.java index 09544234f7e..a1c2397efc6 100644 --- a/sonar-db/src/test/java/org/sonar/db/issue/IssueChangeDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/issue/IssueChangeDaoTest.java @@ -22,6 +22,7 @@ package org.sonar.db.issue; import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Optional; import org.junit.Rule; import org.junit.Test; import org.sonar.api.utils.DateUtils; @@ -35,7 +36,6 @@ import static com.google.common.collect.Lists.newArrayList; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; - public class IssueChangeDaoTest { @Rule @@ -75,16 +75,16 @@ public class IssueChangeDaoTest { } @Test - public void select_comment_by_key() { + public void select_default_comment_by_key() { db.prepareDbUnit(getClass(), "shared.xml"); - DefaultIssueComment comment = underTest.selectCommentByKey("FGHIJ"); + DefaultIssueComment comment = underTest.selectDefaultCommentByKey("FGHIJ"); assertThat(comment).isNotNull(); assertThat(comment.key()).isEqualTo("FGHIJ"); assertThat(comment.key()).isEqualTo("FGHIJ"); assertThat(comment.userLogin()).isEqualTo("arthur"); - assertThat(underTest.selectCommentByKey("UNKNOWN")).isNull(); + assertThat(underTest.selectDefaultCommentByKey("UNKNOWN")).isNull(); } @Test @@ -116,6 +116,23 @@ public class IssueChangeDaoTest { assertThat(comments).isEmpty(); } + @Test + public void select_comment_by_key() { + IssueDto issueDto = db.issues().insertIssue(); + IssueChangeDto comment = db.issues().insertComment(issueDto, "john", "some comment"); + + Optional issueChangeDto = underTest.selectCommentByKey(db.getSession(), comment.getKey()); + + assertThat(issueChangeDto).isPresent(); + assertThat(issueChangeDto.get().getKey()).isEqualTo(comment.getKey()); + assertThat(issueChangeDto.get().getChangeType()).isEqualTo(IssueChangeDto.TYPE_COMMENT); + assertThat(issueChangeDto.get().getUserLogin()).isEqualTo("john"); + assertThat(issueChangeDto.get().getChangeData()).isEqualTo("some comment"); + assertThat(issueChangeDto.get().getIssueChangeCreationDate()).isNotNull(); + assertThat(issueChangeDto.get().getCreatedAt()).isNotNull(); + assertThat(issueChangeDto.get().getUpdatedAt()).isNotNull(); + } + @Test public void delete() { db.prepareDbUnit(getClass(), "delete.xml"); @@ -147,7 +164,7 @@ public class IssueChangeDaoTest { underTest.insert(db.getSession(), changeDto); db.getSession().commit(); - db.assertDbUnit(getClass(), "insert-result.xml", new String[]{"id"}, "issue_changes"); + db.assertDbUnit(getClass(), "insert-result.xml", new String[] {"id"}, "issue_changes"); } @Test @@ -179,4 +196,5 @@ public class IssueChangeDaoTest { assertThat(underTest.update(change)).isFalse(); } + } diff --git a/sonar-db/src/test/java/org/sonar/db/issue/IssueDbTester.java b/sonar-db/src/test/java/org/sonar/db/issue/IssueDbTester.java index 62d034a013f..e9ef4e5e6e3 100644 --- a/sonar-db/src/test/java/org/sonar/db/issue/IssueDbTester.java +++ b/sonar-db/src/test/java/org/sonar/db/issue/IssueDbTester.java @@ -21,8 +21,16 @@ package org.sonar.db.issue; import java.util.Arrays; +import javax.annotation.Nullable; +import org.sonar.core.issue.DefaultIssueComment; import org.sonar.core.issue.FieldDiffs; import org.sonar.db.DbTester; +import org.sonar.db.component.ComponentDto; +import org.sonar.db.rule.RuleDto; + +import static org.sonar.db.component.ComponentTesting.newFileDto; +import static org.sonar.db.issue.IssueTesting.newDto; +import static org.sonar.db.rule.RuleTesting.newRuleDto; public class IssueDbTester { @@ -38,8 +46,27 @@ public class IssueDbTester { return issueDto; } - public void insertIssueChanges(IssueDto issueDto, FieldDiffs... diffs) { + public IssueDto insertIssue() { + RuleDto rule = db.rules().insertRule(newRuleDto()); + ComponentDto project = db.components().insertProject(); + ComponentDto file = db.components().insertComponent(newFileDto(project)); + return insertIssue(newDto(rule, file, project)); + } + + public IssueChangeDto insertChange(IssueChangeDto issueChangeDto) { + db.getDbClient().issueChangeDao().insert(db.getSession(), issueChangeDto); + db.commit(); + return issueChangeDto; + } + + public IssueChangeDto insertComment(IssueDto issueDto, @Nullable String login, String text) { + IssueChangeDto issueChangeDto = IssueChangeDto.of(DefaultIssueComment.create(issueDto.getKey(), login, text)); + return insertChange(issueChangeDto); + } + + public void insertFieldDiffs(IssueDto issueDto, FieldDiffs... diffs) { Arrays.stream(diffs).forEach(diff -> db.getDbClient().issueChangeDao().insert(db.getSession(), IssueChangeDto.of(issueDto.getKey(), diff))); db.commit(); } + } -- cgit v1.2.3