diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/sensor/SensorDataCyclingTest.java b/src/androidTest/java/de/dennisguse/opentracks/content/sensor/SensorDataCyclingTest.java index 169bed732..2ba8e9a7e 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/sensor/SensorDataCyclingTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/content/sensor/SensorDataCyclingTest.java @@ -9,6 +9,7 @@ import de.dennisguse.opentracks.util.UintUtils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; @RunWith(AndroidJUnit4.class) public class SensorDataCyclingTest { @@ -117,4 +118,32 @@ public class SensorDataCyclingTest { // then assertEquals(2, current.getSpeed_mps(), 0.01); } + + @Test + public void equals_speed_with_no_data() { + // given + SensorDataCycling.Speed previous = new SensorDataCycling.Speed("sensorAddress"); + SensorDataCycling.Speed current = new SensorDataCycling.Speed("sensorAddress", "sensorName", 0, 2048); + + // when + previous.toString(); + + // then + assertNotEquals(previous, current); + assertNotEquals(previous, previous); + } + + @Test + public void equals_cadence_with_no_data() { + // given + SensorDataCycling.Cadence previous = new SensorDataCycling.Cadence("sensorAddress"); + SensorDataCycling.Cadence current = new SensorDataCycling.Cadence("sensorAddress", "sensorName", 0, 2048); + + // when + previous.toString(); + + // then + assertNotEquals(previous, current); + assertNotEquals(previous, previous); + } } \ No newline at end of file diff --git a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCycling.java b/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCycling.java index f194c29bb..4ee0e63cc 100644 --- a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCycling.java +++ b/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCycling.java @@ -42,7 +42,7 @@ public final class SensorDataCycling { * Workaround for Wahoo CADENCE: provides speed instead of cadence */ public Cadence(@NonNull SensorDataCycling.Speed speed) { - this(speed.getSensorAddress(), speed.getSensorName(), speed.getWheelRevolutionsCount(), speed.getWheelRevolutionsTime()); + this(speed.getSensorAddress(), speed.getSensorName(), speed.wheelRevolutionsCount, speed.wheelRevolutionsTime); } public boolean hasData() { @@ -90,7 +90,11 @@ public final class SensorDataCycling { if (!(obj instanceof Cadence)) return false; Cadence comp = (Cadence) obj; - return getCrankRevolutionsCount() == comp.getCrankRevolutionsCount() && getCrankRevolutionsTime() == comp.getCrankRevolutionsTime(); + if (hasData() && comp.hasData() == hasData()) { + return getCrankRevolutionsCount() == comp.getCrankRevolutionsCount() && getCrankRevolutionsTime() == comp.getCrankRevolutionsTime(); + } else { + return false; + } } } @@ -157,7 +161,11 @@ public final class SensorDataCycling { if (!(obj instanceof Speed)) return false; Speed comp = (Speed) obj; - return getWheelRevolutionsCount() == comp.getWheelRevolutionsCount() && getWheelRevolutionsTime() == comp.getWheelRevolutionsTime(); + if (hasData() && comp.hasData() == hasData()) { + return getWheelRevolutionsCount() == comp.getWheelRevolutionsCount() && getWheelRevolutionsTime() == comp.getWheelRevolutionsTime(); + } else { + return false; + } } }