package fr.techad.sonar.gerrit.utils; import static org.fest.assertions.Assertions.assertThat; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.runners.MockitoJUnitRunner; import org.sonar.api.batch.rule.Severity; import fr.techad.sonar.gerrit.review.ReviewFileComment; import fr.techad.sonar.gerrit.review.ReviewInput; import fr.techad.sonar.gerrit.review.ReviewLineComment; @RunWith(MockitoJUnitRunner.class) public class ReviewUtilsTest { private ReviewInput reviewInput; private ReviewLineComment rlcInfo; private ReviewLineComment rlcCritical; private List<ReviewFileComment> reviewList; private ReviewUtils reviewUtilsUnderTest; @Before public void setUp() { reviewInput = new ReviewInput(); reviewInput.setMessage("Not the default message."); rlcInfo = new ReviewLineComment(); rlcInfo.setLine(12); rlcInfo.setMessage("INFORMATION tldr"); rlcInfo.setSeverity(Severity.INFO.ordinal()); rlcCritical = new ReviewLineComment(); rlcCritical.setLine(34); rlcCritical.setMessage("CRITI tldr"); rlcCritical.setSeverity(Severity.CRITICAL.ordinal()); reviewList = new ArrayList<ReviewFileComment>(2); reviewList.add(rlcInfo); reviewList.add(rlcCritical); reviewUtilsUnderTest = new ReviewUtils(); } @Test public void validateThresholdToValue() { // given // when // then assertThat(reviewUtilsUnderTest.thresholdToValue("INFO")).isEqualTo(Severity.INFO.ordinal()); assertThat(reviewUtilsUnderTest.thresholdToValue("MINOR")).isEqualTo(Severity.MINOR.ordinal()); assertThat(reviewUtilsUnderTest.thresholdToValue("MAJOR")).isEqualTo(Severity.MAJOR.ordinal()); assertThat(reviewUtilsUnderTest.thresholdToValue("CRITICAL")).isEqualTo(Severity.CRITICAL.ordinal()); assertThat(reviewUtilsUnderTest.thresholdToValue("BLOCKER")).isEqualTo(Severity.BLOCKER.ordinal()); assertThat(reviewUtilsUnderTest.thresholdToValue("NOOP")).isEqualTo(ReviewUtils.UNKNOWN_VALUE); } @Test public void validateValueToThreshold() { // given // when // then assertThat(reviewUtilsUnderTest.valueToThreshold(Severity.INFO.ordinal())).isEqualTo("INFO"); assertThat(reviewUtilsUnderTest.valueToThreshold(Severity.MINOR.ordinal())).isEqualTo("MINOR"); assertThat(reviewUtilsUnderTest.valueToThreshold(Severity.MAJOR.ordinal())).isEqualTo("MAJOR"); assertThat(reviewUtilsUnderTest.valueToThreshold(Severity.CRITICAL.ordinal())).isEqualTo("CRITICAL"); assertThat(reviewUtilsUnderTest.valueToThreshold(Severity.BLOCKER.ordinal())).isEqualTo("BLOCKER"); assertThat(reviewUtilsUnderTest.valueToThreshold(42)).isEqualTo(ReviewUtils.UNKNOWN); assertThat(reviewUtilsUnderTest.valueToThreshold(-1)).isEqualTo(ReviewUtils.UNKNOWN); } @Test public void detectInfoLevel() { // given reviewInput.emptyComments(); reviewList.clear(); reviewList.add(rlcInfo); // when reviewInput.addComments("TLDR", reviewList); // then assertThat(reviewInput.maxLevelSeverity()).isEqualTo(reviewUtilsUnderTest.thresholdToValue("INFO")); } @Test public void detectCriticalLevel() { // given // when reviewInput.addComments("TLDR", reviewList); // then assertThat(reviewInput.maxLevelSeverity()).isEqualTo(reviewUtilsUnderTest.thresholdToValue("CRITICAL")); } }