a77a9e7ed0cad1d7a8316cb3447db428ecd62599
[yangtools.git] / binding / binding-ri / src / test / java / org / opendaylight / mdsal / binding / generator / impl / Mdsal552Test.java
1 /*
2  * Copyright (c) 2020 PANTHEON.tech, s.r.o. 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 package org.opendaylight.mdsal.binding.generator.impl;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12
13 import org.junit.Test;
14 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
15 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
16
17 public class Mdsal552Test {
18     private static final JavaTypeName BAR_INPUT =
19             JavaTypeName.create("org.opendaylight.yang.gen.v1.mdsal552.norev", "BarInput");
20     private static final JavaTypeName BAZ =
21             JavaTypeName.create("org.opendaylight.yang.gen.v1.mdsal552.norev", "Baz");
22     private static final JavaTypeName ENUMERATION =
23             JavaTypeName.create("org.opendaylight.yang.gen.v1.mdsal552.norev", "Mdsal552Data").createEnclosed("Foo");
24
25     @Test
26     public void enumLeafrefTest() {
27         final var types = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResource("/mdsal552.yang"));
28         assertNotNull(types);
29         assertEquals(5, types.size());
30
31         final var baz = types.stream()
32                 .filter(type -> BAZ.equals(type.getIdentifier()))
33                 .findFirst().orElseThrow();
34         final var bazGetRef = baz.getMethodDefinitions().stream()
35                 .filter(method -> method.getName().equals("getRef"))
36                 .findFirst().orElseThrow();
37         assertEquals(ENUMERATION, bazGetRef.getReturnType().getIdentifier());
38
39         final var input = types.stream()
40                 .filter(type -> BAR_INPUT.equals(type.getIdentifier()))
41                 .findFirst().orElseThrow();
42         final var inputGetRef = input.getMethodDefinitions().stream()
43                 .filter(method -> method.getName().equals("getRef"))
44                 .findFirst().orElseThrow();
45         assertEquals(ENUMERATION, inputGetRef.getReturnType().getIdentifier());
46     }
47 }