package openmods.calc; import openmods.calc.command.IWhitespaceSplitter; import openmods.calc.command.WhitespaceSplitters; import org.junit.Assert; import org.junit.Test; public class WhitespaceSplitterTest { @Test public void onEmptyString_expectImmediateFinish() { onEmptyString_expectImmediateFinish(WhitespaceSplitters.fromSplitArray()); onEmptyString_expectImmediateFinish(WhitespaceSplitters.fromString("")); } private static void onEmptyString_expectImmediateFinish(IWhitespaceSplitter splitter) { Assert.assertTrue(splitter.isFinished()); } @Test public void onOneElement_expectSinglePart() { onOneElement_expectSinglePart(WhitespaceSplitters.fromSplitArray("aaa")); onOneElement_expectSinglePart(WhitespaceSplitters.fromString("aaa")); } private static void onOneElement_expectSinglePart(IWhitespaceSplitter splitter) { Assert.assertFalse(splitter.isFinished()); Assert.assertEquals("aaa", splitter.getNextPart()); Assert.assertTrue(splitter.isFinished()); } @Test public void onOneElement_expectTailEqualPart() { onOneElement_expectTailEqualPart(WhitespaceSplitters.fromSplitArray("aaa")); onOneElement_expectTailEqualPart(WhitespaceSplitters.fromString("aaa")); } private static void onOneElement_expectTailEqualPart(IWhitespaceSplitter splitter) { Assert.assertFalse(splitter.isFinished()); Assert.assertEquals("aaa", splitter.getTail()); Assert.assertTrue(splitter.isFinished()); } @Test public void onTwoElements_expectTwoParts() { onTwoElements_expectTwoParts(WhitespaceSplitters.fromSplitArray("aaa", "bbb")); onTwoElements_expectTwoParts(WhitespaceSplitters.fromString("aaa bbb")); } private static void onTwoElements_expectTwoParts(IWhitespaceSplitter splitter) { Assert.assertFalse(splitter.isFinished()); Assert.assertEquals("aaa", splitter.getNextPart()); Assert.assertFalse(splitter.isFinished()); Assert.assertEquals("bbb", splitter.getNextPart()); Assert.assertTrue(splitter.isFinished()); } @Test public void onTwoElements_expectTailAfterFirstPart() { onTwoElements_expectTailAfterFirstPart(WhitespaceSplitters.fromSplitArray("aaa", "bbb")); onTwoElements_expectTailAfterFirstPart(WhitespaceSplitters.fromString("aaa bbb")); } private static void onTwoElements_expectTailAfterFirstPart(IWhitespaceSplitter splitter) { Assert.assertFalse(splitter.isFinished()); Assert.assertEquals("aaa", splitter.getNextPart()); Assert.assertFalse(splitter.isFinished()); Assert.assertEquals("bbb", splitter.getTail()); Assert.assertTrue(splitter.isFinished()); } @Test public void onLastElementEmpty_expectEmptyTail() { IWhitespaceSplitter splitter = WhitespaceSplitters.fromString("aaa "); Assert.assertFalse(splitter.isFinished()); Assert.assertEquals("aaa", splitter.getNextPart()); Assert.assertTrue(splitter.isFinished()); } }