X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-dom-it%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Ftest%2Fbugfix%2FPutAugmentationTest.java;h=d9b16af469727f80e66d608dfb576a936ddfa8c9;hb=92b863639542beb0dcb04879426bc8ca58179fbd;hp=96d0361b1dd5194e9665ab89a80c774e64d5cb4a;hpb=616a88111ea9603f0d6f93c7462e6dab39644fcf;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/PutAugmentationTest.java b/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/PutAugmentationTest.java index 96d0361b1d..d9b16af469 100644 --- a/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/PutAugmentationTest.java +++ b/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/PutAugmentationTest.java @@ -12,6 +12,8 @@ import org.opendaylight.controller.sal.binding.api.data.DataChangeListener; import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction; 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.FlowCapableNodeConnector; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorBuilder; 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; @@ -130,8 +132,60 @@ public class PutAugmentationTest extends AbstractDataServiceTest implements Data assertBindingIndependentVersion(NODE_INSTANCE_ID_BI); testNodeRemove(); } + + @Test + public void putNodeWithAugmentation() throws Exception { + + NodeBuilder nodeBuilder = new NodeBuilder(); + nodeBuilder.setId(new NodeId(NODE_ID)); + nodeBuilder.setKey(NODE_KEY); + 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); + DataModificationTransaction baseTransaction = baDataService.beginTransaction(); + baseTransaction.putOperationalData(NODE_INSTANCE_ID_BA, nodeBuilder.build()); + RpcResult result = baseTransaction.commit().get(); + assertEquals(TransactionStatus.COMMITED, result.getResult()); + + FlowCapableNode readedAugmentation = (FlowCapableNode) baDataService.readOperationalData(InstanceIdentifier.builder(NODE_INSTANCE_ID_BA).augmentation(FlowCapableNode.class).toInstance()); + assertNotNull(readedAugmentation); + assertEquals(fnu.getHardware(), readedAugmentation.getHardware()); + + testPutNodeConnectorWithAugmentation(); + testNodeRemove(); + } + private void testPutNodeConnectorWithAugmentation() throws Exception { + NodeConnectorKey ncKey = new NodeConnectorKey(new NodeConnectorId("test:0:0")); + InstanceIdentifier ncPath = InstanceIdentifier.builder(NODE_INSTANCE_ID_BA) + .child(NodeConnector.class, ncKey).toInstance(); + InstanceIdentifier ncAugmentPath = InstanceIdentifier.builder(ncPath) + .augmentation(FlowCapableNodeConnector.class).toInstance(); + + NodeConnectorBuilder nc = new NodeConnectorBuilder(); + nc.setKey(ncKey); + + FlowCapableNodeConnectorBuilder fncb = new FlowCapableNodeConnectorBuilder(); + fncb.setName("Baz"); + nc.addAugmentation(FlowCapableNodeConnector.class, fncb.build()); + + DataModificationTransaction baseTransaction = baDataService.beginTransaction(); + baseTransaction.putOperationalData(ncPath, nc.build()); + RpcResult result = baseTransaction.commit().get(); + assertEquals(TransactionStatus.COMMITED, result.getResult()); + + FlowCapableNodeConnector readedAugmentation = (FlowCapableNodeConnector) baDataService.readOperationalData(ncAugmentPath); + assertNotNull(readedAugmentation); + assertEquals(fncb.getName(), readedAugmentation.getName()); + } + private void testNodeRemove() throws Exception { DataModificationTransaction transaction = baDataService.beginTransaction(); transaction.removeOperationalData(NODE_INSTANCE_ID_BA);