You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2013/09/03 20:03:27 UTC
svn commit: r1519772 -
/felix/trunk/metatype/src/test/java/org/apache/felix/metatype/ADTest.java
Author: cziegeler
Date: Tue Sep 3 18:03:27 2013
New Revision: 1519772
URL: http://svn.apache.org/r1519772
Log:
FELIX-3884 : Default value and options - adding tests
Modified:
felix/trunk/metatype/src/test/java/org/apache/felix/metatype/ADTest.java
Modified: felix/trunk/metatype/src/test/java/org/apache/felix/metatype/ADTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/metatype/src/test/java/org/apache/felix/metatype/ADTest.java?rev=1519772&r1=1519771&r2=1519772&view=diff
==============================================================================
--- felix/trunk/metatype/src/test/java/org/apache/felix/metatype/ADTest.java (original)
+++ felix/trunk/metatype/src/test/java/org/apache/felix/metatype/ADTest.java Tue Sep 3 18:03:27 2013
@@ -18,6 +18,9 @@
*/
package org.apache.felix.metatype;
+import java.util.HashMap;
+import java.util.Map;
+
import junit.framework.TestCase;
import org.osgi.service.metatype.AttributeDefinition;
@@ -149,9 +152,9 @@ public class ADTest extends TestCase
}
/**
- * FELIX-3757: if an AD has only its 'required' property set, but no
- * min/max or option values defined, the validation still should detect
- * empty values.
+ * FELIX-3757: if an AD has only its 'required' property set, but no
+ * min/max or option values defined, the validation still should detect
+ * empty values.
*/
public void testValidateRequiredValueWithMinimalOptions()
{
@@ -188,4 +191,39 @@ public class ADTest extends TestCase
assertEquals("", ad.validate("1,2"));
}
+
+ /**
+ * FELIX-3884 : if an AD has options, default values must be in the option
+ * values.
+ */
+ public void testOptionsAndDefaultValues()
+ {
+ final AD ad = new AD();
+ ad.setType("String");
+ final Map options = new HashMap();
+ options.put("A", "L-A");
+ options.put("B", "L-B");
+ ad.setOptions(options);
+
+ ad.setDefaultValue(new String[] {"A", "B"});
+ equalsArray(new String[] {"A", "B"}, ad.getDefaultValue());
+
+ ad.setDefaultValue(new String[] {"A", "B", "C"});
+ equalsArray(new String[] {"A", "B"}, ad.getDefaultValue());
+
+ ad.setDefaultValue(new String[] {"X", "Y", "B"});
+ equalsArray(new String[] {"B"}, ad.getDefaultValue());
+
+ ad.setDefaultValue(new String[] {"X", "Y", "Z"});
+ assertNull(ad.getDefaultValue());
+ }
+
+ private void equalsArray(String[] a, String[] b)
+ {
+ assertEquals(a.length, b.length);
+ for(int i=0; i<a.length;i++)
+ {
+ assertEquals(a[i], b[i]);
+ }
+ }
}