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