@Test
  public void testCreate() {
    GeocacheFactory geocacheFactory = PowerMock.createMock(GeocacheFactory.class);
    SharedPreferences preferences = PowerMock.createMock(SharedPreferences.class);
    Geocache geocache = PowerMock.createMock(Geocache.class);

    EasyMock.expect(preferences.getString(Geocache.ID, "GCMEY7")).andReturn("GC123");
    EasyMock.expect(preferences.getString(Geocache.NAME, "Google Falls")).andReturn("a cache");
    EasyMock.expect(preferences.getFloat(Geocache.LATITUDE, 0)).andReturn(37f);
    EasyMock.expect(preferences.getFloat(Geocache.LONGITUDE, 0)).andReturn(-122f);
    EasyMock.expect(preferences.getInt(Geocache.SOURCE_TYPE, -1))
        .andReturn(Source.MY_LOCATION.toInt());
    EasyMock.expect(geocacheFactory.sourceFromInt(Source.MY_LOCATION.toInt()))
        .andReturn(Source.MY_LOCATION);
    EasyMock.expect(preferences.getString(Geocache.SOURCE_NAME, "")).andReturn(null);
    EasyMock.expect(preferences.getInt(Geocache.CACHE_TYPE, 0)).andReturn(1);
    EasyMock.expect(geocacheFactory.cacheTypeFromInt(1)).andReturn(CacheType.TRADITIONAL);
    EasyMock.expect(preferences.getInt(Geocache.DIFFICULTY, 0)).andReturn(2);
    EasyMock.expect(preferences.getInt(Geocache.CONTAINER, 0)).andReturn(3);
    EasyMock.expect(preferences.getInt(Geocache.TERRAIN, 0)).andReturn(4);
    EasyMock.expect(preferences.getBoolean("available", true)).andReturn(true);
    EasyMock.expect(preferences.getBoolean("archived", false)).andReturn(false);
    EasyMock.expect(
            geocacheFactory.create(
                "GC123",
                "a cache",
                37f,
                -122f,
                Source.MY_LOCATION,
                null,
                CacheType.TRADITIONAL,
                2,
                4,
                3,
                true,
                false))
        .andReturn(geocache);

    PowerMock.replayAll();
    GeocacheFromPreferencesFactory geocacheFromPreferencesFactory =
        new GeocacheFromPreferencesFactory(geocacheFactory);
    assertEquals(geocache, geocacheFromPreferencesFactory.create(preferences));
    PowerMock.verifyAll();
  }
  @Test
  public void testCreate() {
    LocationControlBuffered locationControlBuffered =
        PowerMock.createMock(LocationControlBuffered.class);
    Location location = PowerMock.createMock(Location.class);
    GeocacheFactory geocacheFactory = PowerMock.createMock(GeocacheFactory.class);
    Geocache geocache = PowerMock.createMock(Geocache.class);
    Locale.setDefault(Locale.ENGLISH);
    TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));

    EasyMock.expect(locationControlBuffered.getLocation()).andReturn(location);
    EasyMock.expect(location.getTime()).andReturn(1000000L);
    EasyMock.expect(location.getLatitude()).andReturn(37.0);
    EasyMock.expect(location.getLongitude()).andReturn(-122.0);
    EasyMock.expect(
            geocacheFactory.create(
                "ML161640",
                "[16:16] My Location",
                37.0,
                -122.0,
                Source.MY_LOCATION,
                null,
                CacheType.MY_LOCATION,
                0,
                0,
                0,
                true,
                false))
        .andReturn(geocache);

    PowerMock.replayAll();
    assertEquals(
        geocache,
        new GeocacheFromMyLocationFactory(geocacheFactory, locationControlBuffered).create());
    PowerMock.verifyAll();
  }