KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > api > debugger > WatchesTest


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.api.debugger;
21
22 import org.netbeans.api.debugger.test.TestDebuggerManagerListener;
23 import java.beans.PropertyChangeEvent JavaDoc;
24 import java.util.List JavaDoc;
25
26 /**
27  * Tests DebuggerManager's Watches management.
28  *
29  * @author Maros Sandor
30  */

31 public class WatchesTest extends DebuggerApiTestBase {
32
33     public WatchesTest(String JavaDoc s) {
34         super(s);
35     }
36
37     public void testWatches() throws Exception JavaDoc {
38         DebuggerManager dm = DebuggerManager.getDebuggerManager();
39         TestDebuggerManagerListener dml = new TestDebuggerManagerListener();
40
41         dm.addDebuggerListener(dml);
42
43         initWatches(dm, dml);
44         Watch w1 = addWatch(dm, dml);
45         Watch w2 = addWatch(dm, dml);
46         Watch w3 = addWatch(dm, dml);
47         removeWatch(dm, w2, dml);
48         removeWatch(dm, w3, dml);
49         Watch w4 = addWatch(dm, dml);
50         removeWatch(dm, w1, dml);
51         Watch w5 = addWatch(dm, dml);
52         removeWatch(dm, w5, dml);
53         removeWatch(dm, w4, dml);
54
55         dm.removeDebuggerListener(dml);
56     }
57
58     private void initWatches(DebuggerManager dm, TestDebuggerManagerListener dml) {
59         dm.getWatches(); // trigger the "watchesInit" property change
60
TestDebuggerManagerListener.Event event;
61         List JavaDoc events = dml.getEvents();
62         assertEquals("Wrong PCS", 1, events.size());
63         event = (TestDebuggerManagerListener.Event) events.get(0);
64         assertEquals("Wrong PCS", "propertyChange", event.getName());
65         PropertyChangeEvent JavaDoc pce = (PropertyChangeEvent JavaDoc) event.getParam();
66         assertEquals("Wrong PCE name", "watchesInit", pce.getPropertyName());
67     }
68
69     private void removeWatch(DebuggerManager dm, Watch w, TestDebuggerManagerListener dml) {
70         List JavaDoc events;
71         TestDebuggerManagerListener.Event event;
72         Watch [] watches = dm.getWatches();
73
74         dm.removeWatch(w);
75         events = dml.getEvents();
76         assertEquals("Wrong PCS", 2, events.size());
77         assertTrue("Wrong PCS", events.remove(new TestDebuggerManagerListener.Event("watchRemoved", w)));
78         event = (TestDebuggerManagerListener.Event) events.get(0);
79         assertEquals("Wrong PCS", "propertyChange", event.getName());
80         PropertyChangeEvent JavaDoc pce = (PropertyChangeEvent JavaDoc) event.getParam();
81         assertEquals("Wrong PCE name", "watches", pce.getPropertyName());
82         Watch [] newWatches = dm.getWatches();
83         for (int i = 0; i < newWatches.length; i++) {
84             assertNotSame("Watch was not removed", newWatches[i], w);
85         }
86         assertEquals("Wrong number of installed watches", watches.length - 1, newWatches.length);
87     }
88
89     private Watch addWatch(DebuggerManager dm, TestDebuggerManagerListener dml) {
90         List JavaDoc events;
91         TestDebuggerManagerListener.Event event;
92
93         int watchesSize = dm.getWatches().length;
94         Watch newWatch = dm.createWatch("watch");
95         events = dml.getEvents();
96         assertEquals("Wrong PCS", 2, events.size());
97         assertTrue("Wrong PCS", events.remove(new TestDebuggerManagerListener.Event("watchAdded", newWatch)));
98         event = (TestDebuggerManagerListener.Event) events.get(0);
99         assertEquals("Wrong PCS", "propertyChange", event.getName());
100         PropertyChangeEvent JavaDoc pce = (PropertyChangeEvent JavaDoc) event.getParam();
101         assertEquals("Wrong PCE name", "watches", pce.getPropertyName());
102         Watch [] watches = dm.getWatches();
103         assertEquals("Wrong number of installed watches", watchesSize + 1, watches.length);
104         return newWatch;
105     }
106
107 }
108
Popular Tags