04a4a2c7fbea0a8d3c18926b271400fd728d3d06
[yangtools.git] / third-party / triemap / src / test / java / com / romix / scala / collection / concurrent / TestSerialization.java
1 package com.romix.scala.collection.concurrent;
2
3 import java.io.ByteArrayInputStream;
4 import java.io.ByteArrayOutputStream;
5 import java.io.IOException;
6 import java.io.ObjectInputStream;
7 import java.io.ObjectOutputStream;
8
9 import junit.framework.Assert;
10
11 import org.junit.Test;
12
13 public class TestSerialization {
14     @Test
15     public void testSerialization() throws IOException, ClassNotFoundException {
16         TrieMap<String, String> map = new TrieMap<String, String>();
17
18         map.put("dude-0", "tom");
19         map.put("dude-1", "john");
20         map.put("dude-3", "ravi");
21         map.put("dude-4", "alex");
22
23         TrieMap<String, String> expected = map.readOnlySnapshot();
24
25         final ByteArrayOutputStream bos = new ByteArrayOutputStream();
26         final ObjectOutputStream oos = new ObjectOutputStream(bos);
27         oos.writeObject(expected);
28         oos.close();
29
30         final byte[] bytes = bos.toByteArray();
31         final ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
32         final ObjectInputStream ois = new ObjectInputStream(bis);
33
34         @SuppressWarnings("unchecked")
35         final TrieMap<String, String> actual = (TrieMap<String, String>) ois.readObject();
36         ois.close();
37
38         Assert.assertEquals(expected, actual);
39     }
40 }