/*
* Copyright (c) 2015 Inocybe Technologies and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.ovsdb.southbound.ovsdb.transact;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
import org.opendaylight.ovsdb.lib.operations.TransactionBuilder;
import org.opendaylight.ovsdb.southbound.InstanceIdentifierCodec;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@PrepareForTest({})
@RunWith(PowerMockRunner.class)
public class TransactCommandAggregatorTest {
private List<TransactCommand> commands = new ArrayList<>();
private TransactCommandAggregator transactCommandAggregator;
@Mock private AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> changes;
@Mock private BridgeOperationalState operationalState;
@Before
public void setUp() throws Exception {
transactCommandAggregator = new TransactCommandAggregator();
//mock commands field
commands.add(mock(BridgeUpdateCommand.class));
commands.add(mock(OpenVSwitchBridgeAddCommand.class));
commands.add(mock(ControllerUpdateCommand.class));
commands.add(mock(ControllerRemovedCommand.class));
commands.add(mock(ProtocolUpdateCommand.class));
commands.add(mock(ProtocolRemovedCommand.class));
commands.add(mock(BridgeRemovedCommand.class));
commands.add(mock(TerminationPointCreateCommand.class));
commands.add(mock(TerminationPointDeleteCommand.class));
commands.add(mock(OvsdbNodeUpdateCommand.class));
commands.add(mock(AutoAttachUpdateCommand.class));
commands.add(mock(AutoAttachRemovedCommand.class));
commands.add(mock(QosUpdateCommand.class));
commands.add(mock(QosRemovedCommand.class));
commands.add(mock(QueueUpdateCommand.class));
commands.add(mock(QueueRemovedCommand.class));
commands.add(mock(TerminationPointUpdateCommand.class));
}
@Test
@Ignore("This needs to be rewritten")
public void testExecute() {
TransactionBuilder transaction = mock(TransactionBuilder.class);
for (TransactCommand command: commands) {
doNothing().when(command).execute(any(TransactionBuilder.class), any(BridgeOperationalState.class),
any(AsyncDataChangeEvent.class), any(InstanceIdentifierCodec.class));
}
transactCommandAggregator.execute(transaction, mock(BridgeOperationalState.class),
mock(AsyncDataChangeEvent.class), mock(InstanceIdentifierCodec.class));
for (TransactCommand command: commands) {
verify(command).execute(any(TransactionBuilder.class), any(BridgeOperationalState.class),
any(AsyncDataChangeEvent.class), any(InstanceIdentifierCodec.class));
}
}
}