Fix false positives in Location.equals().

This commit is contained in:
Andreas Schildbach 2014-02-08 23:01:52 +01:00
parent b4ac8f72cb
commit ae00988db7
2 changed files with 10 additions and 5 deletions

View file

@ -145,7 +145,7 @@ public final class Location implements Serializable
} }
@Override @Override
public boolean equals(Object o) public boolean equals(final Object o)
{ {
if (o == this) if (o == this)
return true; return true;
@ -154,10 +154,10 @@ public final class Location implements Serializable
final Location other = (Location) o; final Location other = (Location) o;
if (this.type != other.type) if (this.type != other.type)
return false; return false;
if (this.id != 0 && this.id == other.id) if (this.id != 0)
return true; return this.id == other.id;
if (this.lat != 0 && this.lon != 0 && this.lat == other.lat && this.lon == other.lon) if (this.lat != 0 && this.lon != 0)
return true; return this.lat == other.lat && this.lon == other.lon;
if (!nullSafeEquals(this.name, other.name)) // only discriminate by name if no ids are given if (!nullSafeEquals(this.name, other.name)) // only discriminate by name if no ids are given
return false; return false;
return true; return true;

View file

@ -17,7 +17,9 @@
package de.schildbach.pte.live; package de.schildbach.pte.live;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -96,6 +98,9 @@ public class MvvProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void autocompleteLocal() throws Exception public void autocompleteLocal() throws Exception
{ {
final List<Location> autocompletesFraunhoferStr = provider.autocompleteStations("fraunhofer");
assertThat(autocompletesFraunhoferStr, hasItem(new Location(LocationType.STATION, 1000150)));
final List<Location> autocompletesHirschgarten = provider.autocompleteStations("Hirschgarten"); final List<Location> autocompletesHirschgarten = provider.autocompleteStations("Hirschgarten");
assertEquals("München", autocompletesHirschgarten.get(0).place); assertEquals("München", autocompletesHirschgarten.get(0).place);