### Question:
ServiceV3AuthsPostResponse { @Override public int hashCode() { return Objects.hash(authRequest, pushPackage, deviceIds); } @JsonCreator  ServiceV3AuthsPostResponse(
            @JsonProperty(value = "auth_request") UUID authRequest,
            @JsonProperty(value = "push_package") String pushPackage,
            @JsonProperty(value = "device_ids") List<String> deviceIds
    ); UUID getAuthRequest(); String getPushPackage(); List<String> getDeviceIds(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void hashCodeEqualWhenAllEqual() { ServiceV3AuthsPostResponse left = new ServiceV3AuthsPostResponse(auth_request, "Push Package", new ArrayList<String>(){{add("Device ID");}}); ServiceV3AuthsPostResponse right = new ServiceV3AuthsPostResponse(auth_request, "Push Package", new ArrayList<String>(){{add("Device ID");}}); assertEquals(left.hashCode(), right.hashCode()); }
@Test public void hashCodeEqualWhenAllEmpty() { ServiceV3AuthsPostResponse left = new ServiceV3AuthsPostResponse(null, null, null); ServiceV3AuthsPostResponse right = new ServiceV3AuthsPostResponse(null, null, null); assertEquals(left.hashCode(), right.hashCode()); }
@Test public void hashCodeNotEqualWhenAuthRequestDifferent() { ServiceV3AuthsPostResponse left = new ServiceV3AuthsPostResponse(UUID.randomUUID(), "Push Package", new ArrayList<String>(){{add("Device ID");}}); ServiceV3AuthsPostResponse right = new ServiceV3AuthsPostResponse(UUID.randomUUID(), "Push Package", new ArrayList<String>(){{add("Device ID");}}); assertNotEquals(left.hashCode(), right.hashCode()); }
@Test public void hashCodeNotEqualWhenPushPackageDifferent() { ServiceV3AuthsPostResponse left = new ServiceV3AuthsPostResponse(auth_request, "Left Push Package", new ArrayList<String>(){{add("Device ID");}}); ServiceV3AuthsPostResponse right = new ServiceV3AuthsPostResponse(auth_request, "Right Push Package", new ArrayList<String>(){{add("Device ID");}}); assertNotEquals(left.hashCode(), right.hashCode()); }
@Test public void hashCodeNotEqualWhenDeviceIdsDifferent() { ServiceV3AuthsPostResponse left = new ServiceV3AuthsPostResponse(auth_request, "Push Package", new ArrayList<String>(){{add("Left ID");}}); ServiceV3AuthsPostResponse right = new ServiceV3AuthsPostResponse(auth_request, "Push Package", new ArrayList<String>(){{add("Right ID");}}); assertNotEquals(left.hashCode(), right.hashCode()); }