GatewayResponse { @Override public boolean equals(final Object other) { if (this == other) { return true; } if (other == null) { return false; } if (!getClass().equals(other.getClass())) { return false; } GatewayResponse castOther = (GatewayResponse) other; return Objects.equals(body, castOther.body) && Objects.equals(headers, castOther.headers) && Objects.equals(statusCode, castOther.statusCode) && Objects.equals(base64Encoded, castOther.base64Encoded); } GatewayResponse(@Nullable String body, @Nonnull Map<String, String> headers,
			@Nonnull StatusType statusType, boolean base64Encoded); String getBody(); Map<String, String> getHeaders(); int getStatusCode(); boolean isIsBase64Encoded(); @Override boolean equals(final Object other); @Override int hashCode(); @Override String toString();  }
@Test public void testEquals() { Map<String, String> nullHeader = new HashMap<>(); nullHeader.put("headerName", null); new CopyConstructorEqualsTester(getConstructor()) .addArguments(0, null, "body", "") .addArguments(1, ImmutableMap.of(), ImmutableMap.of("headerName", "headerValue"), nullHeader) .addArguments(2, Status.OK, Status.BAD_GATEWAY) .addArguments(3, true, false) .testEquals(); }