2 * Copyright (c) 2015 Inocybe Technologies. 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
9 package org.opendaylight.ovsdb.southbound.ovsdb.transact;
11 import static org.mockito.Mockito.mock;
12 import static org.mockito.Mockito.times;
13 import static org.mockito.Mockito.verify;
14 import static org.mockito.Mockito.when;
19 import org.junit.Before;
20 import org.junit.Test;
21 import org.junit.runner.RunWith;
22 import org.mockito.Mock;
23 import org.mockito.Mockito;
24 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
25 import org.opendaylight.ovsdb.lib.operations.TransactionBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry;
28 import org.opendaylight.yangtools.yang.binding.DataObject;
29 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
30 import org.powermock.api.mockito.PowerMockito;
31 import org.powermock.api.support.membermodification.MemberMatcher;
32 import org.powermock.api.support.membermodification.MemberModifier;
33 import org.powermock.core.classloader.annotations.PrepareForTest;
34 import org.powermock.modules.junit4.PowerMockRunner;
36 @PrepareForTest(ControllerRemovedCommand.class)
37 @RunWith(PowerMockRunner.class)
38 public class ControllerRemovedCommandTest {
40 @Mock private ControllerRemovedCommand contRemoveCmd;
41 @Mock private AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> changes;
42 @Mock private AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> returnChanges;
43 @Mock private Set<InstanceIdentifier<ControllerEntry>> removed;
44 @Mock private Map<InstanceIdentifier<ControllerEntry>, ControllerEntry> operationalControllerEntries;
45 @Mock private Map<InstanceIdentifier<OvsdbBridgeAugmentation>, OvsdbBridgeAugmentation> created;
46 @Mock private Map<InstanceIdentifier<OvsdbBridgeAugmentation>, OvsdbBridgeAugmentation> updated;
48 public void setUp() throws Exception {
49 contRemoveCmd = mock(ControllerRemovedCommand.class, Mockito.CALLS_REAL_METHODS);
53 public void testExecute() throws Exception {
54 TransactionBuilder transaction = mock( TransactionBuilder.class, Mockito.RETURNS_MOCKS);
56 PowerMockito.mockStatic(TransactUtils.class);
57 when(TransactUtils.extractRemoved(changes, ControllerEntry.class)).thenReturn(removed);
58 when(TransactUtils.extractOriginal(changes, ControllerEntry.class)).thenReturn(operationalControllerEntries);
59 when(TransactUtils.extractCreated(changes, OvsdbBridgeAugmentation.class)).thenReturn(created);
60 when(TransactUtils.extractUpdated(changes, OvsdbBridgeAugmentation.class)).thenReturn(updated);
62 MemberModifier.suppress(MemberMatcher.method(ControllerRemovedCommand.class, "getChanges"));
63 when(contRemoveCmd.getChanges()).thenReturn(returnChanges);
65 contRemoveCmd.execute(transaction);
66 verify(contRemoveCmd, times(3)).getChanges();