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.assertNotNull;
12 import static org.junit.Assert.assertTrue;
13 import static org.opendaylight.controller.cluster.access.commands.TransactionModification.TYPE_WRITE;
15 import com.google.common.base.MoreObjects;
16 import com.google.common.collect.Lists;
17 import java.util.List;
18 import java.util.Optional;
19 import org.junit.Assert;
20 import org.junit.Test;
21 import org.opendaylight.controller.cluster.access.ABIVersion;
22 import org.opendaylight.yangtools.yang.common.QName;
23 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
24 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
25 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
26 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
28 public class ModifyTransactionRequestTest extends AbstractTransactionRequestTest<ModifyTransactionRequest> {
29 private static final ContainerNode NODE = Builders.containerBuilder().withNodeIdentifier(
30 NodeIdentifier.create(QName.create("namespace", "localName"))).build();
32 private static final List<TransactionModification> MODIFICATIONS = Lists.newArrayList(
33 new TransactionWrite(YangInstanceIdentifier.empty(), NODE));
35 private static final PersistenceProtocol PROTOCOL = PersistenceProtocol.ABORT;
37 private static final ModifyTransactionRequest OBJECT = new ModifyTransactionRequest(
38 TRANSACTION_IDENTIFIER, 0, ACTOR_REF, MODIFICATIONS, PROTOCOL);
41 protected ModifyTransactionRequest object() {
46 public void getPersistenceProtocolTest() {
47 final Optional<PersistenceProtocol> result = OBJECT.getPersistenceProtocol();
48 assertTrue(result.isPresent());
49 assertEquals(PROTOCOL, result.get());
53 public void getModificationsTest() {
54 final List<TransactionModification> result = OBJECT.getModifications();
55 assertNotNull(result);
56 assertEquals(MODIFICATIONS, result);
60 public void addToStringAttributesTest() {
61 final MoreObjects.ToStringHelper result = OBJECT.addToStringAttributes(MoreObjects.toStringHelper(OBJECT));
62 assertTrue(result.toString().contains("modifications=1"));
63 assertTrue(result.toString().contains("protocol=" + PROTOCOL));
67 public void cloneAsVersionTest() {
68 final ModifyTransactionRequest clone = OBJECT.cloneAsVersion(ABIVersion.BORON);
69 Assert.assertEquals(OBJECT, clone);
73 protected void doAdditionalAssertions(final Object deserialize) {
74 assertTrue(deserialize instanceof ModifyTransactionRequest);
75 final ModifyTransactionRequest casted = (ModifyTransactionRequest) deserialize;
77 assertEquals(OBJECT.getReplyTo(), casted.getReplyTo());
78 assertEquals(OBJECT.getPersistenceProtocol(), casted.getPersistenceProtocol());
80 assertNotNull(casted.getModifications());
81 assertEquals(1, casted.getModifications().size());
82 final TransactionModification modification = casted.getModifications().get(0);
83 assertEquals(YangInstanceIdentifier.empty(), modification.getPath());
84 assertEquals(TYPE_WRITE, modification.getType());