2 * Copyright (c) 2015 Brocade Communications Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.cluster.raft.messages;
10 import static org.junit.Assert.assertEquals;
12 import org.apache.commons.lang3.SerializationUtils;
13 import org.junit.Test;
14 import org.opendaylight.controller.cluster.raft.RaftVersions;
17 * Unit tests for AppendEntriesReply.
19 * @author Thomas Pantelis
21 public class AppendEntriesReplyTest {
23 public void testSerialization() {
24 final var expected = new AppendEntriesReply("follower", 5, true, 100, 4, (short)6, true, true,
25 RaftVersions.CURRENT_VERSION);
27 final var bytes = SerializationUtils.serialize(expected);
28 assertEquals(98, bytes.length);
29 final var cloned = (AppendEntriesReply) SerializationUtils.deserialize(bytes);
31 assertEquals("getTerm", expected.getTerm(), cloned.getTerm());
32 assertEquals("getFollowerId", expected.getFollowerId(), cloned.getFollowerId());
33 assertEquals("getLogLastTerm", expected.getLogLastTerm(), cloned.getLogLastTerm());
34 assertEquals("getLogLastIndex", expected.getLogLastIndex(), cloned.getLogLastIndex());
35 assertEquals("getPayloadVersion", expected.getPayloadVersion(), cloned.getPayloadVersion());
36 assertEquals("getRaftVersion", expected.getRaftVersion(), cloned.getRaftVersion());
37 assertEquals("isForceInstallSnapshot", expected.isForceInstallSnapshot(), cloned.isForceInstallSnapshot());
38 assertEquals("isNeedsLeaderAddress", expected.isNeedsLeaderAddress(), cloned.isNeedsLeaderAddress());
43 public void testPreFluorineSerialization() {
44 final var expected = new AppendEntriesReply("follower", 5, true, 100, 4, (short)6, true, true,
45 RaftVersions.BORON_VERSION);
47 final var bytes = SerializationUtils.serialize(expected);
48 assertEquals(141, bytes.length);
49 final var cloned = (AppendEntriesReply) SerializationUtils.deserialize(bytes);
51 assertEquals("getTerm", expected.getTerm(), cloned.getTerm());
52 assertEquals("getFollowerId", expected.getFollowerId(), cloned.getFollowerId());
53 assertEquals("getLogLastTerm", expected.getLogLastTerm(), cloned.getLogLastTerm());
54 assertEquals("getLogLastIndex", expected.getLogLastIndex(), cloned.getLogLastIndex());
55 assertEquals("getPayloadVersion", expected.getPayloadVersion(), cloned.getPayloadVersion());
56 assertEquals("getRaftVersion", expected.getRaftVersion(), cloned.getRaftVersion());
57 assertEquals("isForceInstallSnapshot", expected.isForceInstallSnapshot(), cloned.isForceInstallSnapshot());
58 assertEquals("isNeedsLeaderAddress", false, cloned.isNeedsLeaderAddress());