package org.jbehave.eclipse.util;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.jbehave.eclipse.util.Strings.removeTrailingNewlines;
import java.io.IOException;
import org.apache.commons.io.IOUtils;
import org.jbehave.eclipse.util.Strings;
import org.junit.Test;
public class StringsTest {
@Test
public void canRemoveTrailingNewlines() {
assertThat(removeTrailingNewlines("a"), equalTo("a"));
assertThat(removeTrailingNewlines("a\r\n"), equalTo("a"));
assertThat(removeTrailingNewlines("a\n"), equalTo("a"));
assertThat(removeTrailingNewlines("a\n\n"), equalTo("a"));
assertThat(removeTrailingNewlines("a\r"), equalTo("a"));
assertThat(removeTrailingNewlines("a\r\r"), equalTo("a"));
assertThat(removeTrailingNewlines("a\nb\n"), equalTo("a\nb"));
}
@Test
public void canRemoveLeadingSpaces() {
assertThat(Strings.removeLeadingSpaces(" a "), equalTo("a "));
assertThat(Strings.removeLeadingSpaces(" abc"), equalTo("abc"));
assertThat(Strings.removeLeadingSpaces(" a c"), equalTo("a c"));
assertThat(Strings.removeLeadingSpaces(" "), equalTo(""));
assertThat(Strings.removeLeadingSpaces(""), equalTo(""));
assertThat(Strings.removeLeadingSpaces(null), equalTo(null));
assertThat(Strings.removeLeadingSpaces(" \n"), equalTo("\n"));
}
@Test
public void canSubstringUntilOffset() throws IOException {
String text = IOUtils.toString(getClass().getResourceAsStream("/data/tfdm_update-1.story"));
String line = Strings.substringUntilOffset(text, 25);
assertThat(line, equalTo("Given an inactive direct "));
}
}