<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.*;

import java.io.Reader;
import java.io.StringReader;

public class WordScannerTest {

  // One way to write exception test cases:
  @Test
  public void testNull() {
    try {
      new WordScanner(null);
    } catch (NullPointerException e) {
      return;
    }
    fail();
  }
  
  // Another way to write exception test cases:
  @Test
  public void testNull2() {
	  assertThrows(NullPointerException.class, () -&gt; {
	      new WordScanner(null);
	  });
  }
  
  
  @Test
  public void testHasNext() {
      Reader r = new StringReader("one");
      WordScanner ws = new WordScanner(r);
      assertTrue(ws.hasNext());
  
  }
  
  @Test
  public void testHasNextBlank() {
      Reader r = new StringReader("  ");
      WordScanner ws = new WordScanner(r);
      assertFalse(ws.hasNext());
  
  }
  
  @Test
  public void testNextSucceeds() {
      Reader r = new StringReader("one");
      WordScanner ws = new WordScanner(r);
      assertEquals("one",ws.next());
  }
  
  @Test
  public void testHasNextTrailing() {
      Reader r = new StringReader("one  ");
      WordScanner ws = new WordScanner(r);
      assertTrue(ws.hasNext());
      assertEquals("one",ws.next());
      assertFalse(ws.hasNext());
  
  }
  
  @Test
  public void testNextNext() {
      Reader r = new StringReader("one two");
      WordScanner ws = new WordScanner(r);
      assertTrue(ws.hasNext());
      assertEquals("one", ws.next());
      assertTrue(ws.hasNext());
      assertEquals("two", ws.next());
      assertFalse(ws.hasNext());
  }
  
  @Test
  public void testHasNextPunc() {

      Reader r = new StringReader(".*#^$#$");
      WordScanner ws = new WordScanner(r);
      assertFalse(ws.hasNext());
  
  }
  
  @Test
  public void testHasNextApostrophe() {

      Reader r = new StringReader("don't");
      WordScanner ws = new WordScanner(r);
      assertTrue(ws.hasNext());
      assertEquals("don", ws.next());
      assertTrue(ws.hasNext());
      assertEquals("t",ws.next());
      assertFalse(ws.hasNext());
  
  }
  
 
}
</pre></body></html>