2 * Copyright (c) 2015 Cisco Systems, Inc. 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.protocol.bgp.openconfig.impl.moduleconfig;
10 import com.google.common.util.concurrent.CheckedFuture;
11 import java.util.concurrent.ExecutionException;
12 import org.junit.Before;
13 import org.junit.Test;
14 import org.mockito.Mockito;
15 import org.opendaylight.controller.md.sal.binding.api.ReadTransaction;
16 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
17 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
18 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
19 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.modules.Module;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.modules.ModuleKey;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.services.ServiceKey;
23 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
24 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
26 public class BGPConfigModuleProviderTest {
28 private static final BGPConfigModuleProvider PROVIDER = new BGPConfigModuleProvider();
30 private final Module module = Mockito.mock(Module.class);
31 private final ModuleKey key = Mockito.mock(ModuleKey.class);
32 private final WriteTransaction wtx = Mockito.mock(WriteTransaction.class);
33 private final ReadTransaction rtx = Mockito.mock(ReadTransaction.class);
36 public void setUp() throws Exception {
37 Mockito.doReturn(this.key).when(this.module).getKey();
38 Mockito.doReturn("key").when(this.key).toString();
39 Mockito.doReturn("key").when(this.key).getName();
40 Mockito.doReturn(ModuleKey.class).when(this.key).getType();
41 Mockito.doReturn("module").when(this.module).toString();
42 Mockito.doNothing().when(this.wtx).put(Mockito.any(LogicalDatastoreType.class), Mockito.any(KeyedInstanceIdentifier.class), Mockito.any(Module.class));
43 Mockito.doNothing().when(this.wtx).delete(Mockito.any(LogicalDatastoreType.class), Mockito.any(KeyedInstanceIdentifier.class));
44 final CheckedFuture<Void, Exception> future = Mockito.mock(CheckedFuture.class);
45 Mockito.doReturn(future).when(this.wtx).submit();
46 Mockito.doReturn(null).when(future).checkedGet();
48 Mockito.doReturn(future).when(this.rtx).read(Mockito.any(LogicalDatastoreType.class), Mockito.any(InstanceIdentifier.class));
52 public void testWriteTransactions() throws TransactionCommitFailedException {
53 PROVIDER.putModuleConfiguration(this.module, this.wtx);
54 PROVIDER.removeModuleConfiguration(this.key, this.wtx);
55 Mockito.verify(this.wtx).put(Mockito.any(LogicalDatastoreType.class), Mockito.any(KeyedInstanceIdentifier.class), Mockito.any(Module.class));
56 Mockito.verify(this.wtx).delete(Mockito.any(LogicalDatastoreType.class), Mockito.any(KeyedInstanceIdentifier.class));
57 Mockito.verify(this.wtx, Mockito.times(2)).submit();
61 public void testReadTransactions() throws InterruptedException, ExecutionException, ReadFailedException {
62 PROVIDER.readModuleConfiguration(this.key, this.rtx);
63 final ServiceKey sKey = Mockito.mock(ServiceKey.class);
64 Mockito.doReturn("key").when(this.key).getName();
65 Mockito.doReturn(ModuleKey.class).when(sKey).getType();
66 PROVIDER.readConfigService(sKey, this.rtx);
67 Mockito.verify(this.rtx, Mockito.times(2)).read(Mockito.any(LogicalDatastoreType.class), Mockito.any(InstanceIdentifier.class));