import static org.junit.Assert.assertEquals; import org.junit.Test; /** * A QuitterTest tests the Quitter class. In particular, it tests the Quitter's * transform method. * * @author David Mutchler. Created October 8, 2009. */ public class QuitterTest { /** * Test method for {@link Quitter#transform(java.lang.String)}. */ @Test public void testQuitAfter5() { Quitter quitAfter5 = new Quitter(5); assertEquals("First string - I am on it!", quitAfter5 .transform("First string")); assertEquals(" - I am on it!", quitAfter5.transform("")); assertEquals("Third string - I am on it!", quitAfter5 .transform("Third string")); assertEquals("Fourth string, testing a longer one. - I am on it!", quitAfter5.transform("Fourth string, testing a longer one.")); assertEquals("Fifth string - I am on it!", quitAfter5 .transform("Fifth string")); // Should quit appending from here on. assertEquals("Sixth string", quitAfter5.transform("Sixth string")); assertEquals("Seventh string-!", quitAfter5 .transform("Seventh string-!")); assertEquals("Eighthhhh", quitAfter5.transform("Eighthhhh")); assertEquals("Ninth string", quitAfter5.transform("Ninth string")); assertEquals("TENTH", quitAfter5.transform("TENTH")); assertEquals("11", quitAfter5.transform("11")); } /** * Test method for {@link Quitter#transform(java.lang.String)}. */ @Test public void testDefaultQuitter() { Quitter quitAfter1 = new Quitter(); Quitter quitAfter1Too = new Quitter(); // quitAfter1Too starts out appending. assertEquals("First string - I am on it!", quitAfter1 .transform("First string")); // quitAfter1 quits appending from here on. assertEquals("", quitAfter1.transform("")); assertEquals("Third string", quitAfter1.transform("Third string")); // quitAfter1Too starts out appending. assertEquals(" - I am on it!", quitAfter1Too.transform("")); // quitAfter1Too quits appending from here on. assertEquals("", quitAfter1Too.transform("")); assertEquals("Third string", quitAfter1Too.transform("Third string")); } /** * Test method for {@link Quitter#transform(java.lang.String)}. */ @Test public void testQuitterInteractions() { Quitter quitAfter5 = new Quitter(5); Quitter quitAfter1 = new Quitter(); Quitter quitAfter1Too = new Quitter(); // QuitAfter1 appends on its first transform. assertEquals("First string - I am on it!", quitAfter1 .transform("First string")); // QuitAfter1Too appends on its first transform. assertEquals(" - I am on it!", quitAfter1Too.transform("")); // QuitAfter1 stops appending after its first transform. assertEquals("ABC", quitAfter1.transform("ABC")); assertEquals("DEF", quitAfter1.transform("DEF")); // QuitAfter5 appends on its first transform. assertEquals("First string - I am on it!", quitAfter5 .transform("First string")); // QuitAfter1Too stops appending after its first transform. assertEquals("", quitAfter1Too.transform("")); // QuitAfter1 is finished appending. assertEquals("OK OK OK ", quitAfter1.transform("OK OK OK ")); // QuitAfter1Too is finished appending. assertEquals("", quitAfter1Too.transform("")); assertEquals("", quitAfter1Too.transform("")); assertEquals("Third string", quitAfter1Too.transform("Third string")); assertEquals("Third string", quitAfter1Too.transform("Third string")); // QuitAfter1 is still finished appending. assertEquals("", quitAfter1.transform("")); // QuitAfter5 is still appending. assertEquals(" - I am on it!", quitAfter5.transform("")); assertEquals("Third string - I am on it!", quitAfter5 .transform("Third string")); assertEquals("Fourth string, testing a longer one. - I am on it!", quitAfter5.transform("Fourth string, testing a longer one.")); // QuitAfter1 is still finished appending. assertEquals("Third string", quitAfter1.transform("Third string")); // QuitAfter5 is still appending. assertEquals("Fifth string - I am on it!", quitAfter5 .transform("Fifth string")); // QuitAfter5 has finally finished appending. assertEquals("Sixth string", quitAfter5.transform("Sixth string")); assertEquals("Seventh string-!", quitAfter5 .transform("Seventh string-!")); assertEquals("Eighthhhh", quitAfter5.transform("Eighthhhh")); assertEquals("Ninth string", quitAfter5.transform("Ninth string")); assertEquals("TENTH", quitAfter5.transform("TENTH")); assertEquals("11", quitAfter5.transform("11")); // QuitAfter1 is still finished appending. assertEquals("The end!", quitAfter1.transform("The end!")); } }