public void testInstance() throws Exception {
String tid = Thread.currentThread().getName();
Map map = (Map) singleton.instance();
String expected = "new value";
if (!map.containsKey(tid) && reference.get() != null) {
System.out.println("tid=" + tid + " map=" + map);
System.out.println("reference=" + reference);
System.out.println("singleton=" + singleton);
fail("created singleton more than once");
} else {
map.put(tid, expected);
reference.set(map);
}
String actual = (String) map.get(tid);
// System.out.println("tid="+tid+ " map="+map);
assertEquals("testInstance", expected, actual);
map = (Map) singleton.instance();
expected = "new value";
actual = (String) map.get(tid);
// System.out.println("tid="+tid+ " map="+map);
// System.out.println("reference="+reference);
// System.out.println("singleton="+singleton);
assertEquals("testInstance", expected, actual);
assertEquals("testInstance reference", reference.get(), map);
}
|