72f7486bec802d070968a94d3db74dc9ef6dfd83
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / test / java / org / opendaylight / mdsal / binding / dom / adapter / LeafDefaultValueTest.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.mdsal.binding.dom.adapter;
10
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertNull;
14 import static org.junit.Assert.assertTrue;
15
16 import java.util.Arrays;
17 import java.util.Optional;
18 import java.util.concurrent.ExecutionException;
19 import org.junit.Test;
20 import org.opendaylight.mdsal.binding.api.ReadTransaction;
21 import org.opendaylight.mdsal.binding.api.WriteTransaction;
22 import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractDataBrokerTest;
23 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.BigIntContainer;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.BigIntContainerBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.BigUintContainer;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.BigUintContainerBuilder;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.BinaryContainer;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.BinaryContainerBuilder;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.BitsContainer;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.BitsContainerBuilder;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.BooleanContainer;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.BooleanContainerBuilder;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.DecimalContainer;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.DecimalContainerBuilder;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.EnumContainer;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.EnumContainerBuilder;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.IdentityrefContainer;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.IdentityrefContainerBuilder;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.NormalIntContainer;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.NormalIntContainerBuilder;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.NormalUintContainer;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.NormalUintContainerBuilder;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.SmallIntContainer;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.SmallIntContainerBuilder;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.SmallUintContainer;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.SmallUintContainerBuilder;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.StringContainer;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.StringContainerBuilder;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.TinyIntContainer;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.TinyIntContainerBuilder;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.TinyUintContainer;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns._default.value.test.norev.TinyUintContainerBuilder;
54 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
55
56 public class LeafDefaultValueTest extends AbstractDataBrokerTest {
57
58     private static final InstanceIdentifier<TinyIntContainer> TINY_INT_NODE_PATH
59             = InstanceIdentifier.create(TinyIntContainer.class);
60     private static final InstanceIdentifier<SmallIntContainer> SMALL_INT_NODE_PATH
61             = InstanceIdentifier.create(SmallIntContainer.class);
62     private static final InstanceIdentifier<NormalIntContainer> NORMAL_INT_NODE_PATH
63             = InstanceIdentifier.create(NormalIntContainer.class);
64     private static final InstanceIdentifier<BigIntContainer> BIG_INT_NODE_PATH
65             = InstanceIdentifier.create(BigIntContainer.class);
66
67     private static final InstanceIdentifier<TinyUintContainer> TINY_UINT_NODE_PATH
68             = InstanceIdentifier.create(TinyUintContainer.class);
69     private static final InstanceIdentifier<SmallUintContainer> SMALL_UINT_NODE_PATH
70             = InstanceIdentifier.create(SmallUintContainer.class);
71     private static final InstanceIdentifier<NormalUintContainer> NORMAL_UINT_NODE_PATH
72             = InstanceIdentifier.create(NormalUintContainer.class);
73     private static final InstanceIdentifier<BigUintContainer> BIG_UINT_NODE_PATH
74             = InstanceIdentifier.create(BigUintContainer.class);
75
76     private static final InstanceIdentifier<DecimalContainer> DECIMAL_NODE_PATH
77             = InstanceIdentifier.create(DecimalContainer.class);
78
79     private static final InstanceIdentifier<StringContainer> STRING_NODE_PATH
80             = InstanceIdentifier.create(StringContainer.class);
81
82     private static final InstanceIdentifier<BooleanContainer> BOOLEAN_NODE_PATH
83             = InstanceIdentifier.create(BooleanContainer.class);
84
85     private static final InstanceIdentifier<EnumContainer> ENUM_NODE_PATH
86             = InstanceIdentifier.create(EnumContainer.class);
87
88     private static final InstanceIdentifier<BitsContainer> BITS_NODE_PATH
89             = InstanceIdentifier.create(BitsContainer.class);
90
91     private static final InstanceIdentifier<BinaryContainer> BINARY_NODE_PATH
92             = InstanceIdentifier.create(BinaryContainer.class);
93
94     private static final InstanceIdentifier<IdentityrefContainer> IDENTITYREF_NODE_PATH
95             = InstanceIdentifier.create(IdentityrefContainer.class);
96
97     @Test
98     public void testTinyIntDefaultValue() throws ExecutionException, InterruptedException {
99         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
100         writeTx.put(LogicalDatastoreType.OPERATIONAL, TINY_INT_NODE_PATH, new TinyIntContainerBuilder().build());
101         writeTx.commit().get();
102
103         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
104         final Optional<TinyIntContainer> tinyIntContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
105                 TINY_INT_NODE_PATH).get();
106
107         assertTrue(tinyIntContainerNode.isPresent());
108
109         TinyIntContainer tinyIntContainer = tinyIntContainerNode.get();
110         assertEquals(-18, tinyIntContainer.getTinyIntLeaf().getValue().byteValue());
111         assertEquals(-18, tinyIntContainer.getTinyIntLeaf2().getValue().byteValue());
112         assertEquals(-15, tinyIntContainer.getTinyIntLeaf3().getValue().byteValue());
113         assertEquals(-18, tinyIntContainer.getTinyIntLeaf4().getValue().byteValue());
114         assertEquals(-120, tinyIntContainer.getTinyIntLeaf5().byteValue());
115         assertEquals(null, tinyIntContainer.getTinyIntLeaf6());
116     }
117
118     @Test
119     public void testSmallIntDefaultValue() throws ExecutionException, InterruptedException {
120         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
121         writeTx.put(LogicalDatastoreType.OPERATIONAL, SMALL_INT_NODE_PATH, new SmallIntContainerBuilder().build());
122         writeTx.commit().get();
123
124         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
125         final Optional<SmallIntContainer> smallIntContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
126                 SMALL_INT_NODE_PATH).get();
127
128         assertTrue(smallIntContainerNode.isPresent());
129
130         SmallIntContainer smallIntContainer = smallIntContainerNode.get();
131         assertEquals(-20000, smallIntContainer.getSmallIntLeaf().getValue().shortValue());
132         assertEquals(-20000, smallIntContainer.getSmallIntLeaf2().getValue().shortValue());
133         assertEquals(-15000, smallIntContainer.getSmallIntLeaf3().getValue().shortValue());
134         assertEquals(-20000, smallIntContainer.getSmallIntLeaf4().getValue().shortValue());
135         assertEquals(-5000, smallIntContainer.getSmallIntLeaf5().shortValue());
136         assertEquals(null, smallIntContainer.getSmallIntLeaf6());
137     }
138
139     @Test
140     public void testNormalIntDefaultValue() throws ExecutionException, InterruptedException {
141         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
142         writeTx.put(LogicalDatastoreType.OPERATIONAL, NORMAL_INT_NODE_PATH, new NormalIntContainerBuilder().build());
143         writeTx.commit().get();
144
145         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
146         final Optional<NormalIntContainer> normalIntContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
147                 NORMAL_INT_NODE_PATH).get();
148
149         assertTrue(normalIntContainerNode.isPresent());
150
151         NormalIntContainer normalIntContainer = normalIntContainerNode.get();
152         assertEquals(-200000, normalIntContainer.getNormalIntLeaf().getValue().intValue());
153         assertEquals(-200000, normalIntContainer.getNormalIntLeaf2().getValue().intValue());
154         assertEquals(-130000, normalIntContainer.getNormalIntLeaf3().getValue().intValue());
155         assertEquals(-200000, normalIntContainer.getNormalIntLeaf4().getValue().intValue());
156         assertEquals(-95000, normalIntContainer.getNormalIntLeaf5().intValue());
157         assertEquals(null, normalIntContainer.getNormalIntLeaf6());
158     }
159
160     @Test
161     public void testBigIntDefaultValue() throws ExecutionException, InterruptedException {
162         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
163         writeTx.put(LogicalDatastoreType.OPERATIONAL, BIG_INT_NODE_PATH, new BigIntContainerBuilder().build());
164         writeTx.commit().get();
165
166         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
167         final Optional<BigIntContainer> bigIntContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
168                 BIG_INT_NODE_PATH).get();
169
170         assertTrue(bigIntContainerNode.isPresent());
171
172         BigIntContainer bigIntContainer = bigIntContainerNode.get();
173         assertEquals(-3300000000L, bigIntContainer.getBigIntLeaf().getValue().longValue());
174         assertEquals(-3300000000L, bigIntContainer.getBigIntLeaf2().getValue().longValue());
175         assertEquals(-2800000000L, bigIntContainer.getBigIntLeaf3().getValue().longValue());
176         assertEquals(-3300000000L, bigIntContainer.getBigIntLeaf4().getValue().longValue());
177         assertEquals(-2500000000L, bigIntContainer.getBigIntLeaf5().longValue());
178         assertEquals(null, bigIntContainer.getBigIntLeaf6());
179     }
180
181     @Test
182     public void testTinyUintDefaultValue() throws ExecutionException, InterruptedException {
183         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
184         writeTx.put(LogicalDatastoreType.OPERATIONAL, TINY_UINT_NODE_PATH, new TinyUintContainerBuilder().build());
185         writeTx.commit().get();
186
187         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
188         final Optional<TinyUintContainer> tinyUintContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
189                 TINY_UINT_NODE_PATH).get();
190
191         assertTrue(tinyUintContainerNode.isPresent());
192
193         TinyUintContainer tinyUintContainer = tinyUintContainerNode.get();
194         assertEquals(150, tinyUintContainer.getTinyUintLeaf().getValue().shortValue());
195         assertEquals(150, tinyUintContainer.getTinyUintLeaf2().getValue().shortValue());
196         assertEquals(170, tinyUintContainer.getTinyUintLeaf3().getValue().shortValue());
197         assertEquals(150, tinyUintContainer.getTinyUintLeaf4().getValue().shortValue());
198         assertEquals(155, tinyUintContainer.getTinyUintLeaf5().shortValue());
199         assertEquals(null, tinyUintContainer.getTinyUintLeaf6());
200     }
201
202     @Test
203     public void testSmallUintDefaultValue() throws ExecutionException, InterruptedException {
204         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
205         writeTx.put(LogicalDatastoreType.OPERATIONAL, SMALL_UINT_NODE_PATH, new SmallUintContainerBuilder().build());
206         writeTx.commit().get();
207
208         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
209         final Optional<SmallUintContainer> smallUintContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
210                 SMALL_UINT_NODE_PATH).get();
211
212         assertTrue(smallUintContainerNode.isPresent());
213
214         SmallUintContainer smallUintContainer = smallUintContainerNode.get();
215         assertEquals(35000, smallUintContainer.getSmallUintLeaf().getValue().intValue());
216         assertEquals(35000, smallUintContainer.getSmallUintLeaf2().getValue().intValue());
217         assertEquals(45000, smallUintContainer.getSmallUintLeaf3().getValue().intValue());
218         assertEquals(35000, smallUintContainer.getSmallUintLeaf4().getValue().intValue());
219         assertEquals(62000, smallUintContainer.getSmallUintLeaf5().intValue());
220         assertEquals(null, smallUintContainer.getSmallUintLeaf6());
221     }
222
223     @Test
224     public void testNormalUintDefaultValue() throws ExecutionException, InterruptedException {
225         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
226         writeTx.put(LogicalDatastoreType.OPERATIONAL, NORMAL_UINT_NODE_PATH, new NormalUintContainerBuilder().build());
227         writeTx.commit().get();
228
229         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
230         final Optional<NormalUintContainer> normalUintContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
231                 NORMAL_UINT_NODE_PATH).get();
232
233         assertTrue(normalUintContainerNode.isPresent());
234
235         NormalUintContainer normalUintContainer = normalUintContainerNode.get();
236         assertEquals(100000, normalUintContainer.getNormalUintLeaf().getValue().longValue());
237         assertEquals(100000, normalUintContainer.getNormalUintLeaf2().getValue().longValue());
238         assertEquals(250000, normalUintContainer.getNormalUintLeaf3().getValue().longValue());
239         assertEquals(100000, normalUintContainer.getNormalUintLeaf4().getValue().longValue());
240         assertEquals(150000, normalUintContainer.getNormalUintLeaf5().longValue());
241         assertEquals(null, normalUintContainer.getNormalUintLeaf6());
242     }
243
244     @Test
245     public void testBigUintDefaultValue() throws ExecutionException, InterruptedException {
246         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
247         writeTx.put(LogicalDatastoreType.OPERATIONAL, BIG_UINT_NODE_PATH, new BigUintContainerBuilder().build());
248         writeTx.commit().get();
249
250         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
251         final Optional<BigUintContainer> bigUintContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
252                 BIG_UINT_NODE_PATH).get();
253
254         assertTrue(bigUintContainerNode.isPresent());
255
256         BigUintContainer bigUintContainer = bigUintContainerNode.get();
257         assertEquals(5000000000L, bigUintContainer.getBigUintLeaf().getValue().longValue());
258         assertEquals(5000000000L, bigUintContainer.getBigUintLeaf2().getValue().longValue());
259         assertEquals(5800000000L, bigUintContainer.getBigUintLeaf3().getValue().longValue());
260         assertEquals(5000000000L, bigUintContainer.getBigUintLeaf4().getValue().longValue());
261         assertEquals(6500000000L, bigUintContainer.getBigUintLeaf5().longValue());
262         assertEquals(null, bigUintContainer.getBigUintLeaf6());
263     }
264
265     @Test
266     public void testDecimalDefaultValue() throws ExecutionException, InterruptedException {
267         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
268         writeTx.put(LogicalDatastoreType.OPERATIONAL, DECIMAL_NODE_PATH, new DecimalContainerBuilder().build());
269         writeTx.commit().get();
270
271         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
272         final Optional<DecimalContainer> decimalContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
273                 DECIMAL_NODE_PATH).get();
274
275         assertTrue(decimalContainerNode.isPresent());
276
277         DecimalContainer decimalCont = decimalContainerNode.get();
278         assertEquals(66.66, decimalCont.getDecimalLeaf().getValue().doubleValue(), 0.001);
279         assertEquals(66.66, decimalCont.getDecimalLeaf2().getValue().doubleValue(), 0.001);
280         assertEquals(99.99, decimalCont.getDecimalLeaf3().getValue().doubleValue(), 0.001);
281         assertEquals(66.66, decimalCont.getDecimalLeaf4().getValue().doubleValue(), 0.001);
282         assertEquals(120.55, decimalCont.getDecimalLeaf5().doubleValue(), 0.001);
283         assertEquals(null, decimalCont.getDecimalLeaf6());
284     }
285
286     @Test
287     public void testStringDefaultValue() throws ExecutionException, InterruptedException {
288         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
289         writeTx.put(LogicalDatastoreType.OPERATIONAL, STRING_NODE_PATH, new StringContainerBuilder().build());
290         writeTx.commit().get();
291
292         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
293         final Optional<StringContainer> stringContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
294                 STRING_NODE_PATH).get();
295
296         assertTrue(stringContainerNode.isPresent());
297
298         StringContainer stringCont = stringContainerNode.get();
299         assertEquals("unspecified string", stringCont.getStringLeaf().getValue());
300         assertEquals("unspecified string", stringCont.getStringLeaf2().getValue());
301         assertEquals("unknown", stringCont.getStringLeaf3().getValue());
302         assertEquals("unspecified string", stringCont.getStringLeaf4().getValue());
303         assertEquals("whatever", stringCont.getStringLeaf5());
304         assertNull(stringCont.getStringLeaf6());
305     }
306
307     @Test
308     public void testBooleanDefaultValue() throws ExecutionException, InterruptedException {
309         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
310         writeTx.put(LogicalDatastoreType.OPERATIONAL, BOOLEAN_NODE_PATH, new BooleanContainerBuilder().build());
311         writeTx.commit().get();
312
313         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
314         final Optional<BooleanContainer> booleanContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
315                 BOOLEAN_NODE_PATH).get();
316
317         assertTrue(booleanContainerNode.isPresent());
318
319         BooleanContainer boolCont = booleanContainerNode.get();
320         assertTrue(boolCont.getBooleanLeaf());
321         assertNull(boolCont.getBooleanLeaf2());
322     }
323
324     @Test
325     public void testEnumerationDefaultValue() throws ExecutionException, InterruptedException {
326         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
327         writeTx.put(LogicalDatastoreType.OPERATIONAL, ENUM_NODE_PATH, new EnumContainerBuilder().build());
328         writeTx.commit().get();
329
330         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
331         final Optional<EnumContainer> enumContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
332                 ENUM_NODE_PATH).get();
333
334         assertTrue(enumContainerNode.isPresent());
335
336         EnumContainer enumCont = enumContainerNode.get();
337         assertEquals("Second", enumCont.getEnumLeaf().name());
338         assertEquals(2, enumCont.getEnumLeaf().getIntValue());
339     }
340
341     @Test
342     public void testBitsDefaultValue() throws ExecutionException, InterruptedException {
343         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
344         writeTx.put(LogicalDatastoreType.OPERATIONAL, BITS_NODE_PATH, new BitsContainerBuilder().build());
345         writeTx.commit().get();
346
347         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
348         final Optional<BitsContainer> bitsContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
349                 BITS_NODE_PATH).get();
350
351         assertTrue(bitsContainerNode.isPresent());
352
353         BitsContainer bitsCont = bitsContainerNode.get();
354         assertFalse(bitsCont.getBitsLeaf().getBitZero());
355         assertTrue(bitsCont.getBitsLeaf().getBitOne());
356         assertFalse(bitsCont.getBitsLeaf().getBitTwo());
357         assertNull(bitsCont.getBitsLeaf2());
358     }
359
360     @Test
361     public void testBinaryDefaultValue() throws ExecutionException, InterruptedException {
362         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
363         writeTx.put(LogicalDatastoreType.OPERATIONAL, BINARY_NODE_PATH, new BinaryContainerBuilder().build());
364         writeTx.commit().get();
365
366         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
367         final Optional<BinaryContainer> binaryContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
368                 BINARY_NODE_PATH).get();
369
370         assertTrue(binaryContainerNode.isPresent());
371
372         BinaryContainer binCont = binaryContainerNode.get();
373         byte [] expectedBytes = {104, 101, 108, 108, 111};
374         byte [] actualBytes = binCont.getBinaryLeaf();
375
376         assertTrue(Arrays.equals(expectedBytes, actualBytes));
377     }
378
379     @Test
380     public void testIdentityrefDefaultValue() throws ExecutionException, InterruptedException {
381         final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
382         writeTx.put(LogicalDatastoreType.OPERATIONAL, IDENTITYREF_NODE_PATH, new IdentityrefContainerBuilder().build());
383         writeTx.commit().get();
384
385         final ReadTransaction readTx = getDataBroker().newReadOnlyTransaction();
386         final Optional<IdentityrefContainer> identityrefContainerNode = readTx.read(LogicalDatastoreType.OPERATIONAL,
387                 IDENTITYREF_NODE_PATH).get();
388
389         assertTrue(identityrefContainerNode.isPresent());
390
391         IdentityrefContainer idrefCont = identityrefContainerNode.get();
392         assertNull(idrefCont.getIdentityrefLeaf());
393         assertEquals("MyDerivedIdentity", idrefCont.getIdentityrefLeaf2().getSimpleName());
394         assertEquals("MyDerivedIdentity", idrefCont.getIdentityrefLeaf3().getSimpleName());
395         assertEquals("MyDerivedIdentity2", idrefCont.getIdentityrefLeaf4().getSimpleName());
396         assertEquals("MyDerivedImportedIdentity", idrefCont.getIdentityrefLeaf5().getSimpleName());
397         assertEquals("MyDerivedIdentity", idrefCont.getIdentityrefLeaf6().getSimpleName());
398         assertNull(idrefCont.getIdentityrefLeaf7());
399     }
400 }