@Test (timeout = 30000)
public void testEquals() throws Exception {

  UserGroupInformation uugi = 
    UserGroupInformation.createUserForTesting(USER_NAME, GROUP_NAMES);
  assertEquals(uugi, uugi);
  // The subjects should be different, so this should fail
  UserGroupInformation ugi2 = 
    UserGroupInformation.createUserForTesting(USER_NAME, GROUP_NAMES);
  assertFalse(uugi.equals(ugi2));
  assertFalse(uugi.hashCode() == ugi2.hashCode());
  // two ugi that have the same subject need to be equal
  UserGroupInformation ugi3 = new UserGroupInformation(uugi.getSubject());
  assertEquals(uugi, ugi3);
  assertEquals(uugi.hashCode(), ugi3.hashCode());
}