### Question:
ComponentConfig implements Comparable<ComponentConfig> { @Override public boolean equals( Object obj ) { if (obj == this) return true; if (obj instanceof ComponentConfig) { ComponentConfig that = (ComponentConfig)obj; if (!this.getClass().equals(that.getClass())) return false; return this.getName().equalsIgnoreCase(that.getName()); } return false; } ComponentConfig( String name,
                            String description,
                            String classname,
                            String... classpath );  ComponentConfig( String name,
                            String description,
                            Map<String, Object> properties,
                            String classname,
                            String... classpath );  ComponentConfig( String name,
                            String description,
                            long timestamp,
                            Map<String, Object> properties,
                            String classname,
                            String... classpath ); String getName(); String getDescription(); String getComponentClassname(); List<String> getComponentClasspath(); String[] getComponentClasspathArray(); long getTimestamp(); Map<String, Object> getProperties(); int compareTo( ComponentConfig that ); @Override int hashCode(); @Override boolean equals( Object obj ); boolean hasChanged( ComponentConfig component );  }### Answer:
@Test public void shouldConsiderSameIfNamesAreEqualIgnoringCase() { assertThat(configA.equals(configA2), is(true)); }
@Test public void shouldConsiderNotSameIfNamesAreNotEqualIgnoringCase() { assertThat(configA.equals(configB), is(false)); }