KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > mountainminds > eclemma > internal > core > SessionManagerTest


1 /*******************************************************************************
2  * Copyright (c) 2006 Mountainminds GmbH & Co. KG
3  * This software is provided under the terms of the Eclipse Public License v1.0
4  * See http://www.eclipse.org/legal/epl-v10.html.
5  *
6  * $Id: SessionManagerTest.java 103 2006-09-21 11:13:05Z mho $
7  ******************************************************************************/

8 package com.mountainminds.eclemma.internal.core;
9
10 import java.util.ArrayList JavaDoc;
11 import java.util.List JavaDoc;
12
13 import junit.framework.TestCase;
14
15 import org.eclipse.core.runtime.IPath;
16 import org.eclipse.debug.core.ILaunchConfiguration;
17
18 import com.mountainminds.eclemma.core.ICoverageSession;
19 import com.mountainminds.eclemma.core.IInstrumentation;
20 import com.mountainminds.eclemma.core.ISessionListener;
21 import com.mountainminds.eclemma.core.ISessionManager;
22
23 /**
24  * @author Marc R. Hoffmann
25  * @version $Revision: 103 $
26  */

27 public class SessionManagerTest extends TestCase {
28   
29   protected ISessionManager manager;
30   protected ISessionListener listener;
31   protected ISessionListener reflistener;
32
33   protected void setUp() throws Exception JavaDoc {
34     manager = new SessionManager();
35     listener = new RecordingListener();
36     manager.addSessionListener(listener);
37     reflistener = new RecordingListener();
38   }
39   
40   public void testAddSession1() {
41     ICoverageSession s0 = new DummySession();
42     ICoverageSession s1 = new DummySession();
43     ICoverageSession s2 = new DummySession();
44     manager.addSession(s0, false, null);
45     manager.addSession(s1, false, null);
46     manager.addSession(s2, false, null);
47     ICoverageSession[] sessions = manager.getSessions();
48     assertEquals(3, sessions.length);
49     assertSame(s0, sessions[0]);
50     assertSame(s1, sessions[1]);
51     assertSame(s2, sessions[2]);
52     assertNull(manager.getActiveSession());
53   }
54
55   public void testAddSession2() {
56     ICoverageSession s0 = new DummySession();
57     ICoverageSession s1 = new DummySession();
58     ICoverageSession s2 = new DummySession();
59     manager.addSession(s0, false, null);
60     manager.addSession(s1, true, null);
61     manager.addSession(s2, false, null);
62     ICoverageSession[] sessions = manager.getSessions();
63     assertEquals(3, sessions.length);
64     assertSame(s0, sessions[0]);
65     assertSame(s1, sessions[1]);
66     assertSame(s2, sessions[2]);
67     assertSame(s1, manager.getActiveSession());
68   }
69   
70   public void testAddSession3() {
71     ICoverageSession s0 = new DummySession();
72     ICoverageSession s1 = new DummySession();
73     manager.addSession(s0, false, null);
74     manager.addSession(s1, true, null);
75     reflistener.sessionAdded(s0);
76     reflistener.sessionAdded(s1);
77     reflistener.sessionActivated(s1);
78     assertEquals(reflistener, listener);
79   }
80
81   public void testAddSession4() {
82     try {
83       manager.addSession(null, false, null);
84       fail("NullPointerException expected.");
85     } catch (NullPointerException JavaDoc npe) {
86     }
87   }
88   
89   public void testRemoveSession1() {
90     ICoverageSession s0 = new DummySession();
91     manager.addSession(s0, true, null);
92     manager.removeSession(s0);
93     assertEquals(0, manager.getSessions().length);
94     assertNull(manager.getActiveSession());
95     reflistener.sessionAdded(s0);
96     reflistener.sessionActivated(s0);
97     reflistener.sessionRemoved(s0);
98     reflistener.sessionActivated(null);
99     assertEquals(reflistener, listener);
100   }
101
102   public void testRemoveSession2() {
103     ICoverageSession s0 = new DummySession();
104     ICoverageSession s1 = new DummySession();
105     manager.addSession(s0, false, null);
106     manager.addSession(s1, true, null);
107     manager.removeSession(s1);
108     ICoverageSession[] sessions = manager.getSessions();
109     assertEquals(1, sessions.length);
110     assertSame(s0, sessions[0]);
111     assertSame(s0, manager.getActiveSession());
112     reflistener.sessionAdded(s0);
113     reflistener.sessionAdded(s1);
114     reflistener.sessionActivated(s1);
115     reflistener.sessionRemoved(s1);
116     reflistener.sessionActivated(s0);
117     assertEquals(reflistener, listener);
118   }
119   
120   public void testRemoveSession3() {
121     Object JavaDoc key0 = new Object JavaDoc();
122     Object JavaDoc key1 = new Object JavaDoc();
123     ICoverageSession s0 = new DummySession();
124     ICoverageSession s1 = new DummySession();
125     manager.addSession(s0, false, key0);
126     manager.addSession(s1, true, key1);
127     manager.removeSession(key1);
128     ICoverageSession[] sessions = manager.getSessions();
129     assertEquals(1, sessions.length);
130     assertSame(s0, sessions[0]);
131     assertSame(s0, manager.getActiveSession());
132     reflistener.sessionAdded(s0);
133     reflistener.sessionAdded(s1);
134     reflistener.sessionActivated(s1);
135     reflistener.sessionRemoved(s1);
136     reflistener.sessionActivated(s0);
137     assertEquals(reflistener, listener);
138   }
139   
140   public void testRemoveSession4() {
141     Object JavaDoc key0 = new Object JavaDoc();
142     Object JavaDoc key1 = new Object JavaDoc();
143     Object JavaDoc key2 = new Object JavaDoc();
144     ICoverageSession s0 = new DummySession();
145     ICoverageSession s1 = new DummySession();
146     manager.addSession(s0, false, key0);
147     manager.addSession(s1, true, key1);
148     manager.removeSession(key2);
149     assertEquals(2, manager.getSessions().length);
150   }
151   
152   public void testRemoveAllSessions1() {
153     ICoverageSession s0 = new DummySession();
154     ICoverageSession s1 = new DummySession();
155     manager.addSession(s0, false, null);
156     manager.addSession(s1, true, null);
157     manager.removeAllSessions();
158     assertEquals(0, manager.getSessions().length);
159     assertNull(manager.getActiveSession());
160     reflistener.sessionAdded(s0);
161     reflistener.sessionAdded(s1);
162     reflistener.sessionActivated(s1);
163     reflistener.sessionRemoved(s0);
164     reflistener.sessionRemoved(s1);
165     reflistener.sessionActivated(null);
166     assertEquals(reflistener, listener);
167   }
168   
169   public void testGetSessions1() {
170     ICoverageSession[] sessions = manager.getSessions();
171     assertNotNull(sessions);
172     assertEquals(0, sessions.length);
173   }
174
175   public void testGetSession1() {
176     Object JavaDoc key0 = new Object JavaDoc();
177     Object JavaDoc key1 = new Object JavaDoc();
178     Object JavaDoc key2 = new Object JavaDoc();
179     ICoverageSession s0 = new DummySession();
180     ICoverageSession s1 = new DummySession();
181     manager.addSession(s0, false, key0);
182     manager.addSession(s1, false, key1);
183     assertEquals(s0, manager.getSession(key0));
184     assertEquals(s1, manager.getSession(key1));
185     assertNull(manager.getSession(key2));
186   }
187   
188   
189   private static class DummySession implements ICoverageSession {
190
191     public String JavaDoc getDescription() {
192       return toString();
193     }
194   
195     public IInstrumentation[] getInstrumentations() {
196       return new IInstrumentation[0];
197     }
198   
199     public IPath[] getCoverageDataFiles() {
200       return new IPath[0];
201     }
202   
203     public ILaunchConfiguration getLaunchConfiguration() {
204       return null;
205     }
206   
207     public ICoverageSession merge(ICoverageSession other, String JavaDoc description) {
208       return new DummySession();
209     }
210   
211     public Object JavaDoc getAdapter(Class JavaDoc adapter) {
212       return null;
213     }
214
215     public String JavaDoc toString() {
216       return "Session@" + System.identityHashCode(this);
217     }
218
219   }
220   
221   private static class RecordingListener implements ISessionListener {
222     
223     private List JavaDoc l = new ArrayList JavaDoc();
224
225     public void sessionAdded(ICoverageSession addedSession) {
226       l.add("ADDED"); l.add(addedSession);
227     }
228
229     public void sessionRemoved(ICoverageSession removedSession) {
230       l.add("REMOVED"); l.add(removedSession);
231     }
232
233     public void sessionActivated(ICoverageSession session) {
234       l.add("ACTIVATED"); l.add(session);
235     }
236
237     public boolean equals(Object JavaDoc obj) {
238       if (obj instanceof RecordingListener) {
239         return l.equals(((RecordingListener) obj).l);
240       } else {
241         return false;
242       }
243     }
244
245     public int hashCode() {
246       return l.hashCode();
247     }
248
249     public String JavaDoc toString() {
250       return l.toString();
251     }
252     
253   }
254   
255 }
256
Popular Tags