X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-dom-it%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Ftest%2Fconnect%2Fdom%2FBrokerIntegrationTest.java;h=2d7f44d3a3221b4693f2b717b4eb0f984f48c9d6;hp=481a7ddfa2c42863b3cb17b17826d0a5748fa778;hb=4f82c49691f091f0ba6b09a07525edb246f17321;hpb=323b96d1675c259f56ab2cbdd4711e40c8a56e3f diff --git a/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/connect/dom/BrokerIntegrationTest.java b/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/connect/dom/BrokerIntegrationTest.java index 481a7ddfa2..2d7f44d3a3 100644 --- a/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/connect/dom/BrokerIntegrationTest.java +++ b/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/connect/dom/BrokerIntegrationTest.java @@ -8,112 +8,81 @@ package org.opendaylight.controller.sal.binding.test.connect.dom; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; - -import java.util.concurrent.Future; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import com.google.common.base.Optional; +import java.util.concurrent.TimeUnit; import org.junit.Test; -import org.opendaylight.controller.md.sal.common.api.TransactionStatus; -import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction; +import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; +import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.sal.binding.test.AbstractDataServiceTest; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; -import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.Top; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.TopLevelList; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.TopLevelListBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.TopLevelListKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.RpcResult; -// FIXME: Migrate to use new Data Broker APIs -@SuppressWarnings("deprecation") public class BrokerIntegrationTest extends AbstractDataServiceTest { + private static final TopLevelListKey TLL_FOO_KEY = new TopLevelListKey("foo"); + private static final TopLevelListKey TLL_BAR_KEY = new TopLevelListKey("bar"); + private static final TopLevelListKey TLL_BAZ_KEY = new TopLevelListKey("baz"); + private static final InstanceIdentifier TOP_PATH = InstanceIdentifier.builder(Top.class).build(); + private static final InstanceIdentifier FOO_PATH = TOP_PATH.child(TopLevelList.class, TLL_FOO_KEY); + private static final InstanceIdentifier BAR_PATH = TOP_PATH.child(TopLevelList.class, TLL_BAR_KEY); + private static final InstanceIdentifier BAZ_PATH = TOP_PATH.child(TopLevelList.class, TLL_BAZ_KEY); + @Test public void simpleModifyOperation() throws Exception { - NodeRef node1 = createNodeRef("0"); - DataObject node = baDataService.readConfigurationData(node1.getValue()); - assertNull(node); - Node nodeData1 = createNode("0"); - - DataModificationTransaction transaction = baDataService.beginTransaction(); - transaction.putConfigurationData(node1.getValue(), nodeData1); - Future> commitResult = transaction.commit(); - assertNotNull(commitResult); - - RpcResult result = commitResult.get(); - - assertNotNull(result); - assertNotNull(result.getResult()); - assertEquals(TransactionStatus.COMMITED, result.getResult()); - - Node readedData = (Node) baDataService.readConfigurationData(node1.getValue()); - assertNotNull(readedData); - assertEquals(nodeData1.getKey(), readedData.getKey()); - - NodeRef nodeFoo = createNodeRef("foo"); - NodeRef nodeBar = createNodeRef("bar"); - Node nodeFooData = createNode("foo"); - Node nodeBarData = createNode("bar"); - - DataModificationTransaction insertMoreTr = baDataService.beginTransaction(); - insertMoreTr.putConfigurationData(nodeFoo.getValue(), nodeFooData); - insertMoreTr.putConfigurationData(nodeBar.getValue(), nodeBarData); - RpcResult result2 = insertMoreTr.commit().get(); - - assertNotNull(result2); - assertNotNull(result2.getResult()); - assertEquals(TransactionStatus.COMMITED, result.getResult()); - - Nodes allNodes = (Nodes) baDataService.readConfigurationData(InstanceIdentifier.builder(Nodes.class) - .toInstance()); - assertNotNull(allNodes); - assertNotNull(allNodes.getNode()); - assertEquals(3, allNodes.getNode().size()); - - /** - * We create transaction no 2 - * - */ - DataModificationTransaction removalTransaction = baDataService.beginTransaction(); - assertNotNull(transaction); - - /** - * We remove node 1 - * - */ - removalTransaction.removeConfigurationData(node1.getValue()); - - /** - * We commit transaction - */ - Future> commitResult2 = removalTransaction.commit(); - assertNotNull(commitResult2); - - RpcResult result3 = commitResult2.get(); - - assertNotNull(result3); - assertNotNull(result3.getResult()); - assertEquals(TransactionStatus.COMMITED, result2.getResult()); - - DataObject readedData2 = baDataService.readConfigurationData(node1.getValue()); - assertNull(readedData2); - } + DataBroker dataBroker = testContext.getDataBroker(); + Optional tllFoo = dataBroker.newReadOnlyTransaction().read( + LogicalDatastoreType.CONFIGURATION, FOO_PATH).checkedGet(5, TimeUnit.SECONDS); + assertFalse(tllFoo.isPresent()); + + TopLevelList tllFooData = createTll(TLL_FOO_KEY); + + final WriteTransaction transaction = dataBroker.newWriteOnlyTransaction(); + transaction.put(LogicalDatastoreType.CONFIGURATION, FOO_PATH, tllFooData); + transaction.submit().get(5, TimeUnit.SECONDS); + + Optional readedData = dataBroker.newReadOnlyTransaction().read( + LogicalDatastoreType.CONFIGURATION, FOO_PATH).checkedGet(5, TimeUnit.SECONDS); + assertTrue(readedData.isPresent()); + assertEquals(tllFooData.getKey(), readedData.get().getKey()); + + TopLevelList nodeBarData = createTll(TLL_BAR_KEY); + TopLevelList nodeBazData = createTll(TLL_BAZ_KEY); + + final WriteTransaction insertMoreTr = dataBroker.newWriteOnlyTransaction(); + insertMoreTr.put(LogicalDatastoreType.CONFIGURATION, BAR_PATH, nodeBarData); + insertMoreTr.put(LogicalDatastoreType.CONFIGURATION, BAZ_PATH, nodeBazData); + insertMoreTr.submit().get(5, TimeUnit.SECONDS); + + Optional top = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, TOP_PATH) + .checkedGet(5, TimeUnit.SECONDS); + assertTrue(top.isPresent()); + assertEquals(3, top.get().getTopLevelList().size()); + + // We create transaction no 2 + final WriteTransaction removalTransaction = dataBroker.newWriteOnlyTransaction(); + + // We remove node 1 + removalTransaction.delete(LogicalDatastoreType.CONFIGURATION, BAR_PATH); + + // We commit transaction + removalTransaction.submit().get(5, TimeUnit.SECONDS); - private static NodeRef createNodeRef(final String string) { - NodeKey key = new NodeKey(new NodeId(string)); - InstanceIdentifier path = InstanceIdentifier.builder(Nodes.class).child(Node.class, key) - .toInstance(); - return new NodeRef(path); + Optional readedData2 = dataBroker.newReadOnlyTransaction().read( + LogicalDatastoreType.CONFIGURATION, BAR_PATH).checkedGet(5, TimeUnit.SECONDS); + assertFalse(readedData2.isPresent()); } - private static Node createNode(final String string) { - NodeBuilder ret = new NodeBuilder(); - ret.setId(new NodeId(string)); - ret.setKey(new NodeKey(ret.getId())); + private static TopLevelList createTll(final TopLevelListKey key) { + TopLevelListBuilder ret = new TopLevelListBuilder(); + ret.setKey(key); return ret.build(); } }