11package com .mapbox .services .android .navigation .v5 .navigation ;
22
3- import android .app .NotificationManager ;
3+ import android .app .Notification ;
44import android .content .Context ;
5+ import android .content .pm .PackageManager ;
6+ import android .content .res .Configuration ;
7+ import android .content .res .Resources ;
58
69import com .google .gson .Gson ;
710import com .google .gson .GsonBuilder ;
1114import com .mapbox .services .android .navigation .v5 .BaseTest ;
1215import com .mapbox .services .android .navigation .v5 .routeprogress .RouteProgress ;
1316
14- import junit .framework .Assert ;
15-
1617import org .junit .Before ;
17- import org .junit .Ignore ;
1818import org .junit .Test ;
19- import org .mockito .Mock ;
20- import org .mockito .Mockito ;
2119
22- public class MapboxNavigationNotificationTest extends BaseTest {
20+ import java .util .Calendar ;
21+ import java .util .Date ;
22+ import java .util .Locale ;
2323
24- private static final String DIRECTIONS_ROUTE_FIXTURE = "directions_v5_precision_6.json" ;
24+ import static org .junit .Assert .assertEquals ;
25+ import static org .mockito .ArgumentMatchers .anyInt ;
26+ import static org .mockito .Mockito .mock ;
27+ import static org .mockito .Mockito .when ;
2528
26- @ Mock
27- NotificationManager notificationManager ;
29+ public class MapboxNavigationNotificationTest extends BaseTest {
2830
31+ private static final String DIRECTIONS_ROUTE_FIXTURE = "directions_v5_precision_6.json" ;
2932 private DirectionsRoute route ;
3033
3134 @ Before
@@ -37,28 +40,42 @@ public void setUp() throws Exception {
3740 route = response .routes ().get (0 );
3841 }
3942
40- @ Ignore
4143 @ Test
42- public void sanity () throws Exception {
43- MapboxNavigationNotification mapboxNavigationNotification = new MapboxNavigationNotification (
44- Mockito .mock (Context .class ), Mockito .mock (MapboxNavigation .class ));
45- Assert .assertNotNull (mapboxNavigationNotification );
46- }
44+ public void checksArrivalTime () throws Exception {
45+ MapboxNavigation mockedMapboxNavigation = createMapboxNavigation ();
46+ Context mockedContext = createContext ();
47+ Notification mockedNotification = mock (Notification .class );
48+ MapboxNavigationNotification mapboxNavigationNotification = new MapboxNavigationNotification (mockedContext ,
49+ mockedMapboxNavigation , mockedNotification );
50+ RouteProgress routeProgress = buildDefaultTestRouteProgress ();
51+ Calendar mockedTime = Calendar .getInstance ();
52+ long aprilFifteenThreeFourtyFourFiftyThreePmTwoThousandNineteen = 1555357493308L ;
53+ mockedTime .setTime (new Date (aprilFifteenThreeFourtyFourFiftyThreePmTwoThousandNineteen ));
4754
48- @ Ignore
49- @ Test
50- public void updateDefaultNotification_onlyUpdatesNameWhenNew () throws Exception {
51- RouteProgress routeProgress = RouteProgress .builder ()
52- .directionsRoute (route )
53- .stepIndex (0 )
54- .legIndex (0 )
55- .build ();
55+ String formattedArrivalTime = mapboxNavigationNotification .generateArrivalTime (routeProgress , mockedTime );
5656
57- MapboxNavigationNotification mapboxNavigationNotification = new MapboxNavigationNotification (
58- Mockito .mock (Context .class ), Mockito .mock (MapboxNavigation .class ));
57+ assertEquals ("4:46 pm ETA" , formattedArrivalTime );
58+ }
59+
60+ private MapboxNavigation createMapboxNavigation () {
61+ MapboxNavigation mockedMapboxNavigation = mock (MapboxNavigation .class );
62+ when (mockedMapboxNavigation .getRoute ()).thenReturn (route );
63+ MapboxNavigationOptions mockedMapboxNavigationOptions = mock (MapboxNavigationOptions .class );
64+ when (mockedMapboxNavigation .options ()).thenReturn (mockedMapboxNavigationOptions );
65+ when (mockedMapboxNavigationOptions .roundingIncrement ()).thenReturn (NavigationConstants .ROUNDING_INCREMENT_FIVE );
66+ return mockedMapboxNavigation ;
67+ }
5968
60- mapboxNavigationNotification .updateNotification (routeProgress );
61- // notificationManager.getActiveNotifications()[0].getNotification().contentView;
62- // verify(notificationManager, times(1)).getActiveNotifications()[0];
69+ private Context createContext () {
70+ Context mockedContext = mock (Context .class );
71+ Configuration mockedConfiguration = new Configuration ();
72+ mockedConfiguration .locale = new Locale ("en" );
73+ Resources mockedResources = mock (Resources .class );
74+ when (mockedContext .getResources ()).thenReturn (mockedResources );
75+ when (mockedResources .getConfiguration ()).thenReturn (mockedConfiguration );
76+ PackageManager mockedPackageManager = mock (PackageManager .class );
77+ when (mockedContext .getPackageManager ()).thenReturn (mockedPackageManager );
78+ when (mockedContext .getString (anyInt ())).thenReturn ("%s ETA" );
79+ return mockedContext ;
6380 }
6481}
0 commit comments