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.schema.NormalizedNode;
28 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
30 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 = Builders.containerBuilder().withNodeIdentifier(
40 YangInstanceIdentifier.NodeIdentifier.create(QName.create("namespace", "localName"))).build();
41 private final TransactionModification transactionModification =
42 new TransactionWrite(YangInstanceIdentifier.of(), node);
43 private final ModifyTransactionRequestBuilder modifyTransactionRequestBuilder =
44 new ModifyTransactionRequestBuilder(transactionIdentifier, actorRef);
48 modifyTransactionRequestBuilder.setSequence(0L);
49 modifyTransactionRequestBuilder.addModification(transactionModification);
50 assertEquals(1, modifyTransactionRequestBuilder.size());
54 public void testGetIdentifier() {
55 final TransactionIdentifier identifier = modifyTransactionRequestBuilder.getIdentifier();
56 assertEquals(transactionIdentifier, identifier);
60 public void testBuildReady() {
61 modifyTransactionRequestBuilder.setReady();
62 final ModifyTransactionRequest modifyTransactionRequest = modifyTransactionRequestBuilder.build();
63 assertEquals(PersistenceProtocol.READY, modifyTransactionRequest.getPersistenceProtocol().orElseThrow());
64 assertEquals(transactionModification, modifyTransactionRequest.getModifications().get(0));
68 public void testBuildAbort() {
69 modifyTransactionRequestBuilder.setAbort();
70 final ModifyTransactionRequest modifyTransactionRequest = modifyTransactionRequestBuilder.build();
71 assertEquals(PersistenceProtocol.ABORT, modifyTransactionRequest.getPersistenceProtocol().orElseThrow());
72 assertTrue(modifyTransactionRequest.getModifications().isEmpty());
76 public void testBuildCommitTrue() {
77 modifyTransactionRequestBuilder.setCommit(true);
78 final ModifyTransactionRequest modifyTransactionRequest = modifyTransactionRequestBuilder.build();
79 assertEquals(PersistenceProtocol.THREE_PHASE, modifyTransactionRequest.getPersistenceProtocol().orElseThrow());
83 public void testBuildCommitFalse() {
84 modifyTransactionRequestBuilder.setCommit(false);
85 final ModifyTransactionRequest modifyTransactionRequest = modifyTransactionRequestBuilder.build();
86 assertEquals(PersistenceProtocol.SIMPLE, modifyTransactionRequest.getPersistenceProtocol().orElseThrow());