Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.moozvine.strings;
- import com.moozvine.testing.Verify;
- import org.junit.Rule;
- import org.junit.Test;
- import org.junit.rules.ExpectedException;
- import java.util.Iterator;
- public class LineIteratorTest {
- @Rule public Verify verify = new Verify();
- @Rule public ExpectedException expectedException = ExpectedException.none();
- @Test
- public void stringIteratorWithMultipleLinesShouldReturnAllLines() {
- final Iterator<String> lines = LineIterator.of("one\ntwo\nthree");
- verify.isTrue(lines.hasNext());
- verify.areEqual("one", lines.next());
- verify.isTrue(lines.hasNext());
- verify.areEqual("two", lines.next());
- verify.isTrue(lines.hasNext());
- verify.areEqual("three", lines.next());
- verify.isFalse(lines.hasNext());
- }
- @Test
- public void stringIteratorWithSingleLinesShouldReturnOneLine() {
- final Iterator<String> lines = LineIterator.of("one\ttwo\tthree");
- verify.isTrue(lines.hasNext());
- verify.areEqual("one\ttwo\tthree", lines.next());
- verify.isFalse(lines.hasNext());
- }
- @Test
- public void emptyStringIteratorShouldReturnOneEmptyLine() {
- final Iterator<String> lines = LineIterator.of("");
- verify.isTrue(lines.hasNext());
- verify.areEqual("", lines.next());
- verify.isFalse(lines.hasNext());
- }
- @Test
- public void stringIteratorShouldNotSupportRemoval() {
- final Iterator<String> lines = LineIterator.of("one\ntwo\nthree");
- verify.isTrue(lines.hasNext());
- verify.areEqual("one", lines.next());
- expectedException.expect(UnsupportedOperationException.class);
- lines.remove();
- }
- @Test
- public void stringBuilderIteratorWithMultipleLinesShouldReturnAllLines() {
- final Iterator<String> lines = LineIterator.of(new StringBuilder("one\ntwo\nthree"));
- verify.isTrue(lines.hasNext());
- verify.areEqual("one", lines.next());
- verify.isTrue(lines.hasNext());
- verify.areEqual("two", lines.next());
- verify.isTrue(lines.hasNext());
- verify.areEqual("three", lines.next());
- verify.isFalse(lines.hasNext());
- }
- @Test
- public void stringBuilderIteratorWithSingleLinesShouldReturnOneLine() {
- final Iterator<String> lines = LineIterator.of(new StringBuilder("one\ttwo\tthree"));
- verify.isTrue(lines.hasNext());
- verify.areEqual("one\ttwo\tthree", lines.next());
- verify.isFalse(lines.hasNext());
- }
- @Test
- public void emptyStringBuilderIteratorShouldReturnOneEmptyLine() {
- final Iterator<String> lines = LineIterator.of(new StringBuilder());
- verify.isTrue(lines.hasNext());
- verify.areEqual("", lines.next());
- verify.isFalse(lines.hasNext());
- }
- @Test
- public void stringBuilderIteratorWithMultipleLinesShouldSupportFirstLineRemoval() {
- final StringBuilder stringBuilder = new StringBuilder("one\nand two\nand three");
- final Iterator<String> lines = LineIterator.of(stringBuilder);
- verify.isTrue(lines.hasNext());
- verify.areEqual("one", lines.next());
- lines.remove();
- verify.isTrue(lines.hasNext());
- verify.areEqual("and two", lines.next());
- verify.isTrue(lines.hasNext());
- verify.areEqual("and three", lines.next());
- verify.isFalse(lines.hasNext());
- verify.areEqual("and two\nand three", stringBuilder.toString());
- }
- @Test
- public void stringBuilderIteratorWithMultipleLinesShouldSupportMiddleLineRemoval() {
- final StringBuilder stringBuilder = new StringBuilder("one\nand two\nand three");
- final Iterator<String> lines = LineIterator.of(stringBuilder);
- verify.isTrue(lines.hasNext());
- verify.areEqual("one", lines.next());
- verify.isTrue(lines.hasNext());
- verify.areEqual("and two", lines.next());
- lines.remove();
- verify.isTrue(lines.hasNext());
- verify.areEqual("and three", lines.next());
- verify.isFalse(lines.hasNext());
- verify.areEqual("one\nand three", stringBuilder.toString());
- }
- @Test
- public void stringBuilderIteratorWithMultipleLinesShouldSupportLastLineRemoval() {
- final StringBuilder stringBuilder = new StringBuilder("one\nand two\nand three");
- final Iterator<String> lines = LineIterator.of(stringBuilder);
- verify.isTrue(lines.hasNext());
- verify.areEqual("one", lines.next());
- verify.isTrue(lines.hasNext());
- verify.areEqual("and two", lines.next());
- verify.isTrue(lines.hasNext());
- verify.areEqual("and three", lines.next());
- lines.remove();
- verify.isFalse(lines.hasNext());
- verify.areEqual("one\nand two\n", stringBuilder.toString());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement