From: Tomas Cere Date: Mon, 22 Jun 2015 12:57:09 +0000 (+0200) Subject: Add discardChanges branch to unit test X-Git-Tag: release/beryllium~419 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=9d60acc8b06ecf8d6c4af61afbc2fff340d77169 Add discardChanges branch to unit test Add service instance deletion to NetconfMappingTest Change-Id: I25d1ebefde86050c42a2d43ec445feaf8d5889de Signed-off-by: Tomas Cere --- diff --git a/opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/NetconfMappingTest.java b/opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/NetconfMappingTest.java index c78c80fe2b..388a131a56 100644 --- a/opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/NetconfMappingTest.java +++ b/opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/NetconfMappingTest.java @@ -19,6 +19,7 @@ import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; @@ -88,6 +89,9 @@ import org.opendaylight.controller.config.yang.test.impl.Peers; import org.opendaylight.controller.config.yang.test.impl.TestImplModuleFactory; import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry; import org.opendaylight.controller.netconf.api.NetconfDocumentedException; +import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorSeverity; +import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorTag; +import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorType; import org.opendaylight.controller.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit; import org.opendaylight.controller.netconf.confignetconfconnector.operations.DiscardChanges; @@ -281,6 +285,21 @@ public class NetconfMappingTest extends AbstractConfigTest { "ref_dep_user_two", "ref_from_code_to_instance-from-code_dep_1", "ref_from_code_to_instance-from-code_1", "ref_dep_user_another")); + edit("netconfMessages/editConfig_removeServiceNameOnTest.xml"); + config = getConfigCandidate(); + assertCorrectServiceNames(config, Sets.newHashSet("user_to_instance_from_code", "ref_dep_user", + "ref_dep_user_two", "ref_from_code_to_instance-from-code_dep_1", + "ref_from_code_to_instance-from-code_1")); + + try { + edit("netconfMessages/editConfig_removeServiceNameOnTest.xml"); + fail("Should've failed, non-existing service instance"); + } catch (NetconfDocumentedException e) { + assertEquals(e.getErrorSeverity(), ErrorSeverity.error); + assertEquals(e.getErrorTag(), ErrorTag.operation_failed); + assertEquals(e.getErrorType(), ErrorType.application); + } + edit("netconfMessages/editConfig_replace_default.xml"); config = getConfigCandidate(); assertCorrectServiceNames(config, Collections.emptySet()); @@ -619,9 +638,34 @@ public class NetconfMappingTest extends AbstractConfigTest { @Test public void testEx2() throws Exception { + //check abort before tx creation + assertContainsElement(discard(), readXmlToElement("")); + + //check abort after tx creation + edit("netconfMessages/editConfig.xml"); assertContainsElement(discard(), readXmlToElement("")); } + @Test + public void testFailedDiscardChangesAbort() throws Exception { + + TransactionProvider mockedTxProvider = mock(TransactionProvider.class); + doThrow(new RuntimeException("Mocked runtime exception, Abort has to fail")).when(mockedTxProvider).abortTransaction(); + doReturn(Optional.of(ObjectName.getInstance("dummyDomain", "DummyKey", "DummyValue"))).when(mockedTxProvider).getTransaction(); + + DiscardChanges discardOp = new DiscardChanges(mockedTxProvider, configRegistryClient, NETCONF_SESSION_ID); + + try { + executeOp(discardOp, "netconfMessages/discardChanges.xml"); + fail("Should've failed, abort on mocked is supposed to throw RuntimeException"); + } catch (NetconfDocumentedException e) { + assertTrue(e.getErrorTag() == ErrorTag.operation_failed); + assertTrue(e.getErrorSeverity() == ErrorSeverity.error); + assertTrue(e.getErrorType() == ErrorType.application); + } + + } + private Document discard() throws ParserConfigurationException, SAXException, IOException, NetconfDocumentedException { DiscardChanges discardOp = new DiscardChanges(transactionProvider, configRegistryClient, NETCONF_SESSION_ID); return executeOp(discardOp, "netconfMessages/discardChanges.xml"); diff --git a/opendaylight/netconf/netconf-util/src/test/resources/netconfMessages/editConfig_removeServiceNameOnTest.xml b/opendaylight/netconf/netconf-util/src/test/resources/netconfMessages/editConfig_removeServiceNameOnTest.xml new file mode 100644 index 0000000000..f512a6e10a --- /dev/null +++ b/opendaylight/netconf/netconf-util/src/test/resources/netconfMessages/editConfig_removeServiceNameOnTest.xml @@ -0,0 +1,32 @@ + + + + + + + + + test-then-set + + none + + + + + prefix:testing + + ref_dep_user_another + /modules/module[type='impl-dep'][name='instance-from-code_dep'] + + + + + + + diff --git a/opendaylight/netconf/netconf-util/src/test/resources/netconfMessages/editConfig_removeUnknownInstance.xml b/opendaylight/netconf/netconf-util/src/test/resources/netconfMessages/editConfig_removeUnknownInstance.xml new file mode 100644 index 0000000000..902db66959 --- /dev/null +++ b/opendaylight/netconf/netconf-util/src/test/resources/netconfMessages/editConfig_removeUnknownInstance.xml @@ -0,0 +1,32 @@ + + + + + + + + + test-then-set + + none + + + + + prefix:testing + + i_dont_exist + /modules/module[type='impl-dep'][name='instance-from-code_dep'] + + + + + + +