1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.container.di.componentgraph.core
import java.util
import java.util.Collections
import com.yahoo.container.di.osgi.OsgiUtil
import org.junit.Test
import org.junit.Assert._
import org.hamcrest.CoreMatchers.is
import org.hamcrest.Matchers.{contains, containsInAnyOrder}
import org.osgi.framework.wiring.BundleWiring
import scala.collection.JavaConverters._
import com.yahoo.container.bundle.MockBundle
/**
*
* @author gjoranv
* @since 5.17
*/
class JerseyNodeTest {
trait WithMockBundle {
object bundle extends MockBundle {
val entry = Map(
"com/foo" -> "Foo.class",
"com/bar" -> "Bar.class)"
) map { case (packageName, className) => (packageName, packageName + "/" + className)}
override def listResources(path: String, ignored: String, options: Int): util.Collection[String] = {
if ((options & BundleWiring.LISTRESOURCES_RECURSE) != 0 && path == "/") entry.values.asJavaCollection
else Collections.singleton(entry(path))
}
}
val bundleClasses = bundle.entry.values.toList
}
@Test
def all_bundle_entries_are_returned_when_no_packages_are_given() {
new WithMockBundle {
val entries = OsgiUtil.getClassEntriesInBundleClassPath(bundle, Set()).asJavaCollection
assertThat(entries, containsInAnyOrder(bundleClasses: _*))
}
}
@Test
def only_bundle_entries_from_the_given_packages_are_returned() {
new WithMockBundle {
val entries = OsgiUtil.getClassEntriesInBundleClassPath(bundle, Set("com.foo")).asJavaCollection
assertThat(entries, contains(bundle.entry("com/foo")))
}
}
@Test
def bundle_info_is_initialized() {
new WithMockBundle {
val bundleInfo = JerseyNode.createBundleInfo(bundle, List())
assertThat(bundleInfo.symbolicName, is(bundle.getSymbolicName))
assertThat(bundleInfo.version, is(bundle.getVersion))
assertThat(bundleInfo.fileLocation, is(bundle.getLocation))
}
}
}
|