Merge "BUG 1712 - Distributed DataStore does not work properly with Transaction...
[controller.git] / opendaylight / config / config-util / src / test / java / org / opendaylight / controller / config / util / TestingConfigRegistry.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.util;
9
10 import java.util.HashMap;
11 import java.util.List;
12 import java.util.Map;
13 import java.util.Set;
14
15 import javax.management.InstanceNotFoundException;
16 import javax.management.ObjectName;
17
18 import org.opendaylight.controller.config.api.ConflictingVersionException;
19 import org.opendaylight.controller.config.api.ModuleIdentifier;
20 import org.opendaylight.controller.config.api.ValidationException;
21 import org.opendaylight.controller.config.api.jmx.CommitStatus;
22 import org.opendaylight.controller.config.api.jmx.ConfigRegistryMXBean;
23 import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
24
25 import com.google.common.collect.Sets;
26
27 public class TestingConfigRegistry implements ConfigRegistryMXBean {
28
29     static final ObjectName conf1, conf2, conf3, run1, run2, run3;
30     public static String check;
31     public static boolean checkBool;
32     private Map<String, ObjectName> map = new HashMap<>();
33
34     public static final String moduleName1 = "moduleA";
35     public static final String moduleName2 = "moduleB";
36     public static final String instName1 = "instA";
37     public static final String instName2 = "instB";
38     public static final String refName1 = "refA";
39     public static final String refName2 = "refB";
40     public static final String serviceQName1 = "qnameA";
41     public static final String serviceQName2 = "qnameB";
42
43     static {
44         conf1 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
45                 + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
46                 + "=" + moduleName1 + "," + ObjectNameUtil.SERVICE_QNAME_KEY
47                 + "=" + serviceQName1 + "," + ObjectNameUtil.REF_NAME_KEY
48                 + "=" + refName1);
49         conf2 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
50                 + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
51                 + "=" + moduleName1 + "," + ObjectNameUtil.INSTANCE_NAME_KEY
52                 + "=" + instName1 + "," + ObjectNameUtil.SERVICE_QNAME_KEY
53                 + "=" + serviceQName2 + "," + ObjectNameUtil.REF_NAME_KEY
54                 + "=" + refName1);
55         conf3 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
56                 + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
57                 + "=" + moduleName2 + "," + ObjectNameUtil.INSTANCE_NAME_KEY
58                 + "=" + instName2);
59         run1 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
60                 + ":type=RuntimeBean," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
61                 + "=" + moduleName1);
62         run2 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
63                 + ":type=RuntimeBean," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
64                 + "=" + moduleName1 + "," + ObjectNameUtil.INSTANCE_NAME_KEY
65                 + "=" + instName1);
66         run3 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
67                 + ":type=RuntimeBean," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
68                 + "=" + moduleName2 + "," + ObjectNameUtil.INSTANCE_NAME_KEY
69                 + "=" + instName2);
70
71         check = null;
72         checkBool = false;
73
74     }
75
76     @Override
77     public ObjectName beginConfig() {
78         return conf2;
79     }
80
81     @Override
82     public CommitStatus commitConfig(ObjectName transactonControllerON)
83             throws ConflictingVersionException, ValidationException {
84         if (transactonControllerON == null) {
85             Exception e = new RuntimeException("message");
86             throw ValidationException.createForSingleException(
87                     new ModuleIdentifier("moduleName", "instanceName"), e);
88         }
89         return null;
90     }
91
92     @Override
93     public List<ObjectName> getOpenConfigs() {
94         return null;
95     }
96
97     @Override
98     public boolean isHealthy() {
99         return false;
100     }
101
102     @Override
103     public Set<String> getAvailableModuleNames() {
104         return null;
105     }
106
107     @Override
108     public Set<ObjectName> lookupConfigBeans() {
109         return Sets.newHashSet(conf1, conf2, conf3);
110     }
111
112     @Override
113     public Set<ObjectName> lookupConfigBeans(String moduleName) {
114         if (moduleName.equals(moduleName1)) {
115             return Sets.newHashSet(conf1, conf2);
116         } else if (moduleName.equals(moduleName2)) {
117             return Sets.newHashSet(conf3);
118         } else {
119             return null;
120         }
121     }
122
123     @Override
124     public Set<ObjectName> lookupConfigBeans(String moduleName,
125             String instanceName) {
126         if (moduleName.equals(moduleName1) && instanceName.equals(instName1)) {
127             return Sets.newHashSet(conf2);
128         } else if (moduleName.equals(moduleName2)
129                 && instanceName.equals(instName2)) {
130             return Sets.newHashSet(conf3);
131         } else {
132             return null;
133         }
134     }
135
136     @Override
137     public ObjectName lookupConfigBean(String moduleName, String instanceName)
138             throws InstanceNotFoundException {
139         if (moduleName.equals(InstanceNotFoundException.class.getSimpleName())) {
140             throw new InstanceNotFoundException();
141         }
142         return conf3;
143     }
144
145     @Override
146     public Set<ObjectName> lookupRuntimeBeans() {
147         return Sets.<ObjectName> newHashSet(run1, run2, run3);
148     }
149
150     @Override
151     public Set<ObjectName> lookupRuntimeBeans(String moduleName,
152             String instanceName) {
153         if (moduleName.equals(moduleName1) && instanceName.equals(instName1)) {
154             return Sets.<ObjectName> newHashSet(run2);
155         } else if (moduleName.equals(moduleName2)
156                 && instanceName.equals(instName2)) {
157             return Sets.<ObjectName> newHashSet(run3);
158         } else {
159             return Sets.<ObjectName> newHashSet();
160         }
161     }
162
163     @Override
164     public void checkConfigBeanExists(ObjectName objectName) throws InstanceNotFoundException {
165         Set<ObjectName> configBeans = Sets.<ObjectName> newHashSet(run1, run2, run3);
166         if(configBeans.size()>0){
167             checkBool = true;
168         }
169     }
170
171     @Override
172     public ObjectName lookupConfigBeanByServiceInterfaceName(String serviceInterfaceQName, String refName) {
173         if (serviceInterfaceQName.equals(serviceQName1) && refName.equals(refName1)) {
174             return conf1;
175         }
176         else{
177             return null;
178         }
179     }
180
181     @Override
182     public Map<String, Map<String, ObjectName>> getServiceMapping() {
183         return null;
184     }
185
186     @Override
187     public Map<String, ObjectName> lookupServiceReferencesByServiceInterfaceName(String serviceInterfaceQName) {
188
189         if(serviceInterfaceQName.equals(serviceQName1)){
190             map.put("conf1", conf1);
191         }
192         else if(serviceInterfaceQName.equals(serviceQName2)){
193             map.put("conf2", conf2);
194         }
195         else{
196             map.put("conf3", conf3);
197         }
198         return map;
199     }
200
201     @Override
202     public Set<String> lookupServiceInterfaceNames(ObjectName objectName) throws InstanceNotFoundException {
203         return Sets.<String> newHashSet(serviceQName1, serviceQName2);
204     }
205
206     @Override
207     public String getServiceInterfaceName(String namespace, String localName) {
208         return null;
209     }
210
211     @Override
212     public Set<String> getAvailableModuleFactoryQNames() {
213         return Sets.<String> newHashSet(moduleName1, moduleName2);
214     }
215
216     @Override
217     public ObjectName getServiceReference(String serviceInterfaceQName, String refName) throws InstanceNotFoundException {
218         return conf1;
219     }
220
221     @Override
222     public void checkServiceReferenceExists(ObjectName objectName) throws InstanceNotFoundException {
223         throw new UnsupportedOperationException();
224     }
225 }