public void testEqualsAfterSerialization() throws IOException, ClassNotFoundException { SystemHashCodeSimulatingKey sysKey = new SystemHashCodeSimulatingKey("test"); MultiKey mk = new MultiKey(ONE, sysKey); Map map = new HashMap(); map.put(mk, TWO); // serialize ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(baos); out.writeObject(sysKey); out.writeObject(map); out.close(); // deserialize ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); ObjectInputStream in = new ObjectInputStream(bais); sysKey = (SystemHashCodeSimulatingKey) in.readObject(); // simulate deserialization in another process Map map2 = (Map) in.readObject(); in.close(); assertEquals(2, sysKey.hashCode()); // different hashCode now MultiKey mk2 = new MultiKey(ONE, sysKey); assertEquals(TWO, map2.get(mk2)); } }
public void testConstructorsByArrayNull() throws Exception { Object[] keys = null; try { new MultiKey(keys); fail(); } catch (IllegalArgumentException ex) {} try { new MultiKey(keys, true); fail(); } catch (IllegalArgumentException ex) {} try { new MultiKey(keys, false); fail(); } catch (IllegalArgumentException ex) {} }
public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(TestDefaultKeyValue.suite()); suite.addTest(TestDefaultMapEntry.suite()); suite.addTest(TestMultiKey.suite()); suite.addTest(TestTiedMapEntry.suite()); suite.addTest(TestUnmodifiableMapEntry.suite()); return suite; }