Author: clement
Date: Wed Aug 27 01:41:10 2008
New Revision: 689412
URL: http://svn.apache.org/viewvc?rev=689412&view=rev
Log:
Improve test checking the inner class support
- constructor can access outer class managed fields
- static class can access outer class fields
Modified:
felix/trunk/ipojo/tests/manipulator/manipulation/src/main/java/org/apache/felix/ipojo/test/scenarios/component/InnerClasses.java
felix/trunk/ipojo/tests/manipulator/manipulation/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/NestedClassesTests.java
Modified:
felix/trunk/ipojo/tests/manipulator/manipulation/src/main/java/org/apache/felix/ipojo/test/scenarios/component/InnerClasses.java
URL:
http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/manipulator/manipulation/src/main/java/org/apache/felix/ipojo/test/scenarios/component/InnerClasses.java?rev=689412&r1=689411&r2=689412&view=diff
==============================================================================
---
felix/trunk/ipojo/tests/manipulator/manipulation/src/main/java/org/apache/felix/ipojo/test/scenarios/component/InnerClasses.java
(original)
+++
felix/trunk/ipojo/tests/manipulator/manipulation/src/main/java/org/apache/felix/ipojo/test/scenarios/component/InnerClasses.java
Wed Aug 27 01:41:10 2008
@@ -22,6 +22,8 @@
private String nonObject = "not-managed";
private int nonInt = 5;
+
+ private static int staticint = 6;
public boolean check() {
return true;
@@ -33,6 +35,8 @@
props.put("packageInner", new PackageNested().doSomething());
props.put("protectedInner", new ProtectedNested().doSomething());
props.put("privateInner", new PrivateNested().doSomething());
+ props.put("constructorInner", new ConstructorNested().doSomething());
+ props.put("staticInner", new StaticNested().doSomething());
Job anonymous = new Job() {
public Map doSomething() {
@@ -52,6 +56,7 @@
};
props.put("anonymous", anonymous.doSomething());
+ props.put("public", new PublicNested());
return props;
@@ -125,6 +130,36 @@
}
}
+ protected static class StaticNested implements Job {
+ private Map map = new HashMap();
+
+ public Map doSomething() {
+ map.put("static", new Boolean(true));
+ map.put("staticint", new Integer(staticint));
+ return map;
+ }
+ }
+
+ protected class ConstructorNested implements Job {
+ Map map = new HashMap();
+ public ConstructorNested() {
+ map.put("publicObject", publicObject);
+ map.put("publicInt", new Integer(publicInt));
+ map.put("packageObject", packageObject);
+ map.put("packageInt", new Integer(packageInt));
+ map.put("protectedObject", protectedObject);
+ map.put("protectedInt", new Integer(protectedInt));
+ map.put("privateObject", privateObject);
+ map.put("privateInt", new Integer(privateInt));
+ map.put("nonObject", nonObject);
+ map.put("nonInt", new Integer(nonInt));
+ }
+
+ public Map doSomething() {
+ return map;
+ }
+ }
+
}
Modified:
felix/trunk/ipojo/tests/manipulator/manipulation/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/NestedClassesTests.java
URL:
http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/manipulator/manipulation/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/NestedClassesTests.java?rev=689412&r1=689411&r2=689412&view=diff
==============================================================================
---
felix/trunk/ipojo/tests/manipulator/manipulation/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/NestedClassesTests.java
(original)
+++
felix/trunk/ipojo/tests/manipulator/manipulation/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/NestedClassesTests.java
Wed Aug 27 01:41:10 2008
@@ -6,6 +6,8 @@
import org.apache.felix.ipojo.ComponentInstance;
import org.apache.felix.ipojo.Factory;
import org.apache.felix.ipojo.junit4osgi.OSGiTestCase;
+import org.apache.felix.ipojo.test.scenarios.component.InnerClasses;
+import
org.apache.felix.ipojo.test.scenarios.component.InnerClasses.PublicNested;
import org.apache.felix.ipojo.test.scenarios.manipulation.service.CheckService;
import org.apache.felix.ipojo.test.scenarios.util.Utils;
import org.osgi.framework.ServiceReference;
@@ -113,6 +115,32 @@
}
+ public void testConstructorInnerClass() {
+ Map data = (Map) service.getProps().get("constructorInner");
+ assertNotNull("Check data existency", data);
+
+ assertEquals("Check public object", "publicObject",
data.get("publicObject"));
+ assertEquals("Check public int", new Integer(0),
data.get("publicInt"));
+ assertEquals("Check protected object", "protectedObject",
data.get("protectedObject"));
+ assertEquals("Check protected int", new Integer(2),
data.get("protectedInt"));
+ assertEquals("Check package object", "packageObject",
data.get("packageObject"));
+ assertEquals("Check package int", new Integer(1),
data.get("packageInt"));
+ assertEquals("Check private object", "privateObject",
data.get("privateObject"));
+ assertEquals("Check private int", new Integer(3),
data.get("privateInt"));
+ assertEquals("Check non-managed object", "not-managed",
data.get("nonObject"));
+ assertEquals("Check non-managed int", new Integer(5),
data.get("nonInt"));
+
+ }
+
+ public void testStaticInnerClass() {
+ Map data = (Map) service.getProps().get("staticInner");
+ assertNotNull("Check data existency", data);
+
+ assertEquals("Check static", new Boolean(true), data.get("static"));
+ assertEquals("Check static int", new Integer(6),
data.get("staticint"));
+
+ }
+
public void testAnonymousInnerClass() {
Map data = (Map) service.getProps().get("anonymous");
assertNotNull("Check data existency", data);
@@ -130,6 +158,26 @@
}
+ public void testInnerAccess() {
+ Map map = (Map) service.getProps();
+ assertNotNull("Check map existency", map);
+
+ InnerClasses.PublicNested p = (PublicNested) map.get("public");
+ Map data = p.doSomething();
+
+ assertEquals("Check public object", "publicObject",
data.get("publicObject"));
+ assertEquals("Check public int", new Integer(0),
data.get("publicInt"));
+ assertEquals("Check protected object", "protectedObject",
data.get("protectedObject"));
+ assertEquals("Check protected int", new Integer(2),
data.get("protectedInt"));
+ assertEquals("Check package object", "packageObject",
data.get("packageObject"));
+ assertEquals("Check package int", new Integer(1),
data.get("packageInt"));
+ assertEquals("Check private object", "privateObject",
data.get("privateObject"));
+ assertEquals("Check private int", new Integer(3),
data.get("privateInt"));
+ assertEquals("Check non-managed object", "not-managed",
data.get("nonObject"));
+ assertEquals("Check non-managed int", new Integer(5),
data.get("nonInt"));
+
+ }
+
}