• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.xtremelabs.robolectric.shadows;
2 
3 import android.location.Location;
4 import android.location.LocationManager;
5 import com.xtremelabs.robolectric.WithTestDefaultsRunner;
6 import org.junit.Before;
7 import org.junit.Test;
8 import org.junit.runner.RunWith;
9 
10 import static junit.framework.Assert.assertEquals;
11 import static junit.framework.Assert.assertTrue;
12 import static junit.framework.Assert.assertFalse;
13 
14 @RunWith(WithTestDefaultsRunner.class)
15 public class LocationTest {
16 
17     private Location location;
18 
19     @Before
setUp()20     public void setUp() throws Exception {
21         location = new Location(LocationManager.GPS_PROVIDER);
22         location.setTime(1);
23         location.setLatitude(2);
24         location.setLongitude(3);
25         location.setAccuracy(4);
26         location.setBearing(0.5f);
27         location.setSpeed(5.5f);
28         location.setAltitude(3.0d);
29     }
30 
31     @Test
test_copyConstructor()32     public void test_copyConstructor() throws Exception {
33         Location copiedLocation = new Location(location);
34 
35         assertLocationFieldsFromTestSetup(copiedLocation);
36     }
37 
38     @Test
test_set()39     public void test_set() throws Exception {
40         Location newLocation = new Location(LocationManager.NETWORK_PROVIDER);
41         newLocation.set(location);
42 
43         assertLocationFieldsFromTestSetup(newLocation);
44     }
45 
46     @Test
removeFieldShouldReportHasFieldAsFalse()47     public void removeFieldShouldReportHasFieldAsFalse()
48     {
49     	assertTrue(location.hasAccuracy());
50     	location.removeAccuracy();
51     	assertFalse(location.hasAccuracy());
52 
53     	assertTrue(location.hasBearing());
54     	location.removeBearing();
55     	assertFalse(location.hasBearing());
56 
57     	assertTrue(location.hasAltitude());
58     	location.removeAltitude();
59     	assertFalse(location.hasAltitude());
60 
61     	assertTrue(location.hasSpeed());
62     	location.removeSpeed();
63     	assertFalse(location.hasSpeed());
64     }
65 
66     @Test
defaultLocationShouldNotReportFieldsAsAvailable()67     public void defaultLocationShouldNotReportFieldsAsAvailable()
68     {
69     	Location defaultLocation = new Location(LocationManager.GPS_PROVIDER);
70     	assertFalse(defaultLocation.hasAccuracy());
71     	assertFalse(defaultLocation.hasBearing());
72     	assertFalse(defaultLocation.hasAltitude());
73     	assertFalse(defaultLocation.hasSpeed());
74 
75     	assertEquals(0.0d, defaultLocation.getLatitude());
76         assertEquals(0.0d, defaultLocation.getLongitude());
77         assertEquals(0.0f, defaultLocation.getAccuracy());
78         assertEquals(0.0f, defaultLocation.getBearing());
79         assertEquals(0.0f, defaultLocation.getSpeed());
80         assertEquals(0.0d, defaultLocation.getAltitude());
81     }
82 
83     @Test
settingFieldShouldMakeHasFieldReturnTrue()84     public void settingFieldShouldMakeHasFieldReturnTrue()
85     {
86     	Location l = new Location(LocationManager.GPS_PROVIDER);
87     	assertFalse(l.hasAccuracy());
88     	l.setAccuracy(0.5f);
89     	assertTrue(l.hasAccuracy());
90 
91     	assertFalse(l.hasBearing());
92     	l.setBearing(1);
93     	assertTrue(l.hasBearing());
94 
95     	assertFalse(l.hasAltitude());
96     	l.setAltitude(1);
97     	assertTrue(l.hasAltitude());
98 
99     	assertFalse(l.hasSpeed());
100     	l.setSpeed(5);
101     	assertTrue(l.hasSpeed());
102     }
103 
assertLocationFieldsFromTestSetup(Location l)104     private void assertLocationFieldsFromTestSetup(Location l) {
105         assertEquals(1, l.getTime());
106         assertEquals(2.0, l.getLatitude());
107         assertEquals(3.0, l.getLongitude());
108         assertEquals(4f, l.getAccuracy());
109         assertEquals(0.5f, l.getBearing());
110         assertEquals(5.5f, l.getSpeed());
111         assertEquals(3.0d, l.getAltitude());
112         assertEquals(LocationManager.GPS_PROVIDER, l.getProvider());
113 
114         assertTrue(l.hasAltitude());
115         assertTrue(l.hasAccuracy());
116         assertTrue(l.hasBearing());
117         assertTrue(l.hasSpeed());
118 
119         assertEquals(location, l);
120     }
121 }
122