blob: 15de465792bf487f0fae5123f2318dc4ff8dc52f [file] [log] [blame]
/* Copyright (c) 2010 Olivier Girardot
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Olivier Girardot - initial contribution
*/
package org.eclipse.virgo.kernel.config.internal;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import java.io.IOException;
import java.util.Dictionary;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
import org.eclipse.virgo.kernel.StubConfigurationAdmin;
import org.eclipse.virgo.nano.serviceability.Assert.FatalAssertionException;
import org.junit.Test;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
/**
* This class is for testing {@link ConfigurationAdminConfigurationInfo} class,
* an implementation of the {@link ConfigurationInfo} interface.
*/
public class ConfigurationAdminConfigurationInfoTests {
private static final String CONFIG_INFO_TEST_PID = "CUSTOM_PID";
@Test
public void testGetPid() {
ConfigurationAdmin stubAdmin = new StubConfigurationAdmin();
ConfigurationInfo configurationInfo = new ConfigurationAdminConfigurationInfo(stubAdmin, CONFIG_INFO_TEST_PID);
assertEquals(CONFIG_INFO_TEST_PID, configurationInfo.getPid());
}
@Test
public void testGetPropertiesFromEmptyConfiguration() {
ConfigurationAdmin stubAdmin = new StubConfigurationAdmin();
ConfigurationInfo configurationInfo = new ConfigurationAdminConfigurationInfo(stubAdmin, CONFIG_INFO_TEST_PID);
assertEquals("Properties map should be empty.", new HashMap<String, String>(), configurationInfo.getProperties());
}
@Test
public void testFailingConfigurationAdmin() throws IOException {
ConfigurationAdmin mockAdmin = createMock(ConfigurationAdmin.class);
expect(mockAdmin.getConfiguration(CONFIG_INFO_TEST_PID, null)).andThrow(new IOException("Error trying to load configuration"));
replay(mockAdmin);
ConfigurationInfo configurationInfo = new ConfigurationAdminConfigurationInfo(mockAdmin, CONFIG_INFO_TEST_PID);
assertNull(configurationInfo.getProperties());
}
@Test(expected=FatalAssertionException.class)
public void testFailingConstructorWithNullConfigurationAdmin() throws IOException {
ConfigurationInfo configurationInfo = new ConfigurationAdminConfigurationInfo(null, CONFIG_INFO_TEST_PID);
}
@Test
public void testGetPropertiesWithFilledConfiguration() throws IOException {
ConfigurationAdmin stubAdmin = new StubConfigurationAdmin();
Configuration config = stubAdmin.getConfiguration(CONFIG_INFO_TEST_PID, null);
Dictionary<String, String> dict = new Hashtable<String, String>();
dict.put("key", "value");
config.update(dict);
ConfigurationInfo configurationInfo = new ConfigurationAdminConfigurationInfo(stubAdmin, CONFIG_INFO_TEST_PID);
Map<String, String> expectedMap = new HashMap<String, String>();
expectedMap.put("key", "value");
assertEquals(expectedMap, configurationInfo.getProperties());
}
}