BUG-2453 (De)Serialize enum values as defined in yang
[controller.git] / opendaylight / netconf / netconf-it / src / test / java / org / opendaylight / controller / netconf / it / AbstractNetconfConfigTest.java
index c2812dbf61af7241323941a9317780dd4e7df100..1e31782bb22c87fe1c151e49fa22be9bd0344b60 100644 (file)
@@ -14,7 +14,7 @@ import static org.mockito.Matchers.anySetOf;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
-
+import com.google.common.io.ByteStreams;
 import io.netty.channel.Channel;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.EventLoopGroup;
@@ -34,7 +34,6 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
-import org.apache.commons.io.IOUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
@@ -51,6 +50,7 @@ import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl;
 import org.opendaylight.controller.netconf.client.SimpleNetconfClientSessionListener;
 import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
 import org.opendaylight.controller.netconf.client.conf.NetconfClientConfigurationBuilder;
+import org.opendaylight.controller.netconf.confignetconfconnector.osgi.EnumResolver;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.NetconfOperationServiceFactoryImpl;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreService;
 import org.opendaylight.controller.netconf.impl.DefaultCommitNotificationProducer;
@@ -66,6 +66,7 @@ import org.opendaylight.controller.netconf.notifications.BaseNetconfNotification
 import org.opendaylight.controller.netconf.util.test.XmlFileLoader;
 import org.opendaylight.protocol.framework.NeverReconnectStrategy;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange;
+import org.opendaylight.yangtools.yang.binding.BindingMapping;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
@@ -262,7 +263,7 @@ public abstract class AbstractNetconfConfigTest extends AbstractConfigTest {
                 assertNotNull(inputStream);
                 final byte[] content;
                 try {
-                    content = IOUtils.toByteArray(inputStream);
+                    content = ByteStreams.toByteArray(inputStream);
                 } catch (IOException e) {
                     throw new IllegalStateException("Cannot read " + inputStream, e);
                 }
@@ -281,5 +282,20 @@ public abstract class AbstractNetconfConfigTest extends AbstractConfigTest {
             final YangParserImpl yangParser = new YangParserImpl();
             return yangParser.resolveSchemaContext(new HashSet<>(yangParser.parseYangModelsFromStreamsMapped(byteArrayInputStreams).values()));
         }
+
+        @Override
+        public EnumResolver getEnumResolver() {
+            return new EnumResolver() {
+                @Override
+                public String fromYang(final String enumType, final String enumYangValue) {
+                    return BindingMapping.getClassName(enumYangValue);
+                }
+
+                @Override
+                public String toYang(final String enumType, final String enumJavaValue) {
+                    return enumJavaValue.toLowerCase();
+                }
+            };
+        }
     }
 }