Populate data/ hierarchy
[yangtools.git] / yang / yang-model-api / src / test / java / org / opendaylight / yangtools / yang / model / api / meta / DeclaredStatementTest.java
1 /*
2  * Copyright (c) 2018 Pantheon Technologies, 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.yangtools.yang.model.api.meta;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.mockito.ArgumentMatchers.any;
12 import static org.mockito.Mockito.doCallRealMethod;
13 import static org.mockito.Mockito.doReturn;
14
15 import com.google.common.collect.ImmutableList;
16 import java.util.Optional;
17 import org.junit.Before;
18 import org.junit.Test;
19 import org.junit.runner.RunWith;
20 import org.mockito.Mock;
21 import org.mockito.junit.MockitoJUnitRunner;
22
23 @RunWith(MockitoJUnitRunner.StrictStubs.class)
24 public class DeclaredStatementTest {
25     @Mock
26     public DeclaredStatement1 stmt;
27     @Mock
28     public DeclaredStatement1 stmt1;
29     @Mock
30     public DeclaredStatement2 stmt2;
31
32     @Before
33     public void before() {
34         doReturn("one").when(stmt1).argument();
35         doReturn("two").when(stmt2).argument();
36         doReturn(ImmutableList.of(stmt1, stmt2)).when(stmt).declaredSubstatements();
37         doCallRealMethod().when(stmt).declaredSubstatements(any());
38         doCallRealMethod().when(stmt).findFirstDeclaredSubstatement(any());
39         doCallRealMethod().when(stmt).findFirstDeclaredSubstatementArgument(any());
40         doCallRealMethod().when(stmt).streamDeclaredSubstatements(any());
41     }
42
43     @Test
44     public void testDeclaredSubstatements() {
45         assertEquals(ImmutableList.of(stmt1), ImmutableList.copyOf(stmt.declaredSubstatements(
46             DeclaredStatement1.class)));
47         assertEquals(ImmutableList.of(stmt2), ImmutableList.copyOf(stmt.declaredSubstatements(
48             DeclaredStatement2.class)));
49     }
50
51     @Test
52     public void testFindFirstDeclaredSubstatement() {
53         assertEquals(Optional.of(stmt1), stmt.findFirstDeclaredSubstatement(DeclaredStatement1.class));
54         assertEquals(Optional.of(stmt2), stmt.findFirstDeclaredSubstatement(DeclaredStatement2.class));
55     }
56
57     @Test
58     public void testFindFirstDeclaredSubstatementArgument() {
59         assertEquals(Optional.of("one"), stmt.findFirstDeclaredSubstatementArgument(DeclaredStatement1.class));
60         assertEquals(Optional.of("two"), stmt.findFirstDeclaredSubstatementArgument(DeclaredStatement2.class));
61     }
62 }