package org.async.rmi; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.Serializable; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.not; import static org.junit.Assert.assertThat; /** * Created by Barak Bar Orion * 29/10/14. */ public class MarshalledObjectTest { @SuppressWarnings("UnusedDeclaration") private static final Logger logger = LoggerFactory.getLogger(MarshalledObjectTest.class); @Test(timeout = 5000) public void writeReadPrimitive() throws Exception { int value = 5; MarshalledObject<Integer> mo1 = new MarshalledObject<>(value); MarshalledObject<Integer> mo2 = new MarshalledObject<>(5); MarshalledObject<Integer> mo3 = new MarshalledObject<>(4); assertThat(mo1, equalTo(mo2)); assertThat(mo1, not(equalTo(mo3))); assertThat(mo1.get(), equalTo(5)); } @Test(timeout = 5000) public void writeReadObject() throws Exception { Value value1 = new Value("value1"); Value value2 = new Value("value1"); Value value3 = new Value("value2"); MarshalledObject<Value> mo1 = new MarshalledObject<>(value1); MarshalledObject<Value> mo2 = new MarshalledObject<>(value2); MarshalledObject<Value> mo3 = new MarshalledObject<>(value3); assertThat(mo1, equalTo(mo2)); assertThat(mo1, not(equalTo(mo3))); assertThat(mo1.get(), equalTo(value1)); assertThat(mo1.get().getName(), equalTo(value1.getName())); } private static class Value implements Serializable { private final String name; public Value(String name) { this.name = name; } public String getName() { return name; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Value value = (Value) o; return name.equals(value.name); } @Override public int hashCode() { return name.hashCode(); } } }