Add simple data listeners
[mdsal.git] / binding / mdsal-binding-api / src / test / java / org / opendaylight / mdsal / binding / api / DataTreeChangeServiceWildcardedTest.java
1 /*
2  * Copyright (c) 2023 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.api;
9
10 import static org.junit.Assert.assertThrows;
11 import static org.junit.Assert.assertTrue;
12 import static org.mockito.ArgumentMatchers.any;
13 import static org.mockito.Mockito.doCallRealMethod;
14 import static org.mockito.Mockito.mock;
15
16 import org.junit.Before;
17 import org.junit.Test;
18 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
19 import org.opendaylight.yang.gen.v1.mdsal813.norev.RegisterListenerTest;
20 import org.opendaylight.yang.gen.v1.mdsal813.norev.register.listener.test.Item;
21 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
22
23 public class DataTreeChangeServiceWildcardedTest {
24
25     DataBroker dataBroker;
26
27     DataListener<Item> listener;
28
29     DataChangeListener<Item> changeListener;
30
31     @Before
32     public void setUp() {
33         dataBroker = mock(DataBroker.class);
34         listener = mock(DataListener.class);
35         changeListener = mock(DataChangeListener.class);
36     }
37
38     @Test
39     public void testThrowExceptionOnRegister() {
40         final InstanceIdentifier<Item> instanceIdentifier = InstanceIdentifier.builder(RegisterListenerTest.class)
41             .child(Item.class).build();
42         final DataTreeIdentifier<Item> itemsDataTreeIdentifier = DataTreeIdentifier.create(
43             LogicalDatastoreType.OPERATIONAL, instanceIdentifier);
44
45         doCallRealMethod().when(dataBroker).registerDataListener(any(), any());
46         final var dataListenerException = assertThrows(IllegalArgumentException.class,
47             () -> dataBroker.registerDataListener(itemsDataTreeIdentifier, listener));
48         assertTrue(dataListenerException.getMessage().contains("Cannot register listener for wildcard"));
49
50         doCallRealMethod().when(dataBroker).registerDataChangeListener(any(), any());
51         final var dataListenerChangeException = assertThrows(IllegalArgumentException.class,
52             () -> dataBroker.registerDataChangeListener(itemsDataTreeIdentifier, changeListener));
53         assertTrue(dataListenerChangeException.getMessage().contains("Cannot register listener for wildcard"));
54     }
55
56 }