author | timkelly |
Thu, 09 Sep 2010 09:31:25 -0500 | |
changeset 1973 | a7bfb499d772 |
parent 1961 | da3ecb4146dd |
permissions | -rw-r--r-- |
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 | 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 | 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 | 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 | 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 | 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 | 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 | 121 |
assertNull(SDKCacheUtils.getCache().getCache(SBSv2QueryUtils.ALIAS_CACHE_KEY)); |
122 |
assertNull(SDKCacheUtils.getCache().getCache(SBSv2QueryUtils.PRODUCT_CACHE_KEY)); |
|
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 | 128 |
assertNull(SDKCacheUtils.getCache().getCache(SBSv2QueryUtils.ALIAS_CACHE_KEY)); |
129 |
assertNull(SDKCacheUtils.getCache().getCache(SBSv2QueryUtils.PRODUCT_CACHE_KEY)); |
|
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 |
} |