1 package com.atlassian.vcache.internal.legacy;
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 static org.hamcrest.Matchers.is;
10 import static org.hamcrest.Matchers.notNullValue;
11 import static org.junit.Assert.assertThat;
12
13 public class IdentifiedDataSerializableTest
14 {
15 @org.junit.Test
16 public void the_basics() throws Exception
17 {
18 final IdentifiedDataSerializable isFirst = new IdentifiedDataSerializable("outrage");
19
20 assertThat(isFirst, notNullValue());
21 assertThat(isFirst.getObject(), is("outrage"));
22 assertThat(isFirst.equals(isFirst), is(true));
23
24 final IdentifiedDataSerializable ibSecond = new IdentifiedDataSerializable("outrage");
25
26 assertThat(ibSecond, notNullValue());
27 assertThat(ibSecond.getObject(), is("outrage"));
28 assertThat(isFirst.getObject(), is(ibSecond.getObject()));
29 assertThat(ibSecond.equals(ibSecond), is(true));
30 assertThat(isFirst.equals(ibSecond), is(false));
31 assertThat(ibSecond.equals(isFirst), is(false));
32 }
33
34 @org.junit.Test
35 public void serialize_works() throws IOException, ClassNotFoundException
36 {
37 final IdentifiedDataSerializable before = new IdentifiedDataSerializable("outrage");
38
39 final ByteArrayOutputStream baos = new ByteArrayOutputStream();
40 final ObjectOutputStream oos = new ObjectOutputStream(baos);
41
42 oos.writeObject(before);
43
44 oos.flush();
45 oos.close();
46
47 final ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
48 final ObjectInputStream ois = new ObjectInputStream(bais);
49
50 final IdentifiedDataSerializable after = (IdentifiedDataSerializable) ois.readObject();
51
52 ois.close();
53
54 assertThat(before.equals(after), is(true));
55 assertThat(after.equals(before), is(true));
56 }
57 }