2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
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
9 package org.opendaylight.controller.config.yang.test.impl;
11 import static java.util.Arrays.asList;
12 import static org.junit.Assert.assertEquals;
13 import static org.junit.Assert.assertNull;
14 import static org.opendaylight.controller.config.api.jmx.ObjectNameUtil.getInstanceName;
15 import static org.opendaylight.controller.config.api.jmx.ObjectNameUtil.getTransactionName;
17 import java.util.List;
18 import javax.management.ObjectName;
19 import org.junit.Before;
20 import org.junit.Test;
21 import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
22 import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
23 import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
25 public class MultipleDependenciesModuleTest extends AbstractConfigTest {
26 private static final MultipleDependenciesModuleFactory factory = new MultipleDependenciesModuleFactory();
29 public void setUp() throws Exception {
30 super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(mockedContext, factory));
34 public void testMultipleDependencies() throws Exception {
35 ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
36 ObjectName d1 = transaction.createModule(factory.getImplementationName(), "d1");
37 ObjectName d2 = transaction.createModule(factory.getImplementationName(), "d2");
39 assertEquals(transaction.getTransactionName(), getTransactionName(d1));
41 ObjectName parent = transaction.createModule(factory.getImplementationName(), "parent");
42 MultipleDependenciesModuleMXBean multipleDependenciesModuleMXBean = transaction.newMXBeanProxy(parent, MultipleDependenciesModuleMXBean.class);
43 multipleDependenciesModuleMXBean.setTestingDeps(asList(d1, d2));
44 List<ObjectName> found = multipleDependenciesModuleMXBean.getTestingDeps();
45 ObjectName d1WithoutTxName = found.get(0);
46 assertEquals(getInstanceName(d1), getInstanceName(d1WithoutTxName));
47 // check that transaction name gets stripped automatically from attribute.
48 // d1,2 contained tx name, found doesn't
49 assertNull(getTransactionName(d1WithoutTxName));