1 19 20 package org.netbeans.api.debugger; 21 22 import org.netbeans.api.debugger.test.TestDebuggerManagerListener; 23 import java.beans.PropertyChangeEvent ; 24 import java.util.List ; 25 26 31 public class WatchesTest extends DebuggerApiTestBase { 32 33 public WatchesTest(String s) { 34 super(s); 35 } 36 37 public void testWatches() throws Exception { 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(); TestDebuggerManagerListener.Event event; 61 List 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 pce = (PropertyChangeEvent ) event.getParam(); 66 assertEquals("Wrong PCE name", "watchesInit", pce.getPropertyName()); 67 } 68 69 private void removeWatch(DebuggerManager dm, Watch w, TestDebuggerManagerListener dml) { 70 List 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 pce = (PropertyChangeEvent ) 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 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 pce = (PropertyChangeEvent ) 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 |