@Test
  public void testObserver() {
    Subject subjectToChange = new Subject();

    Observer textObserver = new TextObserver(subjectToChange);
    Observer numObserver = new NumObserver(subjectToChange);

    subjectToChange.setState("thisIsText");
    assertTrue("thisIsText".equals(textObserver.getLastState()));
    assertNull(numObserver.getLastState());

    subjectToChange.setState("123456");
    assertTrue("123456".equals(numObserver.getLastState()));
    assertTrue("thisIsText".equals(textObserver.getLastState()));

    subjectToChange.detach(textObserver);
    subjectToChange.setState("thisIsTextAgain");
    assertTrue("thisIsText".equals(textObserver.getLastState()));
    assertTrue("123456".equals(numObserver.getLastState()));
  }