Home | History | Annotate | Download | only in location
      1 package com.android.server.location;
      2 
      3 import static com.google.common.truth.Truth.assertThat;
      4 
      5 import android.platform.test.annotations.Presubmit;
      6 
      7 import org.junit.Test;
      8 import org.junit.runner.RunWith;
      9 import org.robolectric.RobolectricTestRunner;
     10 
     11 import java.util.HashSet;
     12 
     13 /**
     14  * Unit tests for {@link GnssPositionMode}.
     15  */
     16 @RunWith(RobolectricTestRunner.class)
     17 @Presubmit
     18 public class GnssPositionModeTest {
     19 
     20     private GnssPositionMode positionMode1 = createGnssPositionMode(0, 1000);
     21     private GnssPositionMode positionMode2 = createGnssPositionMode(0, 1000);
     22     private GnssPositionMode positionMode3 = createGnssPositionMode(1, 1000);
     23 
     24     @Test
     25     public void testHashCode() {
     26         assertThat(positionMode1.hashCode()).isEqualTo(positionMode2.hashCode());
     27         assertThat(positionMode1.hashCode()).isNotEqualTo(positionMode3.hashCode());
     28         assertThat(positionMode1.hashCode()).isNotEqualTo(positionMode3.hashCode());
     29 
     30         HashSet<Integer> hashSet = new HashSet<>();
     31         hashSet.add(positionMode1.hashCode());
     32         hashSet.add(positionMode2.hashCode());
     33         assertThat(hashSet.size()).isEqualTo(1);
     34         hashSet.add(positionMode3.hashCode());
     35         assertThat(hashSet.size()).isEqualTo(2);
     36     }
     37 
     38     @Test
     39     public void checkIfEqualsImpliesSameHashCode() {
     40         assertTEqualsImpliesSameHashCode(positionMode1, positionMode2);
     41         assertTEqualsImpliesSameHashCode(positionMode2, positionMode3);
     42     }
     43 
     44     private void assertTEqualsImpliesSameHashCode(GnssPositionMode mode1, GnssPositionMode mode2) {
     45         if (mode1.equals(mode2)) {
     46             assertThat(mode1.hashCode()).isEqualTo(mode2.hashCode());
     47         }
     48     }
     49 
     50     private GnssPositionMode createGnssPositionMode(int mode, int minInterval) {
     51         return new GnssPositionMode(mode, 0, minInterval, 0, 0, true);
     52     }
     53 }
     54