From: Igor Foltin Date: Wed, 18 Nov 2015 09:54:26 +0000 (+0100) Subject: Bug 4322: return default valued-object X-Git-Tag: release/beryllium~58 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=663a4d78ad03c598641368a5e96dcbb8dfdefb1b;p=mdsal.git Bug 4322: return default valued-object 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 --- diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/test/LeafDefaultValueTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/test/LeafDefaultValueTest.java index 72c3469971..b3f6ae7dbd 100644 --- a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/test/LeafDefaultValueTest.java +++ b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/test/LeafDefaultValueTest.java @@ -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 diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/yangtools/binding/data/codec/impl/LeafNodeCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/yangtools/binding/data/codec/impl/LeafNodeCodecContext.java index 77748a5b7b..c8e1999894 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/yangtools/binding/data/codec/impl/LeafNodeCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/yangtools/binding/data/codec/impl/LeafNodeCodecContext.java @@ -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 extends NodeCodecContext implements NodeContextSupplier { @@ -75,6 +76,10 @@ final class LeafNodeCodecContext 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); } diff --git a/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/yangtools/binding/data/codec/test/NormalizedNodeSerializeDeserializeTest.java b/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/yangtools/binding/data/codec/test/NormalizedNodeSerializeDeserializeTest.java index 42ecc68502..f595dc5b8b 100644 --- a/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/yangtools/binding/data/codec/test/NormalizedNodeSerializeDeserializeTest.java +++ b/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/yangtools/binding/data/codec/test/NormalizedNodeSerializeDeserializeTest.java @@ -279,8 +279,8 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingRunti final Map.Entry, DataObject> entry = registry.fromNormalizedNode(BI_TOP_LEVEL_LIST_FOO_PATH, foo); final List 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()); } diff --git a/binding/mdsal-binding-test-model/src/main/yang/opendaylight-default-value-test.yang b/binding/mdsal-binding-test-model/src/main/yang/opendaylight-default-value-test.yang index 47fc56d660..9a41e0c35e 100644 --- a/binding/mdsal-binding-test-model/src/main/yang/opendaylight-default-value-test.yang +++ b/binding/mdsal-binding-test-model/src/main/yang/opendaylight-default-value-test.yang @@ -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 {