Merge "Terminate SLAVE task before sending role change"
[openflowplugin.git] / applications / topology-manager / src / test / java / org / opendaylight / openflowplugin / applications / topology / manager / OperationProcessorTest.java
1 /*
2  * Copyright (c) 2016 Pantheon Technologies 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.openflowplugin.applications.topology.manager;
9
10 import static org.mockito.Mockito.times;
11
12 import org.junit.Before;
13 import org.junit.Test;
14 import org.junit.runner.RunWith;
15 import org.mockito.Matchers;
16 import org.mockito.Mock;
17 import org.mockito.Mockito;
18 import org.mockito.runners.MockitoJUnitRunner;
19 import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;
20 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
21 import org.opendaylight.controller.md.sal.common.api.data.AsyncTransaction;
22 import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;
23
24 @RunWith(MockitoJUnitRunner.class)
25 public class OperationProcessorTest {
26
27
28     OperationProcessor processor;
29
30     @Mock
31     DataBroker dataBroker;
32     @Mock
33     BindingTransactionChain transactionChain;
34     @Mock
35     TransactionChainListener transactionChainListener;
36     @Mock
37     AsyncTransaction asyncTransaction;
38     @Mock
39     Throwable throwable;
40
41     @Before
42     public void setUp() {
43         Mockito.when(dataBroker.createTransactionChain(Matchers.any(OperationProcessor.class)))
44                 .thenReturn(transactionChain);
45         processor = new OperationProcessor(dataBroker);
46     }
47
48     @Test
49     public void onTransactionChainFailedTest() {
50         processor.onTransactionChainFailed(transactionChain, asyncTransaction, throwable);
51         Mockito.verify(transactionChain).close();
52         //dataBroker.createTransactionChain is called 2 time
53         // (first time in constructor, second time after old chain has been closed)
54         Mockito.verify(dataBroker, times(2)).createTransactionChain(Matchers.any(OperationProcessor.class));
55     }
56
57     @Test
58     public void closeTest() {
59         processor.close();
60         Mockito.verify(transactionChain).close();
61     }
62
63
64 }