### Question:
ClientCustomDataSource extends ClientResource<ClientCustomDataSource> implements ClientReferenceableDataSource { @Override public int hashCode() { int result = super.hashCode(); result = 31 * result + (serviceClass != null ? serviceClass.hashCode() : 0); result = 31 * result + (dataSourceName != null ? dataSourceName.hashCode() : 0); result = 31 * result + (properties != null ? new HashSet(properties).hashCode() : 0); result = 31 * result + (resources != null ? resources.hashCode() : 0); return result; } ClientCustomDataSource();  ClientCustomDataSource(ClientCustomDataSource source); String getDataSourceName(); @Override boolean equals(Object o); @Override int hashCode(); @XmlJavaTypeAdapter(FilesMapXmlAdapter.class) @XmlElement(name = "resources") Map<String, ClientReferenceableFile> getResources(); ClientCustomDataSource setResources(Map<String, ClientReferenceableFile> resources); ClientCustomDataSource setDataSourceName(String dataSourceName); String getServiceClass(); ClientCustomDataSource setServiceClass(String serviceClass); List<ClientProperty> getProperties(); ClientCustomDataSource setProperties(List<ClientProperty> properties); @Override String toString(); @Override ClientCustomDataSource deepClone();  }### Answer:
@Test public void testHashCode() throws Exception { assertEquals(dataSource1.hashCode(), dataSource2.hashCode()); }