/******************************************************************************* * 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.model.management.internal; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.isA; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.verify; import static org.junit.Assert.assertEquals; import java.lang.management.ManagementFactory; import javax.management.MBeanServer; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import org.eclipse.virgo.kernel.model.Artifact; import org.eclipse.virgo.kernel.model.StubCompositeArtifact; import org.eclipse.virgo.kernel.model.management.RuntimeArtifactModelObjectNameCreator; import org.eclipse.virgo.kernel.model.management.internal.JmxArtifactRepositoryListener; import org.eclipse.virgo.nano.serviceability.Assert.FatalAssertionException; import org.junit.Test; public class JmxArtifactRepositoryListenerTests { private final MBeanServer server = ManagementFactory.getPlatformMBeanServer(); private final RuntimeArtifactModelObjectNameCreator creator = createMock(RuntimeArtifactModelObjectNameCreator.class); private final JmxArtifactRepositoryListener listener = new JmxArtifactRepositoryListener(creator); @Test(expected = FatalAssertionException.class) public void nullCreator() { new JmxArtifactRepositoryListener(null); } @Test public void added() throws MalformedObjectNameException, NullPointerException { expect(this.creator.createArtifactModel(isA(Artifact.class))).andReturn(new ObjectName("test:key=1")); replay(creator); int initial = this.server.getMBeanCount(); this.listener.added(new StubCompositeArtifact()); assertEquals(initial + 1, (int) this.server.getMBeanCount()); verify(creator); } @Test public void removed() throws MalformedObjectNameException, NullPointerException { expect(this.creator.createArtifactModel(isA(Artifact.class))).andReturn(new ObjectName("test:key=1")).times(2); replay(creator); this.listener.added(new StubCompositeArtifact()); int initial = this.server.getMBeanCount(); this.listener.removed(new StubCompositeArtifact()); assertEquals(initial - 1, (int) this.server.getMBeanCount()); verify(creator); } }