| /* |
| * 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.sling.testing.mock.osgi; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertNotNull; |
| import static org.junit.Assert.assertNull; |
| import static org.junit.Assert.assertThat; |
| import static org.junit.Assert.assertTrue; |
| |
| import java.util.Collections; |
| import java.util.Enumeration; |
| import java.util.List; |
| |
| import org.hamcrest.CoreMatchers; |
| import org.junit.Before; |
| import org.junit.Test; |
| import org.osgi.framework.Bundle; |
| |
| import com.google.common.collect.ImmutableMap; |
| |
| public class MockBundleTest { |
| |
| private MockBundle bundle; |
| |
| @Before |
| public void setUp() { |
| bundle = (MockBundle) MockOsgi.newBundleContext().getBundle(); |
| } |
| |
| @Test |
| public void testBundleId() { |
| assertTrue(bundle.getBundleId() > 0); |
| } |
| |
| @Test |
| public void testBundleContxt() { |
| assertNotNull(bundle.getBundleContext()); |
| } |
| |
| @Test |
| public void testGetEntry() { |
| assertNotNull(bundle.getEntry("/META-INF/test.txt")); |
| assertNotNull(bundle.getEntry("META-INF/test.txt")); |
| assertNull(bundle.getEntry("/invalid")); |
| } |
| |
| @Test |
| public void testGetStatie() { |
| assertEquals(Bundle.ACTIVE, bundle.getState()); |
| } |
| |
| @Test |
| public void testGetHeaders() { |
| bundle.setHeaders(ImmutableMap.of("prop1", "value1")); |
| assertEquals("value1", bundle.getHeaders().get("prop1")); |
| assertEquals("value1", bundle.getHeaders("en").get("prop1")); |
| } |
| |
| @Test |
| public void testGetSymbolicName() throws Exception { |
| bundle.setSymbolicName("name-1"); |
| assertEquals("name-1", bundle.getSymbolicName()); |
| } |
| |
| @Test |
| public void testGetLastModified() { |
| bundle.setLastModified(42); |
| assertEquals(42, bundle.getLastModified()); |
| } |
| |
| @Test |
| public void getEntryPaths_noMatches() { |
| assertNull(bundle.getEntryPaths("resources")); |
| } |
| |
| @Test |
| public void getEntryPaths() { |
| |
| Enumeration<String> entryPaths = bundle.getEntryPaths("bundleData"); |
| |
| List<String> paths = Collections.list(entryPaths); |
| |
| assertThat(paths.size(), CoreMatchers.is(1)); |
| assertTrue(paths.contains("bundleData/nested/")); |
| } |
| |
| @Test |
| public void getEntryPaths_leadingSlash() { |
| |
| Enumeration<String> entryPaths = bundle.getEntryPaths("bundleData"); |
| |
| List<String> paths = Collections.list(entryPaths); |
| |
| assertThat(paths.size(), CoreMatchers.is(1)); |
| assertTrue(paths.contains("bundleData/nested/")); |
| } |
| |
| @Test |
| public void getEntryPaths_slash() { |
| |
| Enumeration<String> entryPaths = bundle.getEntryPaths("/"); |
| |
| List<String> paths = Collections.list(entryPaths); |
| |
| // intentionally less precise as we don't want to be broken when e.g. test resources change |
| assertTrue(paths.size() >= 3); |
| assertTrue(paths.contains("bundleData/")); |
| assertTrue(paths.contains("OSGI-INF/")); |
| assertTrue(paths.contains("META-INF/")); |
| } |
| |
| @Test |
| public void getEntryPaths_empty() { |
| |
| Enumeration<String> entryPaths = bundle.getEntryPaths("/"); |
| |
| List<String> paths = Collections.list(entryPaths); |
| |
| // intentionally less precise as we don't want to be broken when e.g. test resources change |
| assertTrue(paths.size() >= 3); |
| assertTrue(paths.contains("bundleData/")); |
| assertTrue(paths.contains("OSGI-INF/")); |
| assertTrue(paths.contains("META-INF/")); |
| } |
| |
| @Test |
| public void getEntryPaths_noMatch() { |
| |
| assertNull(bundle.getEntryPaths("/EMPTY")); |
| assertNull(bundle.getEntryPaths("EMPTY")); |
| } |
| |
| @Test |
| public void getEntryPaths_Nested() { |
| |
| Enumeration<String> entryPaths = bundle.getEntryPaths("bundleData/nested"); |
| |
| List<String> paths = Collections.list(entryPaths); |
| |
| assertThat(paths.size(), CoreMatchers.is(2)); |
| assertTrue(paths.contains("bundleData/nested/first.txt")); |
| assertTrue(paths.contains("bundleData/nested/second.txt")); |
| } |
| } |