Merge "AbstractConfigTest - exposed BundleContext and ServiceRegistration mock."
[controller.git] / opendaylight / config / config-manager / src / test / java / org / opendaylight / controller / config / manager / impl / ConfigTransactionManagerImplTest.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.impl;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertTrue;
12 import static org.junit.Assert.fail;
13 import static org.mockito.Mockito.mock;
14
15 import javax.management.InstanceAlreadyExistsException;
16
17 import org.junit.Before;
18 import org.junit.Test;
19 import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
20 import org.opendaylight.controller.config.api.jmx.constants.ConfigRegistryConstants;
21 import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
22 import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
23 import org.opendaylight.controller.config.util.jolokia.ConfigTransactionJolokiaClient;
24
25 public class ConfigTransactionManagerImplTest extends
26         AbstractConfigWithJolokiaTest {
27
28     @Before
29     public void setUp() {
30         super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver());
31
32     }
33
34     @Test
35     public void testSingleton() {
36         ConfigRegistryImpl mockedRegistry = mock(ConfigRegistryImpl.class);
37         try {
38             configRegistryJMXRegistrator.registerToJMX(mockedRegistry);
39             fail();
40         } catch (Exception e) {
41             assertTrue(e instanceof InstanceAlreadyExistsException);
42         }
43     }
44
45     @Test
46     public void testCleanUp() {
47         super.cleanUpConfigTransactionManagerImpl();
48         setUp();
49     }
50
51     @Test
52     public void testRemoteCallsUsingJMX() throws Exception {
53         ConfigTransactionJMXClient transaction = configRegistryClient
54                 .createTransaction();
55         transaction.commit();
56     }
57
58     @Test
59     public void testRemoteCallsUsingJolokia() throws Exception {
60
61         ConfigTransactionJolokiaClient transactionClient = configRegistryJolokiaClient
62                 .createTransaction();
63
64         assertEquals("ConfigTransaction-0-1",
65                 ObjectNameUtil.getTransactionName(transactionClient
66                         .getTransactionON()));
67
68         assertEquals(
69                 ConfigRegistryConstants.ON_DOMAIN
70                         + ":TransactionName=ConfigTransaction-0-1,type=ConfigTransaction",
71                 transactionClient.getTransactionON().getCanonicalName());
72
73         // commit
74         transactionClient.commit();
75
76     }
77 }