core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/TestCarbideSDKCache.java
author timkelly
Thu, 09 Sep 2010 09:31:25 -0500
changeset 1973 a7bfb499d772
parent 1961 da3ecb4146dd
permissions -rw-r--r--
Add a sleep before testing if sdk cache entry was deleted. Test to figure out why test is failing on one machine only.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
     1
package com.nokia.carbide.cpp.sdk.core.test;
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
     2
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
     3
import java.io.Serializable;
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
     4
import java.util.HashMap;
1568
508bfdb3a934 Added caching of Raptor query data for aliases, products and configs.
stechong
parents: 1474
diff changeset
     5
import java.util.Map;
508bfdb3a934 Added caching of Raptor query data for aliases, products and configs.
stechong
parents: 1474
diff changeset
     6
508bfdb3a934 Added caching of Raptor query data for aliases, products and configs.
stechong
parents: 1474
diff changeset
     7
import junit.framework.TestCase;
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
     8
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
     9
import org.eclipse.core.runtime.jobs.IJobChangeEvent;
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    10
import org.eclipse.core.runtime.jobs.IJobChangeListener;
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    11
import org.eclipse.core.runtime.jobs.Job;
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    12
import org.osgi.framework.Version;
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    13
1808
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1715
diff changeset
    14
import com.nokia.carbide.cpp.internal.api.sdk.SDKCacheUtils;
1568
508bfdb3a934 Added caching of Raptor query data for aliases, products and configs.
stechong
parents: 1474
diff changeset
    15
