1 19 20 package org.netbeans.api.debugger; 21 22 import org.netbeans.api.debugger.test.TestLookupServiceFirst; 23 import org.netbeans.api.debugger.test.TestLookupServiceInterface; 24 import org.netbeans.api.debugger.test.TestLookupServiceSecond; 25 26 import java.net.Socket ; 27 import java.util.*; 28 import java.io.Serializable ; 29 30 35 public class LookupTest extends DebuggerApiTestBase { 36 37 public LookupTest(String s) { 38 super(s); 39 } 40 41 public static class LookupContext { 42 } 43 44 public void testCompoundLookup() throws Exception { 45 46 Object stringInstance = "stringInstace"; 47 HashMap hashMapInstance = new HashMap(); 48 Socket socketInstance = new Socket (); 49 TreeMap treeMapInstance = new TreeMap(); 50 StringBuffer sbInstance = new StringBuffer (); 51 Object [] instances = new Object [] { 52 stringInstance, 53 hashMapInstance, 54 socketInstance, 55 treeMapInstance, 56 sbInstance 57 }; 58 59 Object stringInstance2 = "stringInstace"; 60 HashMap hashMapInstance2 = new HashMap(); 61 Socket socketInstance2 = new Socket (); 62 TreeMap treeMapInstance2 = new TreeMap(); 63 StringBuffer sbInstance2 = new StringBuffer (); 64 Object [] instances2 = new Object [] { 65 stringInstance2, 66 hashMapInstance2, 67 socketInstance2, 68 treeMapInstance2, 69 sbInstance2 70 }; 71 72 Lookup l1 = new Lookup.Instance(instances); 73 Lookup l2 = new Lookup.Instance(instances2); 74 75 Lookup.Compound l = new Lookup.Compound(l1, l2); 76 77 List services = l.lookup(null, String .class); 78 assertEquals("Wrong number of objects in lookup", 2, services.size()); 79 assertContains("Wrong looked up object", stringInstance, services); 80 assertContains("Wrong looked up object", stringInstance2, services); 81 82 services = l.lookup(null, Class .class); 83 assertEquals("Wrong number of objects in lookup", 0, services.size()); 84 85 services = l.lookup(null, Serializable .class); 86 assertEquals("Wrong number of objects in lookup", 8, services.size()); 87 assertContains("Wrong looked up object", stringInstance, services); 88 assertContains("Wrong looked up object", stringInstance2, services); 89 assertContains("Wrong looked up object", sbInstance, services); 90 assertContains("Wrong looked up object", sbInstance2, services); 91 assertContains("Wrong looked up object", hashMapInstance, services); 92 assertContains("Wrong looked up object", hashMapInstance2, services); 93 assertContains("Wrong looked up object", treeMapInstance, services); 94 assertContains("Wrong looked up object", treeMapInstance2, services); 95 } 96 97 public void testMetainfLookup() throws Exception { 98 99 Lookup.MetaInf l = new Lookup.MetaInf("unittest"); 100 List list = l.lookup(null, TestLookupServiceFirst.class); 101 assertEquals("Wrong looked up object", 1, list.size()); 102 assertInstanceOf("Wrong looked up object", list.get(0), TestLookupServiceFirst.class); 103 104 Object o = l.lookupFirst(null, TestLookupServiceFirst.class); 105 assertInstanceOf("Wrong looked up object", o, TestLookupServiceFirst.class); 106 107 o = l.lookupFirst(null, TestLookupServiceInterface.class); 108 assertInstanceOf("Wrong looked up object", o, TestLookupServiceSecond.class); 109 110 o = l.lookupFirst(null, TestLookupServiceSecond.class); 111 assertNull("Wrong looked up object", o); 112 } 113 114 public void testEmptyMetainfLookup() throws Exception { 115 116 Lookup.MetaInf l = new Lookup.MetaInf("baddir"); 117 List list = l.lookup(null, TestLookupServiceFirst.class); 118 assertEquals("Wrong looked up object", 0, list.size()); 119 120 Object o = l.lookupFirst(null, TestLookupServiceFirst.class); 121 assertNull("Wrong looked up object", o); 122 } 123 124 public void testEmptyInstanceLookup() throws Exception { 125 126 Object [] instances = new Object [0]; 127 Lookup l = new Lookup.Instance(instances); 128 129 List services = l.lookup(null, Object .class); 130 assertEquals("Wrong number of objects in lookup", 0, services.size()); 131 132 Object o = l.lookupFirst(null, Class .class); 133 assertNull("Wrong looked up object", o); 134 135 o = l.lookupFirst(null, Object .class); 136 assertNull("Wrong looked up object", o); 137 } 138 139 public void testInstanceLookup() throws Exception { 140 141 Object stringInstance = "stringInstace"; 142 HashMap hashMapInstance = new HashMap(); 143 Socket socketInstance = new Socket (); 144 TreeMap treeMapInstance = new TreeMap(); 145 StringBuffer sbInstance = new StringBuffer (); 146 147 Object [] instances = new Object [] { 148 stringInstance, 149 hashMapInstance, 150 socketInstance, 151 treeMapInstance, 152 sbInstance 153 }; 154 Lookup l = new Lookup.Instance(instances); 155 156 List services = l.lookup(null, Object .class); 157 assertEquals("Wrong number of objects in lookup", 5, services.size()); 158 assertContains("Object not present in lookup", stringInstance, services); 159 assertContains("Object not present in lookup", hashMapInstance, services); 160 assertContains("Object not present in lookup", socketInstance, services); 161 assertContains("Object not present in lookup", treeMapInstance, services); 162 assertContains("Object not present in lookup", sbInstance, services); 163 164 services = l.lookup(null, CharSequence .class); 165 assertEquals("Wrong number of objects in lookup", 2, services.size()); 166 assertContains("Object not present in lookup", stringInstance, services); 167 assertContains("Object not present in lookup", sbInstance, services); 168 169 services = l.lookup(null, Serializable .class); 170 assertEquals("Wrong number of objects in lookup", 4, services.size()); 171 assertContains("Object not present in lookup", stringInstance, services); 172 assertContains("Object not present in lookup", hashMapInstance, services); 173 assertContains("Object not present in lookup", treeMapInstance, services); 174 assertContains("Object not present in lookup", sbInstance, services); 175 176 services = l.lookup(null, Class .class); 177 assertEquals("Wrong number of objects in lookup", 0, services.size()); 178 179 Object o = l.lookupFirst(null, Class .class); 180 assertNull("Wrong looked up object", o); 181 182 o = l.lookupFirst(null, Socket .class); 183 assertSame("Wrong looked up object", socketInstance, o); 184 } 185 186 private void assertContains(String msg, Object obj, Collection collection) { 187 for (Iterator i = collection.iterator(); i.hasNext();) { 188 if (i.next() == obj) return; 189 } 190 throw new AssertionError (msg + ": " + obj); 191 } 192 } 193 | Popular Tags |