aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src/cgeo/geocaching/test/cgeoApplicationTest.java
blob: 89ea4460d712a1638e6d7e2add2cc8568a0a0357 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package cgeo.geocaching.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;

import junit.framework.Assert;
import android.content.Context;
import android.content.SharedPreferences;
import android.test.ApplicationTestCase;
import android.test.suitebuilder.annotation.MediumTest;
import android.test.suitebuilder.annotation.SmallTest;
import cgeo.geocaching.ICache;
import cgeo.geocaching.cgBase;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgCacheWrap;
import cgeo.geocaching.cgSettings;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.test.mock.GC1ZXX2;
import cgeo.geocaching.test.mock.GC2CJPF;

/**
 * The c:geo application test.
 * It can be used for tests that require an application and/or context.
 */

public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> {
	
	private cgSettings settings = null;
	private cgBase base = null; 

    public cgeoApplicationTest() {
        super(cgeoapplication.class);
      }

      @Override
      protected void setUp() throws Exception {
          super.setUp();
          
       	  // init environment
    	  createApplication();
    	  Context context = this.getContext();
    	  SharedPreferences prefs = context.getSharedPreferences(cgSettings.preferences, Context.MODE_PRIVATE);
    	  
    	  // create required c:geo objects
    	  settings = new cgSettings(context, prefs);
    	  base = new cgBase(this.getApplication(), settings, prefs);
      }

      /**
       * The name 'test preconditions' is a convention to signal that if this
       * test doesn't pass, the test case was not set up properly and it might
       * explain any and all failures in other tests.  This is not guaranteed
       * to run before other tests, as junit uses reflection to find the tests.
       */
      @SmallTest
      public void testPreconditions() {
      }

      /**
       * Test {@link cgBase#searchByGeocode(HashMap, int, boolean)}
       * @param base
       */
      @MediumTest
      public void testSearchByGeocode() {
    	  HashMap<String, String> params = new HashMap<String, String>();
    	  params.put("geocode", "GC1RMM2");
    	  
    	  final UUID id = base.searchByGeocode(params, 0, true);
    	  Assert.assertNotNull(id);
      }
      
      /**
       * Test {@link cgBase#parseCache(String, int) with "mocked" data
       * @param base
       */
      @MediumTest
      public void testParseCache() {
    	  List<ICache> cachesToTest = new ArrayList<ICache>();
    	  cachesToTest.add(new GC2CJPF());
    	  cachesToTest.add(new GC1ZXX2());

    	  for (ICache cache : cachesToTest) {
	    	  cgCacheWrap caches = base.parseCache(cache.getData(),0);
	    	  cgCache cacheParsed = caches.cacheList.get(0);
	    	  Assert.assertEquals(cacheParsed.getGeocode(), cache.getGeocode());
	    	  Assert.assertEquals(cacheParsed.getType(), cache.getType());
	    	  Assert.assertEquals(cacheParsed.getOwner(), cache.getOwner());
	    	  Assert.assertEquals(cacheParsed.getDifficulty(), cache.getDifficulty());
	    	  Assert.assertEquals(cacheParsed.getTerrain(), cache.getTerrain());
	    	  Assert.assertEquals(cacheParsed.getLatitute(), cache.getLatitute());
	    	  Assert.assertEquals(cacheParsed.getLongitude(), cache.getLongitude());
	    	  Assert.assertEquals(cacheParsed.isDisabled(), cache.isDisabled());
	    	  Assert.assertEquals(cacheParsed.isOwn(), cache.isOwn());
	    	  Assert.assertEquals(cacheParsed.isArchived(), cache.isArchived());
	    	  Assert.assertEquals(cacheParsed.isMembersOnly(), cache.isMembersOnly());
	    	  Assert.assertEquals(cacheParsed.getOwnerReal(), cache.getOwnerReal());
	    	  Assert.assertEquals(cacheParsed.getSize(), cache.getSize());
	    	  Assert.assertEquals(cacheParsed.getHint(), cache.getHint());
	    	  Assert.assertTrue(cacheParsed.getDescription().startsWith(cache.getDescription()));
	    	  Assert.assertEquals(cacheParsed.getShortDescription(), cache.getShortDescription());
	    	  Assert.assertEquals(cacheParsed.getName(), cache.getName());
    	  }
      }

}