package to.rtc.rtc2jira;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static to.rtc.rtc2jira.Settings.RTC_WORKITEM_ID_RANGE;
import java.util.Properties;
import org.junit.Before;
import org.junit.Test;
/**
* Test of {@link Settings}
*
* @author Manuel
*/
public class SettingsTest {
private Settings settings;
private Properties properties;
@Before
public void setUp() throws Exception {
properties = new Properties();
settings = Settings.getInstance();
settings.setProperties(properties);
}
@Test
public void testWorkItemRange_WithRange_ExpectReturnWholeRange() {
String range = "10..20";
properties.setProperty(RTC_WORKITEM_ID_RANGE, range);
Integer[] expectedRange = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
assertThat(settings.getRtcWorkItemRange(), contains(expectedRange));
}
@Test
public void testWorkItemRange_Two_CommaSeparated_ExpectTwo() {
String range = "1,3";
properties.setProperty(RTC_WORKITEM_ID_RANGE, range);
Integer[] expectedRange = {1, 3};
assertThat(settings.getRtcWorkItemRange(), contains(expectedRange));
}
@Test
public void testWorkItemRange_Range_And_CommaSeparated_Mixed() {
String range = "1,34..36";
properties.setProperty(RTC_WORKITEM_ID_RANGE, range);
Integer[] expectedRange = {1, 34, 35, 36};
assertThat(settings.getRtcWorkItemRange(), contains(expectedRange));
}
@Test
public void testWorkItemRange_Range_And_CommaSeparated_Mixed_WithSpaces() {
String range = "1 , 34..36 ";
properties.setProperty(RTC_WORKITEM_ID_RANGE, range);
Integer[] expectedRange = {1, 34, 35, 36};
assertThat(settings.getRtcWorkItemRange(), contains(expectedRange));
}
@Test
public void testExtractingSingleRange() {
Properties props = new Properties();
props.setProperty(Settings.RTC_WORKITEM_ID_RANGE, "12..14");
Settings.getInstance().setProperties(props);
Integer[] expectedRange = {12, 13, 14};
assertThat(settings.getRtcWorkItemRange(), contains(expectedRange));
}
@Test
public void testExtractingMultipleRanges() {
Properties props = new Properties();
props.setProperty(Settings.RTC_WORKITEM_ID_RANGE, "12..14,20..22");
Settings.getInstance().setProperties(props);
Integer[] expectedRange = {12, 13, 14, 20, 21, 22};
assertThat(settings.getRtcWorkItemRange(), contains(expectedRange));
}
@Test
public void testTrimming() throws Exception {
Properties props = new Properties();
props.setProperty("proxy.host", " my.proxy.host ");
Settings.getInstance().setProperties(props);
assertThat(settings.getProxyHost(), is("my.proxy.host"));
}
}