2 * Copyright (c) 2017 Pantheon Technologies s.r.o. 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.access.commands;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertTrue;
13 import akka.actor.ActorRef;
14 import akka.actor.ActorSystem;
15 import akka.actor.Props;
16 import akka.testkit.TestActors;
17 import org.junit.Before;
18 import org.junit.Test;
19 import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier;
20 import org.opendaylight.controller.cluster.access.concepts.FrontendIdentifier;
21 import org.opendaylight.controller.cluster.access.concepts.FrontendType;
22 import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier;
23 import org.opendaylight.controller.cluster.access.concepts.MemberName;
24 import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
25 import org.opendaylight.yangtools.yang.common.QName;
26 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
27 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
28 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
29 import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
31 public class ModifyTransactionRequestBuilderTest {
32 private final MemberName memberName = MemberName.forName("member-1");
33 private final FrontendType frontendType = FrontendType.forName("test");
34 private final FrontendIdentifier frontendId = FrontendIdentifier.create(memberName, frontendType);
35 private final ClientIdentifier clientId = ClientIdentifier.create(frontendId, 0);
36 private final TransactionIdentifier transactionIdentifier =
37 new TransactionIdentifier(new LocalHistoryIdentifier(clientId, 0L), 0L);
38 private final ActorRef actorRef = ActorSystem.create("test").actorOf(Props.create(TestActors.EchoActor.class));
39 private final NormalizedNode node = ImmutableNodes.newContainerBuilder()
40 .withNodeIdentifier(new NodeIdentifier(QName.create("namespace", "localName")))
42 private final TransactionModification transactionModification =
43 new TransactionWrite(YangInstanceIdentifier.of(), node);
44 private final ModifyTransactionRequestBuilder modifyTransactionRequestBuilder =
45 new ModifyTransactionRequestBuilder(transactionIdentifier, actorRef);
49 modifyTransactionRequestBuilder.setSequence(0L);
50 modifyTransactionRequestBuilder.addModification(transactionModification);
51 assertEquals(1, modifyTransactionRequestBuilder.size());
55 public void testGetIdentifier() {
56 final var identifier = modifyTransactionRequestBuilder.getIdentifier();
57 assertEquals(transactionIdentifier, identifier);
61 public void testBuildReady() {
62 modifyTransactionRequestBuilder.setReady();
63 final var modifyTransactionRequest = modifyTransactionRequestBuilder.build();
64 assertEquals(PersistenceProtocol.READY, modifyTransactionRequest.getPersistenceProtocol().orElseThrow());
65 assertEquals(transactionModification, modifyTransactionRequest.getModifications().get(0));
69 public void testBuildAbort() {
70 modifyTransactionRequestBuilder.setAbort();
71 final var modifyTransactionRequest = modifyTransactionRequestBuilder.build();
72 assertEquals(PersistenceProtocol.ABORT, modifyTransactionRequest.getPersistenceProtocol().orElseThrow());
73 assertTrue(modifyTransactionRequest.getModifications().isEmpty());
77 public void testBuildCommitTrue() {
78 modifyTransactionRequestBuilder.setCommit(true);
79 final var modifyTransactionRequest = modifyTransactionRequestBuilder.build();
80 assertEquals(PersistenceProtocol.THREE_PHASE, modifyTransactionRequest.getPersistenceProtocol().orElseThrow());
84 public void testBuildCommitFalse() {
85 modifyTransactionRequestBuilder.setCommit(false);
86 final var modifyTransactionRequest = modifyTransactionRequestBuilder.build();
87 assertEquals(PersistenceProtocol.SIMPLE, modifyTransactionRequest.getPersistenceProtocol().orElseThrow());