@Test
  public void singletonTest() {
    // create singleton instances
    final Singleton singleton1 = Singleton.getInstance();
    final Singleton singleton2 = Singleton.getInstance();
    final Singleton singleton3 = Singleton.getInstance();

    // assert that the random number is the same thereby
    // ensuring we are dealing with a single object instance
    final int rand = singleton1.getRand();
    assertEquals(rand, singleton2.getRand());
    assertEquals(rand, singleton3.getRand());

    // set a string message on a singleton
    final String message = "Singleton2 message";
    singleton2.setMessage(message);

    // read the string message from the singletons
    assertEquals(message, singleton1.getMessage());
    assertEquals(message, singleton3.getMessage());
  }