Bug 4322: return default valued-object 46/29846/3
authorIgor Foltin <ifoltin@cisco.com>
Wed, 18 Nov 2015 09:54:26 +0000 (10:54 +0100)
committerTony Tkacik <ttkacik@cisco.com>
Wed, 18 Nov 2015 13:53:10 +0000 (13:53 +0000)
Fixed the problem with BitsCodec.deserialize
which was reported after merging following patch
https://git.opendaylight.org/gerrit/#/c/28251/

Fixed up tests to reflect fix of Bug 4645 in YangTools.

Change-Id: I59e76c82c1923f33caebf9b3dc7bbbff47505930
Signed-off-by: Igor Foltin <ifoltin@cisco.com>
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/test/LeafDefaultValueTest.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/yangtools/binding/data/codec/impl/LeafNodeCodecContext.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/yangtools/binding/data/codec/test/NormalizedNodeSerializeDeserializeTest.java
binding/mdsal-binding-test-model/src/main/yang/opendaylight-default-value-test.yang

index 72c3469971b399dfbeb8c1003b7c5a9528884751..b3f6ae7dbd6fd30e0ae55fc586bdff692707095c 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.mdsal.binding.dom.adapter.test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import com.google.common.base.Optional;
@@ -308,7 +309,7 @@ public class LeafDefaultValueTest extends AbstractDataBrokerTest {
         assertEquals("unknown", stringCont.getStringLeaf3().getValue());
         assertEquals("unspecified string", stringCont.getStringLeaf4().getValue());
         assertEquals("whatever", stringCont.getStringLeaf5());
-        assertEquals("", stringCont.getStringLeaf6());
+        assertNull(stringCont.getStringLeaf6());
     }
 
     @Test
@@ -364,6 +365,7 @@ public class LeafDefaultValueTest extends AbstractDataBrokerTest {
         assertFalse(bitsCont.getBitsLeaf().isBitZero());
         assertTrue(bitsCont.getBitsLeaf().isBitOne());
         assertFalse(bitsCont.getBitsLeaf().isBitTwo());
+        assertNull(bitsCont.getBitsLeaf2());
     }
 
     @Test
index 77748a5b7bb1b3be1ebb39389d0e61c6b7e89fc1..c8e1999894bfa479bb4b103f4ebb023e20b9c452 100644 (file)
@@ -10,6 +10,8 @@ package org.opendaylight.yangtools.binding.data.codec.impl;
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableCollection;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -32,7 +34,6 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.IdentityEffectiveStatementImpl;
 
 final class LeafNodeCodecContext<D extends DataObject> extends NodeCodecContext<D> implements NodeContextSupplier {
@@ -75,6 +76,10 @@ final class LeafNodeCodecContext<D extends DataObject> extends NodeCodecContext<
                         return codec.deserialize(defaultValue);
                     }
 
+                    if (defaultValue instanceof ImmutableList) {
+                        return codec.deserialize(ImmutableSet.copyOf((ImmutableList) defaultValue));
+                    }
+
                     if (defaultValue instanceof List) {
                         return codec.deserialize(defaultValue);
                     }
index 42ecc68502aaf74254521a4d6f4d1730b6001b44..f595dc5b8b5f801ef9283b7464262759658c7382 100644 (file)
@@ -279,8 +279,8 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingRunti
 
         final Map.Entry<InstanceIdentifier<?>, DataObject> entry = registry.fromNormalizedNode(BI_TOP_LEVEL_LIST_FOO_PATH, foo);
         final List<NestedList> nestedLists = new ArrayList<>();
-        nestedLists.add(new NestedListBuilder().setKey(new NestedListKey("foo")).setType("").build());
-        nestedLists.add(new NestedListBuilder().setKey(new NestedListKey("bar")).setType("").build());
+        nestedLists.add(new NestedListBuilder().setKey(new NestedListKey("foo")).build());
+        nestedLists.add(new NestedListBuilder().setKey(new NestedListKey("bar")).build());
         final TopLevelList topLevelList = new TopLevelListBuilder().setKey(TOP_LEVEL_LIST_FOO_KEY).setNestedList(nestedLists).build();
         assertEquals(topLevelList, entry.getValue());
     }
index 47fc56d660a4355edbde76ad95a9a93b3913c0d1..9a41e0c35ea0d0a3bdcad1fe03d026982cc920d0 100644 (file)
@@ -587,6 +587,20 @@ module opendaylight-default-value-test {
         leaf bits-leaf {
             type my-bits;
         }
+
+        leaf bits-leaf2 {
+            type bits {
+                bit disable-nagle {
+                    position 0;
+                }
+                bit auto-sense-speed {
+                    position 1;
+                }
+                bit 10-Mb-only {
+                    position 2;
+                }
+            }
+        }
     }
 
     container binary-container {