Bug 116 - Revisit SanityTest
[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.List;
11 import java.util.Set;
12
13 import javax.management.InstanceNotFoundException;
14 import javax.management.ObjectName;
15
16 import org.opendaylight.controller.config.api.ConflictingVersionException;
17 import org.opendaylight.controller.config.api.ModuleIdentifier;
18 import org.opendaylight.controller.config.api.ValidationException;
19 import org.opendaylight.controller.config.api.jmx.CommitStatus;
20 import org.opendaylight.controller.config.api.jmx.ConfigRegistryMXBean;
21 import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
22
23 import com.google.common.collect.Sets;
24
25 public class TestingConfigRegistry implements ConfigRegistryMXBean {
26
27     static final ObjectName conf1, conf2, conf3, run1, run2, run3;
28
29     public static final String moduleName1 = "moduleA";
30     public static final String moduleName2 = "moduleB";
31     public static final String instName1 = "instA";
32     public static final String instName2 = "instB";
33
34     static {
35         conf1 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
36                 + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
37                 + "=" + moduleName1);
38         conf2 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
39                 + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
40                 + "=" + moduleName1 + "," + ObjectNameUtil.INSTANCE_NAME_KEY
41                 + "=" + instName1);
42         conf3 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
43                 + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
44                 + "=" + moduleName2 + "," + ObjectNameUtil.INSTANCE_NAME_KEY
45                 + "=" + instName2);
46         run1 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
47                 + ":type=RuntimeBean," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
48                 + "=" + moduleName1);
49         run2 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
50                 + ":type=RuntimeBean," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
51                 + "=" + moduleName1 + "," + ObjectNameUtil.INSTANCE_NAME_KEY
52                 + "=" + instName1);
53         run3 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
54                 + ":type=RuntimeBean," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
55                 + "=" + moduleName2 + "," + ObjectNameUtil.INSTANCE_NAME_KEY
56                 + "=" + instName2);
57     }
58
59     @Override
60     public ObjectName beginConfig() {
61         return null;
62     }
63
64     @Override
65     public CommitStatus commitConfig(ObjectName transactonControllerON)
66             throws ConflictingVersionException, ValidationException {
67         if (transactonControllerON == null) {
68             Exception e = new RuntimeException("message");
69             throw ValidationException.createForSingleException(
70                     new ModuleIdentifier("moduleName", "instanceName"), e);
71         }
72         return null;
73     }
74
75     @Override
76     public List<ObjectName> getOpenConfigs() {
77         return null;
78     }
79
80     @Override
81     public boolean isHealthy() {
82         return false;
83     }
84
85     @Override
86     public Set<String> getAvailableModuleNames() {
87         return null;
88     }
89
90     @Override
91     public Set<ObjectName> lookupConfigBeans() {
92         return Sets.newHashSet(conf1, conf2, conf3);
93     }
94
95     @Override
96     public Set<ObjectName> lookupConfigBeans(String moduleName) {
97         if (moduleName.equals(moduleName1)) {
98             return Sets.newHashSet(conf1, conf2);
99         } else if (moduleName.equals(moduleName2)) {
100             return Sets.newHashSet(conf3);
101         } else {
102             return null;
103         }
104     }
105
106     @Override
107     public Set<ObjectName> lookupConfigBeans(String moduleName,
108             String instanceName) {
109         if (moduleName.equals(moduleName1) && instanceName.equals(instName1)) {
110             return Sets.newHashSet(conf2);
111         } else if (moduleName.equals(moduleName2)
112                 && instanceName.equals(instName2)) {
113             return Sets.newHashSet(conf3);
114         } else {
115             return null;
116         }
117     }
118
119     @Override
120     public ObjectName lookupConfigBean(String moduleName, String instanceName)
121             throws InstanceNotFoundException {
122         if (moduleName.equals(InstanceNotFoundException.class.getSimpleName())) {
123             throw new InstanceNotFoundException();
124         }
125         return conf3;
126     }
127
128     @Override
129     public Set<ObjectName> lookupRuntimeBeans() {
130         return Sets.<ObjectName> newHashSet(run1, run2, run3);
131     }
132
133     @Override
134     public Set<ObjectName> lookupRuntimeBeans(String moduleName,
135             String instanceName) {
136         if (moduleName.equals(moduleName1) && instanceName.equals(instName1)) {
137             return Sets.<ObjectName> newHashSet(run2);
138         } else if (moduleName.equals(moduleName2)
139                 && instanceName.equals(instName2)) {
140             return Sets.<ObjectName> newHashSet(run3);
141         } else {
142             return Sets.<ObjectName> newHashSet();
143         }
144     }
145
146 }