public void testLastKnownLocationNotAvailable() {

    final String strProvider = "foobar";

    AndroidMock.expect(appUtils.hasPermission(context, "android.permission.ACCESS_FINE_LOCATION"))
        .andReturn(true)
        .anyTimes();
    AndroidMock.expect(
            locationManager.getBestProvider(
                (Criteria) AndroidMock.anyObject(), AndroidMock.eq(true)))
        .andReturn(strProvider)
        .anyTimes();
    AndroidMock.expect(locationManager.getLastKnownLocation(strProvider))
        .andReturn(null)
        .anyTimes();
    AndroidMock.expect(locationManager.isProviderEnabled(strProvider)).andReturn(true).anyTimes();
    AndroidMock.expect(locationListenerFactory.getBean()).andReturn(listener).anyTimes();

    locationManager.requestLocationUpdates(context, strProvider, 1L, 0.0f, listener);

    AndroidMock.replay(locationListenerFactory);
    AndroidMock.replay(appUtils);
    AndroidMock.replay(locationManager);

    DefaultLocationProvider provider = new DefaultLocationProvider();
    provider.setLocationManager(locationManager);
    provider.setAppUtils(appUtils);
    provider.setLocationListenerFactory(locationListenerFactory);
    provider.init(context);

    Location loc = provider.getLastKnownLocation();

    AndroidMock.verify(locationListenerFactory);
    AndroidMock.verify(appUtils);
    AndroidMock.verify(locationManager);

    assertNull(loc);
  }