2 * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
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
8 package org.opendaylight.mdsal.binding.generator.impl;
10 import static org.hamcrest.CoreMatchers.instanceOf;
11 import static org.hamcrest.MatcherAssert.assertThat;
12 import static org.junit.Assert.assertEquals;
13 import static org.junit.Assert.assertNotNull;
15 import java.util.List;
16 import org.junit.Test;
17 import org.opendaylight.mdsal.binding.model.api.GeneratedType;
18 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
19 import org.opendaylight.mdsal.binding.model.api.MethodSignature;
20 import org.opendaylight.mdsal.binding.model.api.Type;
21 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
23 public class Mdsal552Test {
24 private static final JavaTypeName BAR_INPUT =
25 JavaTypeName.create("org.opendaylight.yang.gen.v1.mdsal552.norev", "BarInput");
26 private static final JavaTypeName BAZ =
27 JavaTypeName.create("org.opendaylight.yang.gen.v1.mdsal552.norev", "Baz");
28 private static final JavaTypeName ENUMERATION =
29 JavaTypeName.create("org.opendaylight.yang.gen.v1.mdsal552.norev", "Mdsal552Data").createEnclosed("Foo");
32 public void enumLeafrefTest() {
33 final List<Type> types = new BindingGeneratorImpl().generateTypes(
34 YangParserTestUtils.parseYangResource("/mdsal552.yang"));
36 assertEquals(5, types.size());
38 final Type baz = types.stream()
39 .filter(type -> BAZ.equals(type.getIdentifier()))
40 .findFirst().orElseThrow();
41 assertThat(baz, instanceOf(GeneratedType.class));
42 final MethodSignature bazGetRef = ((GeneratedType) baz).getMethodDefinitions().stream()
43 .filter(method -> method.getName().equals("getRef"))
44 .findFirst().orElseThrow();
45 assertEquals(ENUMERATION, bazGetRef.getReturnType().getIdentifier());
47 final Type input = types.stream()
48 .filter(type -> BAR_INPUT.equals(type.getIdentifier()))
49 .findFirst().orElseThrow();
50 assertThat(input, instanceOf(GeneratedType.class));
51 final MethodSignature inputGetRef = ((GeneratedType) input).getMethodDefinitions().stream()
52 .filter(method -> method.getName().equals("getRef"))
53 .findFirst().orElseThrow();
54 assertEquals(ENUMERATION, inputGetRef.getReturnType().getIdentifier());