blob: 876c46907d046818a3a13fd49426a8f935084d1c [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.snaps.core.internal.deployer;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import java.io.IOException;
import org.eclipse.gemini.web.tomcat.spi.WebBundleClassLoaderFactory;
import org.eclipse.virgo.kernel.install.artifact.BundleInstallArtifact;
import org.eclipse.virgo.medic.test.eventlog.MockEventLogger;
import org.eclipse.virgo.nano.deployer.api.core.DeploymentException;
import org.eclipse.virgo.test.stubs.framework.OSGiAssert;
import org.eclipse.virgo.test.stubs.framework.StubBundle;
import org.eclipse.virgo.test.stubs.framework.StubBundleContext;
import org.eclipse.virgo.util.osgi.manifest.BundleManifest;
import org.eclipse.virgo.util.osgi.manifest.internal.StandardBundleManifest;
import org.junit.Test;
import org.osgi.framework.Version;
public class SnapLifecycleListenerTests {
private WebBundleClassLoaderFactory classLoaderFactory = createMock(WebBundleClassLoaderFactory.class);
private SnapLifecycleListener lifecycleListener = new SnapLifecycleListener(classLoaderFactory, new MockEventLogger());
private final StubBundle bundle = new StubBundle("foo", new Version(1, 0, 0));
private final StubBundleContext bundleContext = (StubBundleContext) bundle.getBundleContext();
private final BundleManifest bundleManifest = new StandardBundleManifest(null);
@Test
public void standardLifecycle() throws IOException, DeploymentException {
BundleInstallArtifact installArtifact = createMock(BundleInstallArtifact.class);
bundleManifest.setHeader("Snap-Host", "myHost");
expect(installArtifact.getBundleManifest()).andReturn(bundleManifest).anyTimes();
expect(installArtifact.getBundle()).andReturn(bundle);
expect(installArtifact.getName()).andReturn("mySnap");
replay(installArtifact, classLoaderFactory);
lifecycleListener.onStarted(installArtifact);
OSGiAssert.assertServiceRegistrationCount(this.bundleContext, SnapFactory.class, 1);
lifecycleListener.onStopping(installArtifact);
OSGiAssert.assertServiceRegistrationCount(this.bundleContext, SnapFactory.class, 0);
verify(installArtifact, classLoaderFactory);
}
}