X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2FNetconfMappingTest.java;h=f95e13dd01180e3ce91c78d78eab14045c1d12b7;hb=7d4251f30d145d8b402e206a11fb4a2ff90ac351;hp=d6b5e62b27b59eb60e023c64603e56474145592d;hpb=e3998d55e33da9f6ecb69da75ecc71a047b6362b;p=controller.git
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 d6b5e62b27..f95e13dd01 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
@@ -26,10 +26,13 @@ import static org.opendaylight.controller.netconf.util.xml.XmlUtil.readXmlToElem
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
+import com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+import io.netty.channel.Channel;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
@@ -91,22 +94,25 @@ import org.opendaylight.controller.netconf.confignetconfconnector.operations.edi
import org.opendaylight.controller.netconf.confignetconfconnector.operations.get.Get;
import org.opendaylight.controller.netconf.confignetconfconnector.operations.getconfig.GetConfig;
import org.opendaylight.controller.netconf.confignetconfconnector.operations.runtimerpc.RuntimeRpc;
+import org.opendaylight.controller.netconf.confignetconfconnector.osgi.EnumResolver;
import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreContext;
import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreService;
import org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider;
+import org.opendaylight.controller.netconf.impl.NetconfServerSession;
+import org.opendaylight.controller.netconf.impl.NetconfServerSessionListener;
import org.opendaylight.controller.netconf.impl.mapping.operations.DefaultCloseSession;
import org.opendaylight.controller.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory;
import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationRouter;
import org.opendaylight.controller.netconf.mapping.api.HandlingPriority;
import org.opendaylight.controller.netconf.mapping.api.NetconfOperation;
import org.opendaylight.controller.netconf.mapping.api.NetconfOperationChainedExecution;
+import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
import org.opendaylight.controller.netconf.util.messages.NetconfMessageUtil;
import org.opendaylight.controller.netconf.util.test.XmlFileLoader;
import org.opendaylight.controller.netconf.util.xml.XmlUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.test.types.rev131127.TestIdentity1;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.test.types.rev131127.TestIdentity2;
-import org.opendaylight.yangtools.yang.data.impl.codec.CodecRegistry;
-import org.opendaylight.yangtools.yang.data.impl.codec.IdentityCodec;
+import org.opendaylight.yangtools.sal.binding.generator.util.BindingRuntimeContext;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
@@ -159,6 +165,19 @@ public class NetconfMappingTest extends AbstractConfigTest {
doReturn(getMbes()).when(this.yangStoreSnapshot).getModuleMXBeanEntryMap();
doReturn(getModules()).when(this.yangStoreSnapshot).getModules();
+ doReturn(new EnumResolver() {
+ @Override
+ public String fromYang(final String enumType, final String enumYangValue) {
+ return Preconditions.checkNotNull(getEnumMapping().get(enumYangValue),
+ "Unable to resolve enum value %s, for enum %s with mappings %s", enumYangValue, enumType, getEnumMapping());
+ }
+
+ @Override
+ public String toYang(final String enumType, final String enumYangValue) {
+ return Preconditions.checkNotNull(getEnumMapping().inverse().get(enumYangValue),
+ "Unable to resolve enum value %s, for enum %s with mappings %s", enumYangValue, enumType, getEnumMapping().inverse());
+ }
+ }).when(this.yangStoreSnapshot).getEnumResolver();
this.factory = new NetconfTestImplModuleFactory();
this.factory2 = new DepTestImplModuleFactory();
@@ -200,14 +219,11 @@ public class NetconfMappingTest extends AbstractConfigTest {
}
@Override
- protected CodecRegistry getCodecRegistry() {
- IdentityCodec> idCodec = mock(IdentityCodec.class);
- doReturn(TestIdentity1.class).when(idCodec).deserialize(TestIdentity1.QNAME);
- doReturn(TestIdentity2.class).when(idCodec).deserialize(TestIdentity2.QNAME);
-
- CodecRegistry codecReg = super.getCodecRegistry();
- doReturn(idCodec).when(codecReg).getIdentityCodec();
- return codecReg;
+ protected BindingRuntimeContext getBindingRuntimeContext() {
+ final BindingRuntimeContext ret = super.getBindingRuntimeContext();
+ doReturn(TestIdentity1.class).when(ret).getIdentityClass(TestIdentity1.QNAME);
+ doReturn(TestIdentity2.class).when(ret).getIdentityClass(TestIdentity2.QNAME);
+ return ret;
}
@Test
@@ -391,7 +407,14 @@ public class NetconfMappingTest extends AbstractConfigTest {
private void closeSession() throws NetconfDocumentedException, ParserConfigurationException, SAXException,
IOException {
+ final Channel channel = mock(Channel.class);
+ doReturn("channel").when(channel).toString();
+ final NetconfServerSessionListener listener = mock(NetconfServerSessionListener.class);
+ final NetconfServerSession session =
+ new NetconfServerSession(listener, channel, 1L,
+ NetconfHelloMessageAdditionalHeader.fromString("[netconf;10.12.0.102:48528;ssh;;;;;;]"));
DefaultCloseSession closeOp = new DefaultCloseSession(NETCONF_SESSION_ID, sessionCloseable);
+ closeOp.setNetconfSession(session);
executeOp(closeOp, "netconfMessages/closeSession.xml");
}
@@ -594,9 +617,9 @@ public class NetconfMappingTest extends AbstractConfigTest {
// Default
assertContainsElement(response, readXmlToElement("2"));
- assertContainsElement(response, readXmlToElement("TWO"));
+ assertContainsElement(response, readXmlToElement("two"));
// Default
- assertContainsElement(response, readXmlToElement("ONE"));
+ assertContainsElement(response, readXmlToElement("one"));
}
private void assertContainsString(String string, String substring) {
@@ -605,7 +628,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
private void checkEnum(final Document response) throws Exception {
- String expectedEnumContent = "TWO";
+ String expectedEnumContent = "two";
XMLAssert.assertXpathEvaluatesTo(expectedEnumContent,
getXpathForNetconfImplSubnode(INSTANCE_NAME,"extended-enum"),
@@ -650,11 +673,24 @@ public class NetconfMappingTest extends AbstractConfigTest {
return schemaContext ;
}
}, mockedContext);
+ final BindingRuntimeContext bindingRuntimeContext = mock(BindingRuntimeContext.class);
+ doReturn(getEnumMapping()).when(bindingRuntimeContext).getEnumMapping(any(Class.class));
+ yangStoreService.refresh(bindingRuntimeContext);
mBeanEntries.putAll(yangStoreService.getModuleMXBeanEntryMap());
return mBeanEntries;
}
+ private BiMap getEnumMapping() {
+ final HashBiMap enumBiMap = HashBiMap.create();
+ // Enum constants mapping from yang -> Java and back
+ enumBiMap.put("one", "One");
+ enumBiMap.put("two", "Two");
+ enumBiMap.put("version1", "Version1");
+ enumBiMap.put("version2", "Version2");
+ return enumBiMap;
+ }
+
private Set getModules() throws Exception {
SchemaContext resolveSchemaContext = getSchemaContext();
return resolveSchemaContext.getModules();