IntentData { @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; IntentData that = (IntentData) o; return Objects.equals(confirmationRequired, that.confirmationRequired) && Objects.equals(confirmations, that.confirmations) && Objects.equals(prompts, that.prompts) && Objects.equals(slots, that.slots) && Objects.equals(samples, that.samples); } IntentData(Boolean confirmationRequired,
                      Set<PromptVariation> confirmations,
                      DialogIntentPrompt prompts,
                      Set<String> samples,
                      Map<String, IntentSlotData> slots); static IntentData combine(IntentData a, IntentData b); static Codec<IntentData> codec(); static IntentData empty(); static Resource.Builder resource(); static Builder builder(); @JsonProperty("samples") Set<String> getSamples(); @JsonProperty("confirmations") Set<PromptVariation> getConfirmations(); @JsonProperty("slots") Map<String, IntentSlotData> getSlots(); @JsonProperty("confirmationRequired") Boolean getConfirmationRequired(); @JsonProperty("prompts") DialogIntentPrompt getPrompts(); @JsonIgnore boolean isEmpty(); @Override String toString(); @Override boolean equals(Object o); @Override int hashCode();  }
@Test public void testEquals() { IntentData left = mockBuilder("test").build(); IntentData right = mockBuilder("test").build(); assertEquals(left, right); assertEquals(left.hashCode(), right.hashCode()); }