### Question:
ObjectId implements Comparable<ObjectId>, Serializable { public @Override boolean equals(Object o) { if (o instanceof ObjectId) { ObjectId i = (ObjectId) o; return this == o || (h1 == i.h1 && h2 == i.h2 && h3 == i.h3); } return false; } ObjectId(byte[] raw); private  ObjectId(int h1, long h2, long h3); static ObjectId create(byte[] raw); static ObjectId create(int h1, long h2, long h3); boolean isNull(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); static ObjectId valueOf(final @NonNull String hash); static byte[] toRaw(final @NonNull String hash); int compareTo(final ObjectId o); byte[] getRawValue(); void getRawValue(byte[] target); void getRawValue(byte[] target, final int length); int byteN(final int index); static ObjectId readFrom(DataInput in); void writeTo(DataOutput out); static final Ordering<ObjectId> NATURAL_ORDER; static final ObjectId NULL; static final HashFunction HASH_FUNCTION; static final int NUM_BYTES; }### Answer:
@Test public void testEquals() { ObjectId nullId = ObjectId.valueOf("0000000000000000000000000000000000000000"); ObjectId id1 = ObjectId.valueOf("abc123000000000000001234567890abcdef0000"); ObjectId id2 = ObjectId.valueOf("abc123000000000000001234567890abcdef0000"); assertNotSame(id1, id2); assertEquals(ObjectId.NULL, nullId); assertEquals(id1, id2); assertFalse(id1.equals(ObjectId.valueOf("abc123000000000000001234567890abcdef0001"))); assertFalse(id1.equals("blah")); }