| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.apache.ace.deployment; |
| |
| import static org.apache.ace.test.utils.TestUtils.UNIT; |
| |
| import java.io.InputStream; |
| |
| import org.apache.ace.deployment.deploymentadmin.DeploymentAdminDeployer; |
| import org.apache.ace.test.utils.TestUtils; |
| import org.osgi.framework.Version; |
| import org.osgi.service.deploymentadmin.DeploymentAdmin; |
| import org.osgi.service.deploymentadmin.DeploymentPackage; |
| import org.osgi.service.log.LogService; |
| import org.testng.annotations.BeforeTest; |
| import org.testng.annotations.Test; |
| |
| public class DeploymentTest { |
| |
| private DeploymentAdminDeployer m_deploymentAdminDeployer; |
| private DeploymentPackage m_mockDeploymentPackage; |
| |
| private static final String MOCK_NAME = "MockName"; |
| private static final Version MOCK_VERSION = new Version("0.1"); |
| |
| @BeforeTest(alwaysRun = true) |
| protected void setUp() throws Exception { |
| m_deploymentAdminDeployer = new DeploymentAdminDeployer(); |
| TestUtils.configureObject(m_deploymentAdminDeployer, LogService.class); |
| Object mockDeploymentAdmin = TestUtils.createMockObjectAdapter(DeploymentAdmin.class, new MockDeploymentAdmin()); |
| TestUtils.configureObject(m_deploymentAdminDeployer, DeploymentAdmin.class, mockDeploymentAdmin); |
| m_mockDeploymentPackage = TestUtils.createMockObjectAdapter(DeploymentPackage.class, new MockDeploymentPackage()); |
| } |
| |
| @Test(groups = { UNIT }) |
| public void testDeployment() throws Exception { |
| Object deploymentPackage = m_deploymentAdminDeployer.install(null); |
| assert m_deploymentAdminDeployer.getName(deploymentPackage).equals(MOCK_NAME) : "Installation of mock deployment package failed"; |
| assert m_deploymentAdminDeployer.getVersion(deploymentPackage).equals(MOCK_VERSION) : "Installation of mock deployment package failed"; |
| assert ((DeploymentPackage) m_deploymentAdminDeployer.list()[0]).getName().equals(MOCK_NAME) : "List result does not match expected result"; |
| boolean exceptionthrown = false; |
| try { |
| m_deploymentAdminDeployer.getName(new String("illegalargument")); |
| } catch (IllegalArgumentException iae) { |
| exceptionthrown = true; |
| } |
| assert exceptionthrown : "Illegal argument for getName() did not throw exception"; |
| exceptionthrown = false; |
| try { |
| m_deploymentAdminDeployer.getVersion(new String("illegalargument")); |
| } catch (IllegalArgumentException iae) { |
| exceptionthrown = true; |
| } |
| assert exceptionthrown : "Illegal argument for getVersion() did not throw exception"; |
| } |
| |
| @SuppressWarnings("unused") |
| private class MockDeploymentAdmin { |
| public DeploymentPackage installDeploymentPackage(InputStream is) { |
| return m_mockDeploymentPackage; |
| } |
| |
| public DeploymentPackage[] listDeploymentPackages() { |
| return new DeploymentPackage[] {m_mockDeploymentPackage}; |
| } |
| } |
| |
| @SuppressWarnings("unused") |
| private class MockDeploymentPackage { |
| public String getName() { |
| return MOCK_NAME; |
| } |
| |
| public Version getVersion() { |
| return MOCK_VERSION; |
| } |
| } |
| } |