1 package com.atlassian.plugin.osgi.factory.transform;
2
3 import junit.framework.TestCase;
4 import org.dom4j.DocumentHelper;
5 import org.dom4j.Element;
6
7 import java.io.IOException;
8
9 public class TestComponentSpringTransformer extends TestCase
10 {
11 public void testTransform() throws IOException
12 {
13 ComponentSpringTransformer transformer = new ComponentSpringTransformer();
14
15
16 Element pluginRoot = DocumentHelper.createDocument().addElement("atlassian-plugin");
17 Element component = pluginRoot.addElement("component");
18 component.addAttribute("key", "foo");
19 component.addAttribute("class", "my.Foo");
20 SpringTransformerTestHelper.transform(transformer, pluginRoot, "beans:bean[@id='foo' and @class='my.Foo']");
21
22
23 pluginRoot = DocumentHelper.createDocument().addElement("atlassian-plugin");
24 component = pluginRoot.addElement("component");
25 component.addAttribute("key", "foo");
26 component.addAttribute("class", "my.Foo");
27 component.addAttribute("public", "true");
28 SpringTransformerTestHelper.transform(transformer, pluginRoot, "beans:bean[@id='foo' and @class='my.Foo']",
29 "osgi:service[@id='foo_osgiService' and @ref='foo']");
30
31
32 pluginRoot = DocumentHelper.createDocument().addElement("atlassian-plugin");
33 component = pluginRoot.addElement("component");
34 component.addAttribute("key", "foo");
35 component.addAttribute("class", "my.Foo");
36 component.addAttribute("public", "true");
37 Element inf = component.addElement("interface");
38 inf.setText("my.IFoo");
39 SpringTransformerTestHelper.transform(transformer, pluginRoot, "beans:bean[@id='foo' and @class='my.Foo']",
40 "osgi:service[@id='foo_osgiService' and @ref='foo']",
41 "//osgi:interfaces",
42 "//beans:value[.='my.IFoo']");
43
44
45 pluginRoot = DocumentHelper.createDocument().addElement("atlassian-plugin");
46 SpringTransformerTestHelper.transform(transformer, pluginRoot, "count(/atlassian-plugin/child::*)=0");
47 }
48
49 }