blob: ea5ba322b651fc37158c96f38f378cca07d8029e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2010 VMware Inc.
* 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:
* VMware Inc. - initial contribution
*******************************************************************************/
package org.eclipse.virgo.kernel.config.internal.commandline;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.junit.Test;
import org.eclipse.virgo.kernel.config.internal.PropertiesSource;
import org.eclipse.virgo.kernel.config.internal.commandline.CommandLinePropertiesSource;
import org.eclipse.virgo.medic.test.eventlog.LoggedEvent;
import org.eclipse.virgo.medic.test.eventlog.MockEventLogger;
import org.eclipse.virgo.test.stubs..framework.StubBundleContext;
public class CommandLinePropertiesSourceTests {
private StubBundleContext bundleContext = new StubBundleContext();
private MockEventLogger eventLogger = new MockEventLogger();
@Test
public void defaults() {
PropertiesSource propertiesSource = new CommandLinePropertiesSource(this.bundleContext, this.eventLogger);
Map<String, Properties> configurationProperties = propertiesSource.getConfigurationProperties();
Properties properties = configurationProperties.get("org.eclipse.virgo.kernel.userregion");
assertEquals(null, properties);
assertEquals(0, this.eventLogger.getLoggedEvents().size());
}
@Test
public void singlePlanWithVersion() {
this.bundleContext.addProperty("eclipse.commands", "-plan\nfoo\n1");
PropertiesSource propertiesSource = new CommandLinePropertiesSource(this.bundleContext, this.eventLogger);
Map<String, Properties> configurationProperties = propertiesSource.getConfigurationProperties();
Properties properties = configurationProperties.get("org.eclipse.virgo.kernel.userregion");
assertNotNull(properties);
assertEquals("repository:plan/foo/1", properties.get("commandLineArtifacts"));
assertEquals(0, this.eventLogger.getLoggedEvents().size());
}
@Test
public void singlePlanWithoutVersion() {
this.bundleContext.addProperty("eclipse.commands", "-plan\nfoo");
PropertiesSource propertiesSource = new CommandLinePropertiesSource(this.bundleContext, this.eventLogger);
Map<String, Properties> configurationProperties = propertiesSource.getConfigurationProperties();
Properties properties = configurationProperties.get("org.eclipse.virgo.kernel.userregion");
assertNotNull(properties);
assertEquals("repository:plan/foo", properties.get("commandLineArtifacts"));
assertEquals(0, this.eventLogger.getLoggedEvents().size());
}
@Test
public void multiplePlans() {
this.bundleContext.addProperty("eclipse.commands", "-plan\nfoo\n-plan\nbar\n1.2.3");
PropertiesSource propertiesSource = new CommandLinePropertiesSource(this.bundleContext, this.eventLogger);
Map<String, Properties> configurationProperties = propertiesSource.getConfigurationProperties();
Properties properties = configurationProperties.get("org.eclipse.virgo.kernel.userregion");
assertNotNull(properties);
assertEquals("repository:plan/foo,repository:plan/bar/1.2.3", properties.get("commandLineArtifacts"));
assertEquals(0, this.eventLogger.getLoggedEvents().size());
}
@Test
public void planWithMissingArguments() {
this.bundleContext.addProperty("eclipse.commands", "-plan");
PropertiesSource propertiesSource = new CommandLinePropertiesSource(this.bundleContext, this.eventLogger);
Map<String, Properties> configurationProperties = propertiesSource.getConfigurationProperties();
Properties properties = configurationProperties.get("org.eclipse.virgo.kernel.userregion");
assertEquals(null, properties);
List<LoggedEvent> loggedEvents = this.eventLogger.getLoggedEvents();
assertEquals(1, loggedEvents.size());
assertArrayEquals(new Object[] {0, ""}, loggedEvents.get(0).getInserts());
}
@Test
public void planWithSurplusArguments() {
this.bundleContext.addProperty("eclipse.commands", "-plan\nfoo\nbar\n1.2.3");
PropertiesSource propertiesSource = new CommandLinePropertiesSource(this.bundleContext, this.eventLogger);
Map<String, Properties> configurationProperties = propertiesSource.getConfigurationProperties();
Properties properties = configurationProperties.get("org.eclipse.virgo.kernel.userregion");
assertEquals(null, properties);
List<LoggedEvent> loggedEvents = this.eventLogger.getLoggedEvents();
assertEquals(1, loggedEvents.size());
assertArrayEquals(new Object[] {3, "foo, bar, 1.2.3"}, loggedEvents.get(0).getInserts());
}
}