blob: 07fb384fae4f543f756a682406cb2460758edc41 [file] [log] [blame]
/*
* 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.felix.ipojo.runtime.core;
import org.apache.felix.ipojo.ComponentInstance;
import org.apache.felix.ipojo.Factory;
import org.apache.felix.ipojo.runtime.core.services.CheckService;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.osgi.framework.ServiceReference;
import java.util.Properties;
import static junit.framework.Assert.assertEquals;
import static org.junit.Assert.*;
public class TestBothProperties extends Common {
ComponentInstance instance, instance2;
@Before
public void setUp() {
Factory fact = ipojoHelper.getFactory("CONFIG-BothConfigurableCheckService");
Properties props = new Properties();
props.put("instance.name", "under-test");
props.put("b", "1");
props.put("s", "1");
props.put("i", "1");
props.put("l", "1");
props.put("d", "1");
props.put("f", "1");
props.put("c", "a");
props.put("bool", "true");
props.put("bs", "{1,2,3}");
props.put("ss", "{1,2,3}");
props.put("is", "{1,2,3}");
props.put("ls", "{1,2,3}");
props.put("ds", "{1,2,3}");
props.put("fs", "{1,2,3}");
props.put("cs", "{a,b,c}");
props.put("bools", "{true,true,true}");
props.put("string", "foo");
props.put("strings", "{foo, bar, baz}");
try {
instance = fact.createComponentInstance(props);
} catch (Exception e) {
fail("Cannot create the under-test instance : " + e.getMessage());
}
try {
instance2 = fact.createComponentInstance(null);
} catch (Exception e) {
fail("Cannot create the under-test instance2 : " + e.getMessage());
}
}
@After
public void tearDown() {
instance.dispose();
instance2.dispose();
instance = null;
instance2 = null;
}
@Test
public void testConfigurationPrimitive() {
ServiceReference ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance.getInstanceName());
assertNotNull("Test check service availability", ref);
CheckService check = (CheckService) osgiHelper.getRawServiceObject(ref);
Properties props = check.getProps();
Byte b = (Byte) props.get("b");
Short s = (Short) props.get("s");
Integer i = (Integer) props.get("i");
Long l = (Long) props.get("l");
Double d = (Double) props.get("d");
Float f = (Float) props.get("f");
Character c = (Character) props.get("c");
Boolean bool = (Boolean) props.get("bool");
assertEquals("Check b", b, new Byte("1"));
assertEquals("Check s", s, new Short("1"));
assertEquals("Check i", i, new Integer("1"));
assertEquals("Check l", l, new Long("1"));
assertEquals("Check d", d, new Double("1"), 0);
assertEquals("Check f", f, new Float("1"), 0);
assertEquals("Check c", c, new Character('a'));
assertEquals("Check bool", bool, new Boolean("true"));
Integer upb = (Integer) props.get("upb");
Integer ups = (Integer) props.get("ups");
Integer upi = (Integer) props.get("upi");
Integer upl = (Integer) props.get("upl");
Integer upd = (Integer) props.get("upd");
Integer upf = (Integer) props.get("upf");
Integer upc = (Integer) props.get("upc");
Integer upbool = (Integer) props.get("upbool");
assertEquals("Check upb", upb, new Integer(1));
assertEquals("Check ups", ups, new Integer(1));
assertEquals("Check upi", upi, new Integer(1));
assertEquals("Check upl", upl, new Integer(1));
assertEquals("Check upd", upd, new Integer(1));
assertEquals("Check upf", upf, new Integer(1));
assertEquals("Check upc", upc, new Integer(1));
assertEquals("Check upbool", upbool, new Integer(1));
reconfigure(instance);
ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance.getInstanceName());
assertNotNull("Test check service availability", ref);
check = (CheckService) osgiHelper.getRawServiceObject(ref);
props = check.getProps();
b = (Byte) props.get("b");
s = (Short) props.get("s");
i = (Integer) props.get("i");
l = (Long) props.get("l");
d = (Double) props.get("d");
f = (Float) props.get("f");
c = (Character) props.get("c");
bool = (Boolean) props.get("bool");
assertEquals("2) Check b (" + b + ")", b, new Byte("2"));
assertEquals("2) Check s", s, new Short("2"));
assertEquals("2) Check i", i, new Integer("2"));
assertEquals("2) Check l", l, new Long("2"));
assertEquals("2) Check d", d, new Double("2"), 0);
assertEquals("2) Check f", f, new Float("2"), 0);
assertEquals("2) Check c", c, new Character('b'));
assertEquals("2) Check bool", bool, new Boolean("false"));
upb = (Integer) props.get("upb");
ups = (Integer) props.get("ups");
upi = (Integer) props.get("upi");
upl = (Integer) props.get("upl");
upd = (Integer) props.get("upd");
upf = (Integer) props.get("upf");
upc = (Integer) props.get("upc");
upbool = (Integer) props.get("upbool");
assertEquals("2) Check upb", upb, new Integer(2));
assertEquals("2) Check ups", ups, new Integer(2));
assertEquals("2) Check upi", upi, new Integer(2));
assertEquals("2) Check upl", upl, new Integer(2));
assertEquals("2) Check upd", upd, new Integer(2));
assertEquals("2) Check upf", upf, new Integer(2));
assertEquals("2) Check upc", upc, new Integer(2));
assertEquals("2) Check upbool", upbool, new Integer(2));
}
@Test
public void testConfigurationPrimitiveString() {
ServiceReference ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance.getInstanceName());
assertNotNull("Test check service availability", ref);
CheckService check = (CheckService) osgiHelper.getRawServiceObject(ref);
Properties props = check.getProps();
Byte b = (Byte) props.get("b");
Short s = (Short) props.get("s");
Integer i = (Integer) props.get("i");
Long l = (Long) props.get("l");
Double d = (Double) props.get("d");
Float f = (Float) props.get("f");
Character c = (Character) props.get("c");
Boolean bool = (Boolean) props.get("bool");
assertEquals("Check b", b, new Byte("1"));
assertEquals("Check s", s, new Short("1"));
assertEquals("Check i", i, new Integer("1"));
assertEquals("Check l", l, new Long("1"));
assertEquals("Check d", d, new Double("1"), 0);
assertEquals("Check f", f, new Float("1"), 0);
assertEquals("Check c", c, new Character('a'));
assertEquals("Check bool", bool, new Boolean("true"));
Integer upb = (Integer) props.get("upb");
Integer ups = (Integer) props.get("ups");
Integer upi = (Integer) props.get("upi");
Integer upl = (Integer) props.get("upl");
Integer upd = (Integer) props.get("upd");
Integer upf = (Integer) props.get("upf");
Integer upc = (Integer) props.get("upc");
Integer upbool = (Integer) props.get("upbool");
assertEquals("Check upb", upb, new Integer(1));
assertEquals("Check ups", ups, new Integer(1));
assertEquals("Check upi", upi, new Integer(1));
assertEquals("Check upl", upl, new Integer(1));
assertEquals("Check upd", upd, new Integer(1));
assertEquals("Check upf", upf, new Integer(1));
assertEquals("Check upc", upc, new Integer(1));
assertEquals("Check upbool", upbool, new Integer(1));
reconfigureString(instance);
ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance.getInstanceName());
assertNotNull("Test check service availability", ref);
check = (CheckService) osgiHelper.getRawServiceObject(ref);
props = check.getProps();
b = (Byte) props.get("b");
s = (Short) props.get("s");
i = (Integer) props.get("i");
l = (Long) props.get("l");
d = (Double) props.get("d");
f = (Float) props.get("f");
c = (Character) props.get("c");
bool = (Boolean) props.get("bool");
assertEquals("2) Check b (" + b + ")", b, new Byte("2"));
assertEquals("2) Check s", s, new Short("2"));
assertEquals("2) Check i", i, new Integer("2"));
assertEquals("2) Check l", l, new Long("2"));
assertEquals("2) Check d", d, new Double("2"), 0);
assertEquals("2) Check f", f, new Float("2"), 0);
assertEquals("2) Check c", c, new Character('b'));
assertEquals("2) Check bool", bool, new Boolean("false"));
upb = (Integer) props.get("upb");
ups = (Integer) props.get("ups");
upi = (Integer) props.get("upi");
upl = (Integer) props.get("upl");
upd = (Integer) props.get("upd");
upf = (Integer) props.get("upf");
upc = (Integer) props.get("upc");
upbool = (Integer) props.get("upbool");
assertEquals("2) Check upb", upb, new Integer(2));
assertEquals("2) Check ups", ups, new Integer(2));
assertEquals("2) Check upi", upi, new Integer(2));
assertEquals("2) Check upl", upl, new Integer(2));
assertEquals("2) Check upd", upd, new Integer(2));
assertEquals("2) Check upf", upf, new Integer(2));
assertEquals("2) Check upc", upc, new Integer(2));
assertEquals("2) Check upbool", upbool, new Integer(2));
}
@Test
public void testConfigurationPrimitiveArrays() {
ServiceReference ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance.getInstanceName());
assertNotNull("Test check service availability", ref);
CheckService check = (CheckService) osgiHelper.getRawServiceObject(ref);
Properties props = check.getProps();
byte[] b = (byte[]) props.get("bs");
short[] s = (short[]) props.get("ss");
int[] i = (int[]) props.get("is");
long[] l = (long[]) props.get("ls");
double[] d = (double[]) props.get("ds");
float[] f = (float[]) props.get("fs");
char[] c = (char[]) props.get("cs");
boolean[] bool = (boolean[]) props.get("bools");
assertEquals("Check b 0", b[0], 1);
assertEquals("Check b 1", b[1], 2);
assertEquals("Check b 2", b[2], 3);
assertEquals("Check s 0", s[0], 1);
assertEquals("Check s 1", s[1], 2);
assertEquals("Check s 2", s[2], 3);
assertEquals("Check i 0", i[0], 1);
assertEquals("Check i 1", i[1], 2);
assertEquals("Check i 2", i[2], 3);
assertEquals("Check l 0", l[0], 1);
assertEquals("Check l 1", l[1], 2);
assertEquals("Check l 2", l[2], 3);
assertEquals("Check d 0", d[0], 1.0, 0);
assertEquals("Check d 1", d[1], 2.0, 0);
assertEquals("Check d 2", d[2], 3.0, 0);
assertEquals("Check f 0", f[0], 1.0, 0);
assertEquals("Check f 1", f[1], 2.0, 0);
assertEquals("Check f 2", f[2], 3.0, 0);
assertEquals("Check c 0", c[0], 'a');
assertEquals("Check c 1", c[1], 'b');
assertEquals("Check c 2", c[2], 'c');
assertTrue("Check bool 0", bool[0]);
assertTrue("Check bool 1", bool[0]);
assertTrue("Check bool 2", bool[0]);
Integer upb = (Integer) props.get("upbs");
Integer ups = (Integer) props.get("upss");
Integer upi = (Integer) props.get("upis");
Integer upl = (Integer) props.get("upls");
Integer upd = (Integer) props.get("upds");
Integer upf = (Integer) props.get("upfs");
Integer upc = (Integer) props.get("upcs");
Integer upbool = (Integer) props.get("upbools");
assertEquals("Check upb", upb, new Integer(1));
assertEquals("Check ups", ups, new Integer(1));
assertEquals("Check upi", upi, new Integer(1));
assertEquals("Check upl", upl, new Integer(1));
assertEquals("Check upd", upd, new Integer(1));
assertEquals("Check upf", upf, new Integer(1));
assertEquals("Check upc", upc, new Integer(1));
assertEquals("Check upbool", upbool, new Integer(1));
reconfigure(instance);
ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance.getInstanceName());
assertNotNull("Test check service availability", ref);
check = (CheckService) osgiHelper.getRawServiceObject(ref);
props = check.getProps();
b = (byte[]) props.get("bs");
s = (short[]) props.get("ss");
i = (int[]) props.get("is");
l = (long[]) props.get("ls");
d = (double[]) props.get("ds");
f = (float[]) props.get("fs");
c = (char[]) props.get("cs");
bool = (boolean[]) props.get("bools");
assertEquals("2) Check b 0", b[0], 3);
assertEquals("2) Check b 1", b[1], 2);
assertEquals("2) Check b 2", b[2], 1);
assertEquals("2) Check s 0", s[0], 3);
assertEquals("2) Check s 1", s[1], 2);
assertEquals("2) Check s 2", s[2], 1);
assertEquals("2) Check i 0", i[0], 3);
assertEquals("2) Check i 1", i[1], 2);
assertEquals("2) Check i 2", i[2], 1);
assertEquals("2) Check l 0", l[0], 3);
assertEquals("2) Check l 1", l[1], 2);
assertEquals("2) Check l 2", l[2], 1);
assertEquals("2) Check d 0", d[0], 3.0, 0);
assertEquals("2) Check d 1", d[1], 2.0, 0);
assertEquals("2) Check d 2", d[2], 1.0, 0);
assertEquals("2) Check f 0", f[0], 3.0, 0);
assertEquals("2) Check f 1", f[1], 2.0, 0);
assertEquals("2) Check f 2", f[2], 1.0, 0);
assertEquals("2) Check c 0", c[0], 'c');
assertEquals("2) Check c 1", c[1], 'b');
assertEquals("2) Check c 2", c[2], 'a');
assertFalse("2) Check bool 0", bool[0]);
assertFalse("2) Check bool 1", bool[0]);
assertFalse("2) Check bool 2", bool[0]);
upb = (Integer) props.get("upbs");
ups = (Integer) props.get("upss");
upi = (Integer) props.get("upis");
upl = (Integer) props.get("upls");
upd = (Integer) props.get("upds");
upf = (Integer) props.get("upfs");
upc = (Integer) props.get("upcs");
upbool = (Integer) props.get("upbools");
assertEquals("2) Check upb", upb, new Integer(2));
assertEquals("2) Check ups", ups, new Integer(2));
assertEquals("2) Check upi", upi, new Integer(2));
assertEquals("2) Check upl", upl, new Integer(2));
assertEquals("2) Check upd", upd, new Integer(2));
assertEquals("2) Check upf", upf, new Integer(2));
assertEquals("2) Check upc", upc, new Integer(2));
assertEquals("2) Check upbool", upbool, new Integer(2));
}
@Test
public void testConfigurationPrimitiveArraysString() {
ServiceReference ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance.getInstanceName());
assertNotNull("Test check service availability", ref);
CheckService check = (CheckService) osgiHelper.getRawServiceObject(ref);
Properties props = check.getProps();
byte[] b = (byte[]) props.get("bs");
short[] s = (short[]) props.get("ss");
int[] i = (int[]) props.get("is");
long[] l = (long[]) props.get("ls");
double[] d = (double[]) props.get("ds");
float[] f = (float[]) props.get("fs");
char[] c = (char[]) props.get("cs");
boolean[] bool = (boolean[]) props.get("bools");
assertEquals("Check b 0", b[0], 1);
assertEquals("Check b 1", b[1], 2);
assertEquals("Check b 2", b[2], 3);
assertEquals("Check s 0", s[0], 1);
assertEquals("Check s 1", s[1], 2);
assertEquals("Check s 2", s[2], 3);
assertEquals("Check i 0", i[0], 1);
assertEquals("Check i 1", i[1], 2);
assertEquals("Check i 2", i[2], 3);
assertEquals("Check l 0", l[0], 1);
assertEquals("Check l 1", l[1], 2);
assertEquals("Check l 2", l[2], 3);
assertEquals("Check d 0", d[0], 1.0, 0);
assertEquals("Check d 1", d[1], 2.0, 0);
assertEquals("Check d 2", d[2], 3.0, 0);
assertEquals("Check f 0", f[0], 1, 0);
assertEquals("Check f 1", f[1], 2, 0);
assertEquals("Check f 2", f[2], 3, 0);
assertEquals("Check c 0", c[0], 'a');
assertEquals("Check c 1", c[1], 'b');
assertEquals("Check c 2", c[2], 'c');
assertTrue("Check bool 0", bool[0]);
assertTrue("Check bool 1", bool[0]);
assertTrue("Check bool 2", bool[0]);
Integer upb = (Integer) props.get("upbs");
Integer ups = (Integer) props.get("upss");
Integer upi = (Integer) props.get("upis");
Integer upl = (Integer) props.get("upls");
Integer upd = (Integer) props.get("upds");
Integer upf = (Integer) props.get("upfs");
Integer upc = (Integer) props.get("upcs");
Integer upbool = (Integer) props.get("upbools");
assertEquals("Check upb", upb, new Integer(1));
assertEquals("Check ups", ups, new Integer(1));
assertEquals("Check upi", upi, new Integer(1));
assertEquals("Check upl", upl, new Integer(1));
assertEquals("Check upd", upd, new Integer(1));
assertEquals("Check upf", upf, new Integer(1));
assertEquals("Check upc", upc, new Integer(1));
assertEquals("Check upbool", upbool, new Integer(1));
reconfigureString(instance);
ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance.getInstanceName());
assertNotNull("Test check service availability", ref);
check = (CheckService) osgiHelper.getRawServiceObject(ref);
props = check.getProps();
b = (byte[]) props.get("bs");
s = (short[]) props.get("ss");
i = (int[]) props.get("is");
l = (long[]) props.get("ls");
d = (double[]) props.get("ds");
f = (float[]) props.get("fs");
c = (char[]) props.get("cs");
bool = (boolean[]) props.get("bools");
assertEquals("2) Check b 0", b[0], 3);
assertEquals("2) Check b 1", b[1], 2);
assertEquals("2) Check b 2", b[2], 1);
assertEquals("2) Check s 0", s[0], 3);
assertEquals("2) Check s 1", s[1], 2);
assertEquals("2) Check s 2", s[2], 1);
assertEquals("2) Check i 0", i[0], 3);
assertEquals("2) Check i 1", i[1], 2);
assertEquals("2) Check i 2", i[2], 1);
assertEquals("2) Check l 0", l[0], 3);
assertEquals("2) Check l 1", l[1], 2);
assertEquals("2) Check l 2", l[2], 1);
assertEquals("2) Check d 0", d[0], 3.0, 0);
assertEquals("2) Check d 1", d[1], 2.0, 0);
assertEquals("2) Check d 2", d[2], 1.0, 0);
assertEquals("2) Check f 0", f[0], 3, 0);
assertEquals("2) Check f 1", f[1], 2, 0);
assertEquals("2) Check f 2", f[2], 1, 0);
assertEquals("2) Check c 0", c[0], 'c');
assertEquals("2) Check c 1", c[1], 'b');
assertEquals("2) Check c 2", c[2], 'a');
assertFalse("2) Check bool 0", bool[0]);
assertFalse("2) Check bool 1", bool[0]);
assertFalse("2) Check bool 2", bool[0]);
upb = (Integer) props.get("upbs");
ups = (Integer) props.get("upss");
upi = (Integer) props.get("upis");
upl = (Integer) props.get("upls");
upd = (Integer) props.get("upds");
upf = (Integer) props.get("upfs");
upc = (Integer) props.get("upcs");
upbool = (Integer) props.get("upbools");
assertEquals("2) Check upb", upb, new Integer(2));
assertEquals("2) Check ups", ups, new Integer(2));
assertEquals("2) Check upi", upi, new Integer(2));
assertEquals("2) Check upl", upl, new Integer(2));
assertEquals("2) Check upd", upd, new Integer(2));
assertEquals("2) Check upf", upf, new Integer(2));
assertEquals("2) Check upc", upc, new Integer(2));
assertEquals("2) Check upbool", upbool, new Integer(2));
}
@Test
public void testConfigurationObj() {
ServiceReference ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance.getInstanceName());
assertNotNull("Test check service availability", ref);
CheckService check = (CheckService) osgiHelper.getRawServiceObject(ref);
Properties props = check.getProps();
String s = (String) props.get("string");
String[] ss = (String[]) props.get("strings");
assertEquals("Check string", s, "foo");
assertEquals("Check strings 0", ss[0], "foo");
assertEquals("Check strings 1", ss[1], "bar");
assertEquals("Check strings 2", ss[2], "baz");
Integer upString = (Integer) props.get("upstring");
Integer upStrings = (Integer) props.get("upstrings");
assertEquals("Check upString", upString, new Integer(1));
assertEquals("Check upStrings", upStrings, new Integer(1));
reconfigure(instance);
ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance.getInstanceName());
assertNotNull("Test check service availability", ref);
check = (CheckService) osgiHelper.getRawServiceObject(ref);
props = check.getProps();
s = (String) props.get("string");
ss = (String[]) props.get("strings");
assertEquals("2) Check string", s, "bar");
assertEquals("2) Check strings 0", ss[0], "baz");
assertEquals("2) Check strings 1", ss[1], "bar");
assertEquals("2) Check strings 2", ss[2], "foo");
upString = (Integer) props.get("upstring");
upStrings = (Integer) props.get("upstrings");
assertEquals("2) Check upstring", upString, new Integer(2));
assertEquals("2) Check upstrings", upStrings, new Integer(2));
}
@Test
public void testConfigurationObjString() {
ServiceReference ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance.getInstanceName());
assertNotNull("Test check service availability", ref);
CheckService check = (CheckService) osgiHelper.getRawServiceObject(ref);
Properties props = check.getProps();
String s = (String) props.get("string");
String[] ss = (String[]) props.get("strings");
assertEquals("Check string", s, "foo");
assertEquals("Check strings 0", ss[0], "foo");
assertEquals("Check strings 1", ss[1], "bar");
assertEquals("Check strings 2", ss[2], "baz");
Integer upString = (Integer) props.get("upstring");
Integer upStrings = (Integer) props.get("upstrings");
assertEquals("Check upString", upString, new Integer(1));
assertEquals("Check upStrings", upStrings, new Integer(1));
reconfigureString(instance);
ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance.getInstanceName());
assertNotNull("Test check service availability", ref);
check = (CheckService) osgiHelper.getRawServiceObject(ref);
props = check.getProps();
s = (String) props.get("string");
ss = (String[]) props.get("strings");
assertEquals("2) Check string", s, "bar");
assertEquals("2) Check strings 0", ss[0], "baz");
assertEquals("2) Check strings 1", ss[1], "bar");
assertEquals("2) Check strings 2", ss[2], "foo");
upString = (Integer) props.get("upstring");
upStrings = (Integer) props.get("upstrings");
assertEquals("2) Check upstring", upString, new Integer(2));
assertEquals("2) Check upstrings", upStrings, new Integer(2));
}
private void reconfigure(ComponentInstance ci) {
Properties props2 = new Properties();
props2.put("b", new Byte("2"));
props2.put("s", new Short("2"));
props2.put("i", new Integer("2"));
props2.put("l", new Long("2"));
props2.put("d", new Double("2"));
props2.put("f", new Float("2"));
props2.put("c", new Character('b'));
props2.put("bool", new Boolean(false));
props2.put("bs", new byte[]{(byte) 3, (byte) 2, (byte) 1});
props2.put("ss", new short[]{(short) 3, (short) 2, (short) 1});
props2.put("is", new int[]{3, 2, 1});
props2.put("ls", new long[]{3, 2, 1});
props2.put("ds", new double[]{3, 2, 1});
props2.put("fs", new float[]{3, 2, 1});
props2.put("cs", new char[]{'c', 'b', 'a'});
props2.put("bools", new boolean[]{false, false, false});
props2.put("string", "bar");
props2.put("strings", new String[]{"baz", "bar", "foo"});
ci.reconfigure(props2);
}
private void reconfigureString(ComponentInstance ci) {
Properties props2 = new Properties();
props2.put("b", "2");
props2.put("s", "2");
props2.put("i", "2");
props2.put("l", "2");
props2.put("d", "2");
props2.put("f", "2");
props2.put("c", "b");
props2.put("bool", "false");
props2.put("bs", "{3, 2,1}");
props2.put("ss", "{3, 2,1}");
props2.put("is", "{3, 2,1}");
props2.put("ls", "{3, 2,1}");
props2.put("ds", "{3, 2,1}");
props2.put("fs", "{3, 2,1}");
props2.put("cs", "{c, b , a}");
props2.put("bools", "{false,false,false}");
props2.put("string", "bar");
props2.put("strings", "{baz, bar, foo}");
ci.reconfigure(props2);
}
@Test
public void testConfigurationPrimitiveNoValue() {
ServiceReference ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance2.getInstanceName());
assertNotNull("Test check service availability", ref);
CheckService check = (CheckService) osgiHelper.getRawServiceObject(ref);
Properties props = check.getProps();
Byte b = (Byte) props.get("b");
Short s = (Short) props.get("s");
Integer i = (Integer) props.get("i");
Long l = (Long) props.get("l");
Double d = (Double) props.get("d");
Float f = (Float) props.get("f");
Character c = (Character) props.get("c");
Boolean bool = (Boolean) props.get("bool");
assertEquals("Check b", b, new Byte("0"));
assertEquals("Check s", s, new Short("0"));
assertEquals("Check i", i, new Integer("0"));
assertEquals("Check l", l, new Long("0"));
assertEquals("Check d", d, new Double("0"), 0);
assertEquals("Check f", f, new Float("0"), 0);
assertEquals("Check c", c, new Character((char) 0));
assertEquals("Check bool", bool, new Boolean(false));
Integer upb = (Integer) props.get("upb");
Integer ups = (Integer) props.get("ups");
Integer upi = (Integer) props.get("upi");
Integer upl = (Integer) props.get("upl");
Integer upd = (Integer) props.get("upd");
Integer upf = (Integer) props.get("upf");
Integer upc = (Integer) props.get("upc");
Integer upbool = (Integer) props.get("upbool");
assertEquals("Check upb", upb, new Integer(0));
assertEquals("Check ups", ups, new Integer(0));
assertEquals("Check upi", upi, new Integer(0));
assertEquals("Check upl", upl, new Integer(0));
assertEquals("Check upd", upd, new Integer(0));
assertEquals("Check upf", upf, new Integer(0));
assertEquals("Check upc", upc, new Integer(0));
assertEquals("Check upbool", upbool, new Integer(0));
reconfigure(instance2);
ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance2.getInstanceName());
assertNotNull("Test check service availability", ref);
check = (CheckService) osgiHelper.getRawServiceObject(ref);
props = check.getProps();
b = (Byte) props.get("b");
s = (Short) props.get("s");
i = (Integer) props.get("i");
l = (Long) props.get("l");
d = (Double) props.get("d");
f = (Float) props.get("f");
c = (Character) props.get("c");
bool = (Boolean) props.get("bool");
assertEquals("2) Check b (" + b + ")", b, new Byte("2"));
assertEquals("2) Check s", s, new Short("2"));
assertEquals("2) Check i", i, new Integer("2"));
assertEquals("2) Check l", l, new Long("2"));
assertEquals("2) Check d", d, new Double("2"), 0);
assertEquals("2) Check f", f, new Float("2"), 0);
assertEquals("2) Check c", c, new Character('b'));
assertEquals("2) Check bool", bool, new Boolean("false"));
upb = (Integer) props.get("upb");
ups = (Integer) props.get("ups");
upi = (Integer) props.get("upi");
upl = (Integer) props.get("upl");
upd = (Integer) props.get("upd");
upf = (Integer) props.get("upf");
upc = (Integer) props.get("upc");
upbool = (Integer) props.get("upbool");
assertEquals("2) Check upb", upb, new Integer(1));
assertEquals("2) Check ups", ups, new Integer(1));
assertEquals("2) Check upi", upi, new Integer(1));
assertEquals("2) Check upl", upl, new Integer(1));
assertEquals("2) Check upd", upd, new Integer(1));
assertEquals("2) Check upf", upf, new Integer(1));
assertEquals("2) Check upc", upc, new Integer(1));
//assertEquals("2) Check upbool", upbool, new Integer(1)); // TODO Why 0 ???
}
@Test
public void testConfigurationPrimitiveArraysNoValue() {
ServiceReference ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance2.getInstanceName());
assertNotNull("Test check service availability", ref);
CheckService check = (CheckService) osgiHelper.getRawServiceObject(ref);
Properties props = check.getProps();
byte[] b = (byte[]) props.get("bs");
short[] s = (short[]) props.get("ss");
int[] i = (int[]) props.get("is");
long[] l = (long[]) props.get("ls");
double[] d = (double[]) props.get("ds");
float[] f = (float[]) props.get("fs");
char[] c = (char[]) props.get("cs");
boolean[] bool = (boolean[]) props.get("bools");
assertNull("Check b nullity", b);
assertNull("Check s nullity", s);
assertNull("Check i nullity", i);
assertNull("Check l nullity", l);
assertNull("Check d nullity", d);
assertNull("Check f nullity", f);
assertNull("Check c nullity", c);
assertNull("Check bool nullity", bool);
Integer upb = (Integer) props.get("upbs");
Integer ups = (Integer) props.get("upss");
Integer upi = (Integer) props.get("upis");
Integer upl = (Integer) props.get("upls");
Integer upd = (Integer) props.get("upds");
Integer upf = (Integer) props.get("upfs");
Integer upc = (Integer) props.get("upcs");
Integer upbool = (Integer) props.get("upbools");
assertEquals("Check upb", upb, new Integer(0));
assertEquals("Check ups", ups, new Integer(0));
assertEquals("Check upi", upi, new Integer(0));
assertEquals("Check upl", upl, new Integer(0));
assertEquals("Check upd", upd, new Integer(0));
assertEquals("Check upf", upf, new Integer(0));
assertEquals("Check upc", upc, new Integer(0));
assertEquals("Check upbool", upbool, new Integer(0));
reconfigure(instance2);
ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance2.getInstanceName());
assertNotNull("Test check service availability", ref);
check = (CheckService) osgiHelper.getRawServiceObject(ref);
props = check.getProps();
b = (byte[]) props.get("bs");
s = (short[]) props.get("ss");
i = (int[]) props.get("is");
l = (long[]) props.get("ls");
d = (double[]) props.get("ds");
f = (float[]) props.get("fs");
c = (char[]) props.get("cs");
bool = (boolean[]) props.get("bools");
assertEquals("2) Check b 0", b[0], 3);
assertEquals("2) Check b 1", b[1], 2);
assertEquals("2) Check b 2", b[2], 1);
assertEquals("2) Check s 0", s[0], 3);
assertEquals("2) Check s 1", s[1], 2);
assertEquals("2) Check s 2", s[2], 1);
assertEquals("2) Check i 0", i[0], 3);
assertEquals("2) Check i 1", i[1], 2);
assertEquals("2) Check i 2", i[2], 1);
assertEquals("2) Check l 0", l[0], 3);
assertEquals("2) Check l 1", l[1], 2);
assertEquals("2) Check l 2", l[2], 1);
assertEquals("2) Check d 0", d[0], 3.0, 0);
assertEquals("2) Check d 1", d[1], 2.0, 0);
assertEquals("2) Check d 2", d[2], 1.0, 0);
assertEquals("2) Check f 0", f[0], 3, 0);
assertEquals("2) Check f 1", f[1], 2, 0);
assertEquals("2) Check f 2", f[2], 1, 0);
assertEquals("2) Check c 0", c[0], 'c');
assertEquals("2) Check c 1", c[1], 'b');
assertEquals("2) Check c 2", c[2], 'a');
assertFalse("2) Check bool 0", bool[0]);
assertFalse("2) Check bool 1", bool[0]);
assertFalse("2) Check bool 2", bool[0]);
upb = (Integer) props.get("upbs");
ups = (Integer) props.get("upss");
upi = (Integer) props.get("upis");
upl = (Integer) props.get("upls");
upd = (Integer) props.get("upds");
upf = (Integer) props.get("upfs");
upc = (Integer) props.get("upcs");
upbool = (Integer) props.get("upbools");
assertEquals("2) Check upb", upb, new Integer(1));
assertEquals("2) Check ups", ups, new Integer(1));
assertEquals("2) Check upi", upi, new Integer(1));
assertEquals("2) Check upl", upl, new Integer(1));
assertEquals("2) Check upd", upd, new Integer(1));
assertEquals("2) Check upf", upf, new Integer(1));
assertEquals("2) Check upc", upc, new Integer(1));
assertEquals("2) Check upbool", upbool, new Integer(1));
}
@Test
public void testConfigurationObjNoValue() {
ServiceReference ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance2.getInstanceName());
assertNotNull("Test check service availability", ref);
CheckService check = (CheckService) osgiHelper.getRawServiceObject(ref);
Properties props = check.getProps();
String s = (String) props.get("string");
String[] ss = (String[]) props.get("strings");
assertEquals("Check string", s, null);
assertEquals("Check strings", ss, null);
Integer upString = (Integer) props.get("upstring");
Integer upStrings = (Integer) props.get("upstrings");
assertEquals("Check upString", upString, new Integer(0));
assertEquals("Check upStrings", upStrings, new Integer(0));
reconfigure(instance2);
ref = ipojoHelper.getServiceReferenceByName(CheckService.class.getName(), instance2.getInstanceName());
assertNotNull("Test check service availability", ref);
check = (CheckService) osgiHelper.getRawServiceObject(ref);
props = check.getProps();
s = (String) props.get("string");
ss = (String[]) props.get("strings");
assertEquals("2) Check string", s, "bar");
assertEquals("2) Check strings 0", ss[0], "baz");
assertEquals("2) Check strings 1", ss[1], "bar");
assertEquals("2) Check strings 2", ss[2], "foo");
upString = (Integer) props.get("upstring");
upStrings = (Integer) props.get("upstrings");
assertEquals("2) Check upstring", upString, new Integer(1));
assertEquals("2) Check upstrings", upStrings, new Integer(1));
}
}