package nodebox.function;
import org.junit.Test;
import static junit.framework.TestCase.*;
import static nodebox.function.StringFunctions.makeStrings;
import static nodebox.util.Assertions.assertResultsEqual;
public class StringFunctionsTest {
@Test
public void testMakeStrings() {
assertResultsEqual(makeStrings("a;b", ";"), "a", "b");
assertResultsEqual(makeStrings("a;b", ""), "a", ";", "b");
assertResultsEqual(makeStrings("hello", ""), "h", "e", "l", "l", "o");
assertResultsEqual(makeStrings("a b c", " "), "a", "b", "c");
assertResultsEqual(makeStrings("a; b; c", ";"), "a", " b", " c");
assertResultsEqual(makeStrings(null, ";"));
assertResultsEqual(makeStrings(null, null));
}
@Test
public void testLength() {
assertEquals(0, StringFunctions.length(null));
assertEquals(0, StringFunctions.length(""));
assertEquals(5, StringFunctions.length("bingo"));
}
@Test
public void testWordCount() {
assertEquals(0, StringFunctions.wordCount(null));
assertEquals(0, StringFunctions.wordCount(""));
assertEquals(1, StringFunctions.wordCount("a"));
assertEquals(1, StringFunctions.wordCount("a_b"));
assertEquals(2, StringFunctions.wordCount("a b"));
assertEquals(2, StringFunctions.wordCount("a-b"));
assertEquals(2, StringFunctions.wordCount("a,b"));
assertEquals(2, StringFunctions.wordCount("a.b"));
}
@Test
public void testConcatenate() {
assertEquals("a", StringFunctions.concatenate("a", null, null, null));
assertEquals("ab", StringFunctions.concatenate("a", "b", null, null));
assertEquals("ad", StringFunctions.concatenate("a", null, null, "d"));
assertEquals("cd", StringFunctions.concatenate(null, null, "c", "d"));
assertEquals("", StringFunctions.concatenate(null, null, null, null));
}
@Test
public void testFormatNumber() {
assertEquals("16.13", StringFunctions.formatNumber(16.127, "%.2f"));
assertEquals("12", StringFunctions.formatNumber(12, "%.0f"));
assertEquals("012", StringFunctions.formatNumber(12, "%03.0f"));
assertEquals("012", StringFunctions.formatNumber(12.25, "%03.0f"));
assertEquals("012", StringFunctions.formatNumber(11.55, "%03.0f"));
assertEquals("012.00", StringFunctions.formatNumber(12.0, "%06.2f"));
}
}