@Test
 public void testEquals() throws Exception {
   // Объекты разные и начинка разная
   assertFalse(user1.equals(user2));
   // Объекты разные, а начинка одинаковая. Хотя hashCode и равен у обоих объектов, но
   // на equals() это не влияет, т.к. он не переопределен.
   assertFalse(user1.equals(user3));
   assertFalse(user1 == user3);
   assertTrue(user1.hashCode() == user3.hashCode());
   // Один объект
   assertTrue(user1.equals(user1));
 }