X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcds-access-api%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fconcepts%2FAbstractRequestTest.java;h=48ceabef81cd87259df989c49ac9cf917350c6cb;hb=refs%2Fheads%2Fmaster;hp=6bf0088c9655b38fe0d74d761a72f2dfdb21eb63;hpb=02d6a79be57c1cc3eefe9424686fae863acea718;p=controller.git diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestTest.java index 6bf0088c96..48ceabef81 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestTest.java @@ -7,25 +7,66 @@ */ package org.opendaylight.controller.cluster.access.concepts; +import static java.util.Objects.requireNonNull; +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertEquals; + import akka.actor.ActorRef; import akka.actor.ActorSystem; +import akka.actor.ExtendedActorSystem; +import akka.serialization.JavaSerializer; import akka.testkit.TestProbe; import com.google.common.base.MoreObjects; -import org.junit.Assert; +import org.apache.commons.lang3.SerializationUtils; +import org.junit.Before; import org.junit.Test; -public abstract class AbstractRequestTest { +public abstract class AbstractRequestTest> { private static final ActorSystem SYSTEM = ActorSystem.create("test"); protected static final ActorRef ACTOR_REF = TestProbe.apply(SYSTEM).ref(); + private static final int ACTOR_REF_SIZE = ACTOR_REF.path().toSerializationFormat().length(); + + private final T object; + private final int expectedSize; + + protected AbstractRequestTest(final T object, final int baseSize) { + this.object = requireNonNull(object); + this.expectedSize = baseSize + ACTOR_REF_SIZE; + } - protected abstract T object(); + protected final T object() { + return object; + } + + @Before + public void setUp() { + JavaSerializer.currentSystem().value_$eq((ExtendedActorSystem) SYSTEM); + } @Test - public void getReplyToTest() {} + public void getReplyToTest() { + assertEquals(ACTOR_REF, object.getReplyTo()); + } @Test public void addToStringAttributesCommonTest() { - final MoreObjects.ToStringHelper result = object().addToStringAttributes(MoreObjects.toStringHelper(object())); - Assert.assertTrue(result.toString().contains("replyTo=" + ACTOR_REF)); + final var result = object.addToStringAttributes(MoreObjects.toStringHelper(object)); + assertThat(result.toString(), containsString("replyTo=" + ACTOR_REF)); + } + + @Test + public void serializationTest() { + final byte[] bytes = SerializationUtils.serialize(object); + assertEquals(expectedSize, bytes.length); + @SuppressWarnings("unchecked") + final T deserialize = (T) SerializationUtils.deserialize(bytes); + + assertEquals(object.getTarget(), deserialize.getTarget()); + assertEquals(object.getVersion(), deserialize.getVersion()); + assertEquals(object.getSequence(), deserialize.getSequence()); + doAdditionalAssertions(deserialize); } + + protected abstract void doAdditionalAssertions(T deserialize); }