2 * Copyright (c) 2023 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.api;
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;
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;
23 public class DataTreeChangeServiceWildcardedTest {
25 DataBroker dataBroker;
27 DataListener<Item> listener;
29 DataChangeListener<Item> changeListener;
33 dataBroker = mock(DataBroker.class);
34 listener = mock(DataListener.class);
35 changeListener = mock(DataChangeListener.class);
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);
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"));
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"));