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%2Fbugfix%2FDOMCodecBug03Test.java;h=ba4a024b7cd3cd579e5aac7ac00f8976d4545287;hp=dd8eaa7d5f6f821a54c9694c7469e0b96e0d9d49;hb=7b42069b2ddc0739e141236345ff28b3b6fc7557;hpb=04da6ab70e5cefc3df74fa2f49d20085e5e76cc0 diff --git a/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/DOMCodecBug03Test.java b/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/DOMCodecBug03Test.java index dd8eaa7d5f..ba4a024b7c 100644 --- a/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/DOMCodecBug03Test.java +++ b/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/DOMCodecBug03Test.java @@ -22,22 +22,20 @@ import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent; import org.opendaylight.controller.sal.binding.api.data.DataChangeListener; import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction; import org.opendaylight.controller.sal.binding.test.AbstractDataServiceTest; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.flow.node.SupportedActions; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.flow.node.SupportedActionsBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.flow.node.supported.actions.ActionType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.flow.node.supported.actions.ActionTypeBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.SupportType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey; -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.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.CustomEnum; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.TllComplexAugment; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.TllComplexAugmentBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.Cont2; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.Cont2Builder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.cont2.Contlist1; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.cont2.Contlist1Builder; +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.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.top.level.list.NestedList; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.top.level.list.NestedListBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.top.level.list.NestedListKey; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.QName; @@ -49,42 +47,42 @@ import com.google.common.util.concurrent.SettableFuture; @SuppressWarnings("deprecation") public class DOMCodecBug03Test extends AbstractDataServiceTest implements DataChangeListener { - private static final QName NODE_ID_QNAME = QName.create(Node.QNAME, "id"); - private static final String NODE_ID = "openflow:1"; + private static final QName TOP_LEVEL_LIST_NAME_QNAME = QName.create(TopLevelList.QNAME, "name"); + private static final String TOP_LEVEL_LIST_NAME = "tll:foo"; - private static final NodeKey NODE_KEY = new NodeKey(new NodeId(NODE_ID)); + private static final TopLevelListKey TLL_KEY = new TopLevelListKey(TOP_LEVEL_LIST_NAME); - private static final Map NODE_KEY_BI = Collections. singletonMap(NODE_ID_QNAME, - NODE_ID); + private static final Map TLL_KEY_BI = Collections. singletonMap(TOP_LEVEL_LIST_NAME_QNAME, + TOP_LEVEL_LIST_NAME); - private static final InstanceIdentifier NODES_INSTANCE_ID_BA = InstanceIdentifier.builder(Nodes.class) // + private static final InstanceIdentifier TOP_INSTANCE_ID_BA = InstanceIdentifier.builder(Top.class) // .toInstance(); - private static final InstanceIdentifier NODE_INSTANCE_ID_BA = NODES_INSTANCE_ID_BA.child(Node.class, NODE_KEY); + private static final InstanceIdentifier TLL_INSTANCE_ID_BA = TOP_INSTANCE_ID_BA.child(TopLevelList.class, TLL_KEY); - private static final InstanceIdentifier SUPPORTED_ACTIONS_INSTANCE_ID_BA = // - NODES_INSTANCE_ID_BA.builder() // - .child(Node.class, NODE_KEY) // - .augmentation(FlowCapableNode.class) // - .child(SupportedActions.class) + private static final InstanceIdentifier CONT2_INSTANCE_ID_BA = // + TOP_INSTANCE_ID_BA.builder() // + .child(TopLevelList.class, TLL_KEY) // + .augmentation(TllComplexAugment.class) // + .child(Cont2.class) .toInstance(); - private static final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier NODE_INSTANCE_ID_BI = // - org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.builder() // - .node(Nodes.QNAME) // - .nodeWithKey(Node.QNAME, NODE_KEY_BI) // + private static final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier TLL_INSTANCE_ID_BI = // + org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.builder() // + .node(Top.QNAME) // + .nodeWithKey(TopLevelList.QNAME, TLL_KEY_BI) // .toInstance(); - private static final QName SUPPORTED_ACTIONS_QNAME = QName.create(FlowCapableNode.QNAME, SupportedActions.QNAME.getLocalName()); + private static final QName CONT2_QNAME = QName.create(TllComplexAugment.QNAME, Cont2.QNAME.getLocalName()); - private static final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier SUPPORTED_ACTIONS_INSTANCE_ID_BI = // - org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.builder() // - .node(Nodes.QNAME) // - .nodeWithKey(Node.QNAME, NODE_KEY_BI) // - .node(SUPPORTED_ACTIONS_QNAME) // + private static final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier CONT2_INSTANCE_ID_BI = // + org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.builder() // + .node(Top.QNAME) // + .nodeWithKey(TopLevelList.QNAME, TLL_KEY_BI) // + .node(CONT2_QNAME) // .toInstance(); private final SettableFuture, DataObject>> receivedChangeEvent = SettableFuture.create(); @@ -100,24 +98,22 @@ public class DOMCodecBug03Test extends AbstractDataServiceTest implements DataCh public void testAugmentSerialization() throws Exception { - baDataService.registerDataChangeListener(NODES_INSTANCE_ID_BA, this); + baDataService.registerDataChangeListener(TOP_INSTANCE_ID_BA, this); - NodeBuilder nodeBuilder = new NodeBuilder(); - nodeBuilder.setId(new NodeId(NODE_ID)); - nodeBuilder.setKey(NODE_KEY); + TopLevelListBuilder tllBuilder = new TopLevelListBuilder(); + tllBuilder.setKey(TLL_KEY); DataModificationTransaction transaction = baDataService.beginTransaction(); - FlowCapableNodeBuilder fnub = new FlowCapableNodeBuilder(); - fnub.setHardware("Hardware Foo"); - fnub.setManufacturer("Manufacturer Foo"); - fnub.setSerialNumber("Serial Foo"); - fnub.setDescription("Description Foo"); - fnub.setSoftware("JUnit emulated"); - FlowCapableNode fnu = fnub.build(); - nodeBuilder.addAugmentation(FlowCapableNode.class, fnu); - Node original = nodeBuilder.build(); - transaction.putOperationalData(NODE_INSTANCE_ID_BA, original); + TllComplexAugmentBuilder tllcab = new TllComplexAugmentBuilder(); + tllcab.setAttrStr1("Hardware Foo"); + tllcab.setAttrStr2("Manufacturer Foo"); + tllcab.setAttrStr3("Serial Foo"); + tllcab.setAttrStr4("Description Foo"); + TllComplexAugment tlca = tllcab.build(); + tllBuilder.addAugmentation(TllComplexAugment.class, tlca); + TopLevelList original = tllBuilder.build(); + transaction.putOperationalData(TLL_INSTANCE_ID_BA, original); RpcResult result = transaction.commit().get(); assertEquals(TransactionStatus.COMMITED, result.getResult()); @@ -125,13 +121,13 @@ public class DOMCodecBug03Test extends AbstractDataServiceTest implements DataCh DataChangeEvent, DataObject> potential = receivedChangeEvent.get(1000,TimeUnit.MILLISECONDS); assertNotNull(potential); - verifyNodes((Nodes) potential.getUpdatedOperationalSubtree(),original); - assertBindingIndependentVersion(NODE_INSTANCE_ID_BI); - Nodes nodes = checkForNodes(); - verifyNodes(nodes,original); + verifyTll((Top) potential.getUpdatedOperationalSubtree(),original); + assertBindingIndependentVersion(TLL_INSTANCE_ID_BI); + Top top = checkForTop(); + verifyTll(top,original); testAddingNodeConnector(); - testNodeRemove(); + testTllRemove(); } @@ -139,80 +135,77 @@ public class DOMCodecBug03Test extends AbstractDataServiceTest implements DataCh public void testAugmentNestedSerialization() throws Exception { DataModificationTransaction transaction = baDataService.beginTransaction(); - SupportedActionsBuilder actions = new SupportedActionsBuilder(); - ActionTypeBuilder action = new ActionTypeBuilder(); - action.setAction("foo-action"); - action.setSupportState(SupportType.Native); - List actionTypes = Collections.singletonList(action.build()); - actions.setActionType(actionTypes ); + Cont2Builder cont2b = new Cont2Builder(); + Contlist1Builder cl1b = new Contlist1Builder(); + cl1b.setAttrStr("foo-action"); + cl1b.setAttrEnum(CustomEnum.Type1); + List contlists = Collections.singletonList(cl1b.build()); + cont2b.setContlist1(contlists); - transaction.putOperationalData(SUPPORTED_ACTIONS_INSTANCE_ID_BA, actions.build()); + transaction.putOperationalData(CONT2_INSTANCE_ID_BA, cont2b.build()); RpcResult putResult = transaction.commit().get(); assertNotNull(putResult); assertEquals(TransactionStatus.COMMITED, putResult.getResult()); - SupportedActions readedTable = (SupportedActions) baDataService.readOperationalData(SUPPORTED_ACTIONS_INSTANCE_ID_BA); + Cont2 readedTable = (Cont2) baDataService.readOperationalData(CONT2_INSTANCE_ID_BA); assertNotNull(readedTable); - CompositeNode biSupportedActions = biDataService.readOperationalData(SUPPORTED_ACTIONS_INSTANCE_ID_BI); + CompositeNode biSupportedActions = biDataService.readOperationalData(CONT2_INSTANCE_ID_BI); assertNotNull(biSupportedActions); } private void testAddingNodeConnector() throws Exception { - - NodeConnectorId ncId = new NodeConnectorId("openflow:1:bar"); - NodeConnectorKey nodeKey = new NodeConnectorKey(ncId ); - InstanceIdentifier ncInstanceId = NODE_INSTANCE_ID_BA.child(NodeConnector.class, nodeKey); - NodeConnectorBuilder ncBuilder = new NodeConnectorBuilder(); - ncBuilder.setId(ncId); - ncBuilder.setKey(nodeKey); - NodeConnector connector = ncBuilder.build(); + NestedListKey nlKey = new NestedListKey("test:0:0"); + InstanceIdentifier ncInstanceId = TLL_INSTANCE_ID_BA.child(NestedList.class, nlKey); + NestedListBuilder nlBuilder = new NestedListBuilder(); + nlBuilder.setKey(nlKey); + NestedList nestedList = nlBuilder.build(); DataModificationTransaction transaction = baDataService.beginTransaction(); - transaction.putOperationalData(ncInstanceId, connector); + transaction.putOperationalData(ncInstanceId, nestedList); RpcResult result = transaction.commit().get(); assertEquals(TransactionStatus.COMMITED, result.getResult()); - Node node = (Node) baDataService.readOperationalData(NODE_INSTANCE_ID_BA); - assertNotNull(node); - assertNotNull(node.getNodeConnector()); - assertFalse(node.getNodeConnector().isEmpty()); - NodeConnector readedNc = node.getNodeConnector().get(0); - assertNotNull(readedNc); + TopLevelList tll = (TopLevelList) baDataService.readOperationalData(TLL_INSTANCE_ID_BA); + assertNotNull(tll); + assertNotNull(tll.getNestedList()); + assertFalse(tll.getNestedList().isEmpty()); + NestedList readedNl = tll.getNestedList().get(0); + assertNotNull(readedNl); } - private void testNodeRemove() throws Exception { + private void testTllRemove() throws Exception { DataModificationTransaction transaction = baDataService.beginTransaction(); - transaction.removeOperationalData(NODE_INSTANCE_ID_BA); + transaction.removeOperationalData(TLL_INSTANCE_ID_BA); RpcResult result = transaction.commit().get(); assertEquals(TransactionStatus.COMMITED, result.getResult()); - Node node = (Node) baDataService.readOperationalData(NODE_INSTANCE_ID_BA); - assertNull(node); + TopLevelList tll = (TopLevelList) baDataService.readOperationalData(TLL_INSTANCE_ID_BA); + assertNull(tll); } - private void verifyNodes(final Nodes nodes,final Node original) { - assertNotNull(nodes); - assertNotNull(nodes.getNode()); - assertEquals(1, nodes.getNode().size()); - Node readedNode = nodes.getNode().get(0); - assertEquals(original.getId(), readedNode.getId()); + private void verifyTll(final Top top,final TopLevelList original) { + assertNotNull(top); + assertNotNull(top.getTopLevelList()); + assertEquals(1, top.getTopLevelList().size()); + TopLevelList readedNode = top.getTopLevelList().get(0); + assertEquals(original.getName(), readedNode.getName()); assertEquals(original.getKey(), readedNode.getKey()); - FlowCapableNode fnu = original.getAugmentation(FlowCapableNode.class); - FlowCapableNode readedAugment = readedNode.getAugmentation(FlowCapableNode.class); + TllComplexAugment fnu = original.getAugmentation(TllComplexAugment.class); + TllComplexAugment readedAugment = readedNode.getAugmentation(TllComplexAugment.class); assertNotNull(fnu); - assertEquals(fnu.getDescription(), readedAugment.getDescription()); - assertEquals(fnu.getSerialNumber(), readedAugment.getSerialNumber()); + assertEquals(fnu.getAttrStr2(), readedAugment.getAttrStr2()); + assertEquals(fnu.getAttrStr3(), readedAugment.getAttrStr3()); } private void assertBindingIndependentVersion( - final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier nodeId) { + final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier nodeId) { CompositeNode node = biDataService.readOperationalData(nodeId); assertNotNull(node); } - private Nodes checkForNodes() { - return (Nodes) baDataService.readOperationalData(NODES_INSTANCE_ID_BA); + private Top checkForTop() { + return (Top) baDataService.readOperationalData(TOP_INSTANCE_ID_BA); } @Override