<groupId>org.opendaylight.controller</groupId>
<artifactId>sal-clustering-commons</artifactId>
</dependency>
+
+ <!-- Testing dependencies -->
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>mockito-configuration</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.typesafe.akka</groupId>
+ <artifactId>akka-testkit_${scala.version}</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
--- /dev/null
+/*
+ * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.cluster.access.commands;
+
+import akka.actor.ActorRef;
+import akka.actor.ActorSystem;
+import akka.testkit.TestProbe;
+import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier;
+import org.opendaylight.controller.cluster.access.concepts.FrontendIdentifier;
+import org.opendaylight.controller.cluster.access.concepts.FrontendType;
+import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier;
+import org.opendaylight.controller.cluster.access.concepts.MemberName;
+import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
+
+public class AbortLocalTransactionRequestTest extends AbstractTransactionRequestTest<AbortLocalTransactionRequest> {
+
+ private static final FrontendIdentifier FRONTEND = FrontendIdentifier.create(
+ MemberName.forName("test"), FrontendType.forName("one"));
+ private static final ClientIdentifier CLIENT = ClientIdentifier.create(FRONTEND, 0);
+ private static final LocalHistoryIdentifier HISTORY = new LocalHistoryIdentifier(CLIENT, 0);
+ private static final TransactionIdentifier TRANSACTION = new TransactionIdentifier(HISTORY, 0);
+
+ private static final ActorSystem SYSTEM = ActorSystem.create("test");
+ private static final ActorRef ACTOR_REF = TestProbe.apply(SYSTEM).ref();
+
+ private static final AbortLocalTransactionRequest OBJECT = new AbortLocalTransactionRequest(TRANSACTION, ACTOR_REF);
+
+ @Override
+ AbortLocalTransactionRequest object() {
+ return OBJECT;
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.cluster.access.commands;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.opendaylight.controller.cluster.access.ABIVersion;
+
+public abstract class AbstractTransactionRequestTest<T extends AbstractLocalTransactionRequest> {
+ abstract T object();
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testExternalizableProxy() {
+ object().externalizableProxy(ABIVersion.BORON);
+ }
+
+ @Test
+ public void cloneAsVersionTest() {
+ Assert.assertEquals(object(), object().cloneAsVersion(ABIVersion.BORON));
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.cluster.access.commands;
+
+import akka.actor.ActorRef;
+import akka.actor.ActorSystem;
+import akka.testkit.TestProbe;
+import com.google.common.base.MoreObjects;
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier;
+import org.opendaylight.controller.cluster.access.concepts.FrontendIdentifier;
+import org.opendaylight.controller.cluster.access.concepts.FrontendType;
+import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier;
+import org.opendaylight.controller.cluster.access.concepts.MemberName;
+import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
+
+public class CommitLocalTransactionRequestTest extends AbstractTransactionRequestTest<CommitLocalTransactionRequest> {
+
+ private static final FrontendIdentifier FRONTEND = FrontendIdentifier.create(
+ MemberName.forName("test"), FrontendType.forName("one"));
+ private static final ClientIdentifier CLIENT = ClientIdentifier.create(FRONTEND, 0);
+ private static final LocalHistoryIdentifier HISTORY = new LocalHistoryIdentifier(CLIENT, 0);
+ private static final TransactionIdentifier TRANSACTION = new TransactionIdentifier(HISTORY, 0);
+
+ private static final ActorSystem SYSTEM = ActorSystem.create("test");
+ private static final ActorRef ACTOR_REF = TestProbe.apply(SYSTEM).ref();
+
+ private static final DataTreeModification MODIFICATION = Mockito.mock(DataTreeModification.class);
+ private static final boolean COORDINATED = Boolean.TRUE;
+
+ private static final CommitLocalTransactionRequest OBJECT = new CommitLocalTransactionRequest(
+ TRANSACTION, 0, ACTOR_REF, MODIFICATION, COORDINATED);
+
+ @Override
+ CommitLocalTransactionRequest object() {
+ return OBJECT;
+ }
+
+ @Test
+ public void getModificationTest() {
+ Assert.assertEquals(MODIFICATION, OBJECT.getModification());
+ }
+
+ @Test
+ public void isCoordinatedTest() {
+ Assert.assertEquals(COORDINATED, OBJECT.isCoordinated());
+ }
+
+ @Test
+ public void addToStringAttributesTest() {
+ final MoreObjects.ToStringHelper result = OBJECT.addToStringAttributes(MoreObjects.toStringHelper(OBJECT));
+ Assert.assertTrue(result.toString().contains("coordinated=" + COORDINATED));
+ }
+}
\ No newline at end of file