import com.nokia.carbide.cpp.internal.api.sdk.sbsv2.SBSv2QueryUtils;
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    16
import com.nokia.carbide.cpp.internal.sdk.core.model.AbstractSDKManager;
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    17
import com.nokia.carbide.cpp.internal.sdk.core.model.SDKManager;
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    18
import com.nokia.carbide.cpp.internal.sdk.core.model.SDKManagerCacheEntry;
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    19
import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    20
import com.nokia.carbide.cpp.sdk.core.SymbianSDKFactory;
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    21
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    22
public class TestCarbideSDKCache extends TestCase {
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    23
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    24
	private class TestSDKManager extends SDKManager {
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    25
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    26
		@SuppressWarnings("unchecked")
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    27
		public TestSDKManager() {
1808
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1715
diff changeset
    28
			Map<String, SDKManagerCacheEntry> cache = SDKCacheUtils.getCache().getCachedData(SDK_MANAGER_CACHE_KEY, Map.class, 0);
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    29
			if (cache == null) {
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    30
				cache = new HashMap<String, SDKManagerCacheEntry>();
1808
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1715
diff changeset
    31
				SDKCacheUtils.getCache().putCachedData(SDK_MANAGER_CACHE_KEY, (Serializable)cache, 0);
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    32
			}
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    33
		}
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    34
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    35
		public void clearCache() {
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    36
			clearSDKCache();
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    37
		}
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    38
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    39
		@SuppressWarnings("unchecked")
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    40
		public Map<String, SDKManagerCacheEntry> getCache() {
1808
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1715
diff changeset
    41
			Map<String, SDKManagerCacheEntry> cache = SDKCacheUtils.getCache().getCachedData(SDK_MANAGER_CACHE_KEY, Map.class, 0);
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    42
			if (cache == null) {
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    43
				cache = new HashMap<String, SDKManagerCacheEntry>();
1808
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1715
diff changeset
    44
				SDKCacheUtils.getCache().putCachedData(SDK_MANAGER_CACHE_KEY, (Serializable)cache, 0);
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    45
			}
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    46
			return cache;
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    47
		}
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    48
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    49
		public SDKManagerCacheEntry getCacheEntry(String id) {
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    50
			return getSDKCacheEntry(id);
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    51
		}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    52
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    53
		public Job getScanJob() {
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    54
			return scanJob;
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    55
		}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    56
	}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    57
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    58
	protected void setUp() throws Exception {
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    59
		super.setUp();
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    60
	}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    61
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    62
	protected void tearDown() throws Exception {
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    63
		super.tearDown();
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    64
	}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    65
	
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    66
	public void testCacheCreation() throws Exception {
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    67
		final TestSDKManager manager = new TestSDKManager();
1961
da3ecb4146dd fix unit tests (call init() after creating an SDKManager instance.
timkelly
parents: 1808
diff changeset
    68
		((AbstractSDKManager)manager).init();
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    69
		manager.clearCache();
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    70
		IJobChangeListener listener = new IJobChangeListener() {
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    71
			
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    72
			public void sleeping(IJobChangeEvent event) {
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    73
			}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    74
			
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    75
			public void scheduled(IJobChangeEvent event) {
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    76
			}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    77
			
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    78
			public void running(IJobChangeEvent event) {
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    79
			}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    80
			
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    81
			public void done(IJobChangeEvent event) {
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    82
				Map<String, SDKManagerCacheEntry> cache = manager.getCache();
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
    83
				assertNotNull(cache);
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    84
			}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    85
			
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    86
			public void awake(IJobChangeEvent event) {
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    87
			}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    88
			
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    89
			public void aboutToRun(IJobChangeEvent event) {
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    90
			}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    91
		};
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    92
		manager.addScanJobListner(listener);
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    93
		manager.scanSDKs();
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    94
		manager.getScanJob().join();
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    95
		manager.removeScanJobLisner(listener);
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    96
	}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    97
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    98
	public void testCacheModification() throws Exception {
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
    99
		final TestSDKManager manager = new TestSDKManager();
1961
da3ecb4146dd fix unit tests (call init() after creating an SDKManager instance.
timkelly
parents: 1808
diff changeset
   100
		((AbstractSDKManager)manager).init();
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
   101
		manager.scanSDKs();
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
   102
		manager.getScanJob().join();
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
   103
		assertTrue(manager.getSDKList().isEmpty() == manager.getCache().isEmpty());
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
   104
		manager.clearCache();
1808
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1715
diff changeset
   105
		assertNull(SDKCacheUtils.getCache().getCache(AbstractSDKManager.SDK_MANAGER_CACHE_KEY));
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
   106
		final String sdkId = "test";
1667
352fb86872dd remove ISymbianSDK: getSDKVersion(), getName() and related methods.
timkelly
parents: 1568
diff changeset
   107
		ISymbianSDK sdk = SymbianSDKFactory.createInstance(sdkId, "C:\\", new Version("9.5"));
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
   108
		manager.addSDK(sdk);
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
   109
		assertFalse(manager.getCache().isEmpty());
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
   110
		assertNotNull(manager.getCacheEntry(sdkId));
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
   111
		manager.updateSDK(sdk);
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
   112
		assertFalse(manager.getCache().isEmpty());
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
   113
		assertNotNull(manager.getCacheEntry(sdkId));
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
   114
		manager.removeSDK(sdkId);
1973
a7bfb499d772 Add a sleep before testing if sdk cache entry was deleted. Test to figure out why test is failing on one machine only.
timkelly
parents: 1961
diff changeset
   115
		Thread.sleep(5000);  // Testing. This test fails on one test machine but not another. Put in a sleep, guess there may be some timing issue with the cache
1715
ff0db4bbc189 Updated SDKManager to use SDKCacheUtils for caching SDK info.
stechong
parents: 1667
diff changeset
   116
		assertNull(manager.getCacheEntry(sdkId));
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
   117
	}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
   118
1568
508bfdb3a934 Added caching of Raptor query data for aliases, products and configs.
stechong
parents: 1474
diff changeset
   119
	public void testSBSv2QueryCache() throws Exception {
508bfdb3a934 Added caching of Raptor query data for aliases, products and configs.
stechong
parents: 1474
diff changeset
   120
		SBSv2QueryUtils.removeAllCachedQueries();
1808
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1715
diff changeset
   121
		assertNull(SDKCacheUtils.getCache().getCache(SBSv2QueryUtils.ALIAS_CACHE_KEY));
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1715
diff changeset
   122
		assertNull(SDKCacheUtils.getCache().getCache(SBSv2QueryUtils.PRODUCT_CACHE_KEY));
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1715
diff changeset
   123
		assertNull(SDKCacheUtils.getCache().getCache(SBSv2QueryUtils.CONFIG_CACHE_KEY));
1568
508bfdb3a934 Added caching of Raptor query data for aliases, products and configs.
stechong
parents: 1474
diff changeset
   124
		final TestSDKManager manager = new TestSDKManager();
1961
da3ecb4146dd fix unit tests (call init() after creating an SDKManager instance.
timkelly
parents: 1808
diff changeset
   125
		((AbstractSDKManager)manager).init();
1568
508bfdb3a934 Added caching of Raptor query data for aliases, products and configs.
stechong
parents: 1474
diff changeset
   126
		manager.scanSDKs();
508bfdb3a934 Added caching of Raptor query data for aliases, products and configs.
stechong
parents: 1474
diff changeset
   127
		manager.getScanJob().join();
1808
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1715
diff changeset
   128
		assertNull(SDKCacheUtils.getCache().getCache(SBSv2QueryUtils.ALIAS_CACHE_KEY));
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1715
diff changeset
   129
		assertNull(SDKCacheUtils.getCache().getCache(SBSv2QueryUtils.PRODUCT_CACHE_KEY));
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1715
diff changeset
   130
		assertNull(SDKCacheUtils.getCache().getCache(SBSv2QueryUtils.CONFIG_CACHE_KEY));
1474
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
   131
	}
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
   132
f7fe29684b34 Fixed SDK scanning issues at startup; also fixed Bug 11470.
stechong
parents:
diff changeset
   133
}