Use YANG binding from YANG Tools
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / test / java / org / opendaylight / mdsal / binding / dom / adapter / BindingDOMMountPointServiceAdapterTest.java
1 /*
2  * Copyright (c) 2016 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 package org.opendaylight.mdsal.binding.dom.adapter;
9
10 import static org.junit.jupiter.api.Assertions.assertFalse;
11 import static org.junit.jupiter.api.Assertions.assertNotNull;
12 import static org.junit.jupiter.api.Assertions.assertTrue;
13 import static org.mockito.ArgumentMatchers.any;
14 import static org.mockito.Mockito.doReturn;
15
16 import java.util.Optional;
17 import org.junit.jupiter.api.Test;
18 import org.junit.jupiter.api.extension.ExtendWith;
19 import org.mockito.Mock;
20 import org.mockito.junit.jupiter.MockitoExtension;
21 import org.opendaylight.mdsal.binding.api.MountPointService.MountPointListener;
22 import org.opendaylight.mdsal.dom.api.DOMMountPoint;
23 import org.opendaylight.mdsal.dom.api.DOMMountPointService;
24 import org.opendaylight.yang.gen.v1.urn.yang.foo.rev160101.BooleanContainer;
25 import org.opendaylight.yangtools.binding.data.codec.spi.BindingDOMCodecServices;
26 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
27 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
28
29 @ExtendWith(MockitoExtension.class)
30 class BindingDOMMountPointServiceAdapterTest {
31     @Mock
32     private BindingDOMCodecServices registry;
33     @Mock
34     private DOMMountPointService mountPointService;
35     @Mock
36     private DOMMountPoint mountPoint;
37     @Mock
38     private MountPointListener mountPointListener;
39
40     @Test
41     void basicTest() {
42         final var codec = new ConstantAdapterContext(registry);
43         final var yiid = YangInstanceIdentifier.of(BooleanContainer.QNAME);
44         doReturn(yiid).when(registry).toYangInstanceIdentifier(any());
45         doReturn(InstanceIdentifier.create(BooleanContainer.class)).when(registry).fromYangInstanceIdentifier(yiid);
46
47         final var adapter = new BindingDOMMountPointServiceAdapter(codec, mountPointService);
48
49         doReturn(Optional.empty()).when(mountPointService).getMountPoint(any());
50         assertFalse(adapter.getMountPoint(InstanceIdentifier.create(BooleanContainer.class)).isPresent());
51
52         doReturn(Optional.of(mountPoint)).when(mountPointService).getMountPoint(any());
53         doReturn(yiid).when(mountPoint).getIdentifier();
54         assertTrue(adapter.getMountPoint(InstanceIdentifier.create(BooleanContainer.class)).isPresent());
55
56         assertNotNull(adapter.registerListener(InstanceIdentifier.create(BooleanContainer.class), mountPointListener));
57     }
58 }