Merge "Allow to disable default gw feature"
[controller.git] / opendaylight / config / config-manager / src / test / java / org / opendaylight / controller / config / manager / testingservices / parallelapsp / test / MockedDependenciesTest.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.manager.testingservices.parallelapsp.test;
9
10 import org.junit.Before;
11 import org.junit.Test;
12 import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;
13 import org.opendaylight.controller.config.api.ModuleIdentifier;
14 import org.opendaylight.controller.config.manager.impl.ClassBasedModuleFactory;
15 import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
16 import org.opendaylight.controller.config.manager.testingservices.parallelapsp.TestingParallelAPSPImpl;
17 import org.opendaylight.controller.config.manager.testingservices.parallelapsp.TestingParallelAPSPModuleFactory;
18 import org.opendaylight.controller.config.manager.testingservices.seviceinterface.TestingThreadPoolServiceInterface;
19 import org.opendaylight.controller.config.manager.testingservices.threadpool.TestingThreadPoolConfigMXBean;
20 import org.opendaylight.controller.config.manager.testingservices.threadpool.TestingThreadPoolIfc;
21 import org.opendaylight.controller.config.spi.Module;
22 import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
23
24 import javax.management.ObjectName;
25 import java.io.Closeable;
26 import java.io.IOException;
27 import java.util.concurrent.Executor;
28
29 public class MockedDependenciesTest extends AbstractParallelAPSPTest {
30     private final String threadPoolImplementationName = "mockedthreadpool";
31
32     @Before
33     public void setUp() {
34
35         ClassBasedModuleFactory mockedThreadPoolConfigFactory = new ClassBasedModuleFactory(
36                 threadPoolImplementationName, MockedThreadPoolModule.class);
37
38         super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(mockedContext,
39                 new TestingParallelAPSPModuleFactory(),
40                 mockedThreadPoolConfigFactory));
41     }
42
43     public static interface MockedTestingThreadPoolConfigMXBean extends
44             TestingThreadPoolConfigMXBean {
45         public void setThreadCount(int threadCount);
46     }
47
48     public static class MockedThreadPoolModule implements Module,
49             MockedTestingThreadPoolConfigMXBean,
50             TestingThreadPoolServiceInterface {
51
52         private final ModuleIdentifier moduleIdentifier;
53
54         int threadCount;
55
56         public MockedThreadPoolModule(
57                 DynamicMBeanWithInstance dynamicMBeanWithInstance, ModuleIdentifier moduleIdentifier) {
58             // no reconfiguration / reuse is supported
59             this.moduleIdentifier = moduleIdentifier;
60         }
61
62         @Override
63         public int getThreadCount() {
64             return threadCount;
65         }
66
67         @Override
68         public void setThreadCount(int threadCount) {
69             this.threadCount = threadCount;
70         }
71
72         @Override
73         public void validate() {
74
75         }
76
77         @Override
78         public Closeable getInstance() {
79             return new MockedThreadPool(threadCount);
80         }
81
82         @Override
83         public ModuleIdentifier getIdentifier() {
84             return moduleIdentifier;
85         }
86     }
87
88     public static class MockedThreadPool implements TestingThreadPoolIfc,
89             Closeable {
90         private final int threadCount;
91
92         public MockedThreadPool(int threadCount) {
93             this.threadCount = threadCount;
94         }
95
96         @Override
97         public Executor getExecutor() {
98             return null;
99         }
100
101         @Override
102         public int getMaxNumberOfThreads() {
103             return threadCount;
104         }
105
106         @Override
107         public void close() throws IOException {
108
109         }
110     }
111
112     @Override
113     protected String getThreadPoolImplementationName() {
114         return threadPoolImplementationName;
115     }
116
117     @Test
118     public void testDependencies() throws Exception {
119         ConfigTransactionJMXClient transaction = configRegistryClient
120                 .createTransaction();
121         // create fixed1
122         ObjectName threadPoolTransactionON = createFixed1(transaction,
123                 TestingParallelAPSPImpl.MINIMAL_NUMBER_OF_THREADS);
124         // create apsp-parallel
125         createParallelAPSP(transaction, threadPoolTransactionON);
126
127         transaction.commit();
128     }
129
130 }