package org.bsc.maven.reporting.renderer;
import com.github.qwazer.mavenplugins.gitlog.CalculateRuleForSinceTagName;
import org.apache.maven.plugin.testing.SilentLog;
import org.junit.Test;
import java.util.List;
import static com.github.qwazer.mavenplugins.gitlog.CalculateRuleForSinceTagName.*;
import static java.util.Arrays.asList;
import static org.junit.Assert.assertEquals;
/**
* @author ar
* @since Date: 11.07.2015
*/
public class GitLogJiraIssuesRendererTest {
public static GitLogJiraIssuesRenderer createRendererWithParams(String currentVersion,
CalculateRuleForSinceTagName rule) {
return new GitLogJiraIssuesRenderer(
null,
null,
null,
null,
currentVersion,
rule,
null,
null,
new SilentLog());
}
private static String calculateSinceTagName(GitLogJiraIssuesRenderer renderer) {
List<String> list = asList("10.0.0", "10.1.9", "11.0.0", "11.0.1", "11.1.10", "12.0.0");
renderer.overrideGitLogSinceTagNameIfNeeded(list);
return renderer.getGitLogSinceTagName();
}
@Test
public void testCalculateTagName_initial_release_Major_rule() throws Exception {
GitLogJiraIssuesRenderer renderer = createRendererWithParams("12.0.0", CURRENT_MAJOR_VERSION);
String result = calculateSinceTagName(renderer);
assertEquals("11.1.10", result);
}
@Test
public void testCalculateTagName_not_initial_release_Major_rule() throws Exception {
GitLogJiraIssuesRenderer renderer = createRendererWithParams("12.0.1", CURRENT_MAJOR_VERSION);
String result = calculateSinceTagName(renderer);
assertEquals("11.1.10", result);
}
@Test
public void testCalculateTagName_not_initial_release2_Major_rule() throws Exception {
GitLogJiraIssuesRenderer renderer = createRendererWithParams("12.1.1", CURRENT_MAJOR_VERSION);
String result = calculateSinceTagName(renderer);
assertEquals("11.1.10", result);
}
@Test
public void testCalculateTagName_hotfix_release_Major_rule() throws Exception {
GitLogJiraIssuesRenderer renderer = createRendererWithParams("11.1.11", CURRENT_MAJOR_VERSION);
String result = calculateSinceTagName(renderer);
assertEquals("10.1.9", result);
}
@Test
public void testCalculateTagName_hotfix_release2_Major_rule() throws Exception {
GitLogJiraIssuesRenderer renderer = createRendererWithParams("11.0.2", CURRENT_MAJOR_VERSION);
String result = calculateSinceTagName(renderer);
assertEquals("10.1.9", result);
}
@Test
public void testCalculateTagName_initial_release_Minor_rule() throws Exception {
GitLogJiraIssuesRenderer renderer = createRendererWithParams("12.0.0", CURRENT_MINOR_VERSION);
String result = calculateSinceTagName(renderer);
assertEquals("11.1.10", result);
}
@Test
public void testCalculateTagName_not_initial_release_Minor_rule() throws Exception {
GitLogJiraIssuesRenderer renderer = createRendererWithParams("12.0.1", CURRENT_MINOR_VERSION);
String result = calculateSinceTagName(renderer);
assertEquals("11.1.10", result);
}
@Test
public void testCalculateTagName_hotfix_Minor_rule() throws Exception {
GitLogJiraIssuesRenderer renderer = createRendererWithParams("11.1.11", CURRENT_MINOR_VERSION);
String result = calculateSinceTagName(renderer);
assertEquals("11.0.1", result);
}
@Test
public void testCalculateTagName_initial_release_Latest_rule() throws Exception {
GitLogJiraIssuesRenderer renderer = createRendererWithParams("12.0.0", LATEST_RELEASE_VERSION);
String result = calculateSinceTagName(renderer);
assertEquals("11.1.10", result);
}
@Test
public void testCalculateTagName_not_initial_release_Latest_rule() throws Exception {
GitLogJiraIssuesRenderer renderer = createRendererWithParams("12.0.1", LATEST_RELEASE_VERSION);
String result = calculateSinceTagName(renderer);
assertEquals("12.0.0", result);
}
@Test
public void testCalculateTagName_hotfix_Latest_rule() throws Exception {
GitLogJiraIssuesRenderer renderer = createRendererWithParams("11.1.11", LATEST_RELEASE_VERSION);
String result = calculateSinceTagName(renderer);
assertEquals("11.1.10", result);
}
}