package uk.ac.ox.zoo.seeg.abraid.mp.common.util;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests the ParseUtils class.
*
* Copyright (c) 2014 University of Oxford
*/
public class ParseUtilsTest {
@Test
public void parseValidInteger() {
int parsedInteger = ParseUtils.parseInteger("1234");
assertThat(parsedInteger).isEqualTo(1234);
}
@Test
public void parseWhitespaceIntoInteger() {
Integer parsedInteger = ParseUtils.parseInteger(" \t");
assertThat(parsedInteger).isNull();
}
@Test
public void parseInvalidInteger() {
Integer parsedInteger = ParseUtils.parseInteger("undefined");
assertThat(parsedInteger).isNull();
}
@Test
public void parseNullInteger() {
Integer parsedInteger = ParseUtils.parseInteger(null);
assertThat(parsedInteger).isNull();
}
@Test
public void parseValidDouble() {
double parsedDouble = ParseUtils.parseDouble("1234.56789");
assertThat(parsedDouble).isEqualTo(1234.56789);
}
@Test
public void parseWhitespaceIntoDouble() {
Double parsedDouble = ParseUtils.parseDouble(" \t");
assertThat(parsedDouble).isNull();
}
@Test
public void parseInvalidDouble() {
Double parsedDouble = ParseUtils.parseDouble("undefined");
assertThat(parsedDouble).isNull();
}
@Test
public void parseNullDouble() {
Double parsedDouble = ParseUtils.parseDouble(null);
assertThat(parsedDouble).isNull();
}
@Test
public void parseValidLong() {
long parsedLong = ParseUtils.parseLong("100000000000");
assertThat(parsedLong).isEqualTo(100000000000L);
}
@Test
public void parseWhitespaceIntoLong() {
Long parsedLong = ParseUtils.parseLong(" \t");
assertThat(parsedLong).isNull();
}
@Test
public void parseInvalidLong() {
Long parsedLong = ParseUtils.parseLong("undefined");
assertThat(parsedLong).isNull();
}
@Test
public void parseNullLong() {
Long parsedLong = ParseUtils.parseLong(null);
assertThat(parsedLong).isNull();
}
@Test
public void convertStringWithWhitespace() {
String convertedString = ParseUtils.convertString(" test string ");
assertThat(convertedString).isEqualTo("test string");
}
@Test
public void convertEmptyString() {
String convertedString = ParseUtils.convertString("");
assertThat(convertedString).isNull();
}
@Test
public void convertNullString() {
String convertedString = ParseUtils.convertString(null);
assertThat(convertedString).isNull();
}
@Test
public void parseNullListOfIntegers() {
List<Integer> parsedIntegers = ParseUtils.parseIntegers(null);
assertThat(parsedIntegers).isNull();
}
@Test
public void parseValidAndInvalidIntegers() {
List<Integer> parsedIntegers = ParseUtils.parseIntegers(Arrays.asList("1", null, "2", "text", "3"));
assertThat(parsedIntegers).containsExactly(1, null, 2, null, 3);
}
@Test
public void convertNullListOfStrings() {
List<String> convertedStrings = ParseUtils.convertStrings(null);
assertThat(convertedStrings).isNull();
}
@Test
public void convertStrings() {
List<String> convertedStrings = ParseUtils.convertStrings(Arrays.asList(" first string ", null, "", "second"));
assertThat(convertedStrings).containsExactly("first string", null, null, "second");
}
@Test
public void splitCommaDelimitedStringWhenNull() {
assertThat(ParseUtils.splitCommaDelimitedString(null)).isEmpty();
}
@Test
public void splitCommaDelimitedStringWhenNonNull() {
String text = " One , two,,\nthree, , four,";
List<String> split = ParseUtils.splitCommaDelimitedString(text);
assertThat(split).containsExactly("One", "two", "three", "four");
}
}