You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by da...@apache.org on 2015/12/21 15:46:35 UTC

[07/23] storm git commit: made scheduling, eviction, and priority strategies pluggable

http://git-wip-us.apache.org/repos/asf/storm/blob/4cd5efa3/storm-core/test/jvm/backtype/storm/TestConfigValidate.java
----------------------------------------------------------------------
diff --git a/storm-core/test/jvm/backtype/storm/TestConfigValidate.java b/storm-core/test/jvm/backtype/storm/TestConfigValidate.java
index a5e06c3..048cc92 100644
--- a/storm-core/test/jvm/backtype/storm/TestConfigValidate.java
+++ b/storm-core/test/jvm/backtype/storm/TestConfigValidate.java
@@ -688,6 +688,31 @@ public class TestConfigValidate {
         }
     }
 
+    @Test
+    public void TestImplementsClassValidator() {
+        TestConfig config = new TestConfig();
+        Collection<Object> passCases = new LinkedList<Object>();
+        Collection<Object> failCases = new LinkedList<Object>();
+
+        passCases.add("backtype.storm.networktopography.DefaultRackDNSToSwitchMapping");
+
+        for (Object value : passCases) {
+            config.put(TestConfig.TEST_MAP_CONFIG_8, value);
+            ConfigValidation.validateFields(config, TestConfig.class);
+        }
+
+        failCases.add("backtype.storm.nimbus.NimbusInfo");
+        failCases.add(null);
+        for (Object value : failCases) {
+            try {
+                config.put(TestConfig.TEST_MAP_CONFIG_8, value);
+                ConfigValidation.validateFields(config, TestConfig.class);
+                Assert.fail("Expected Exception not Thrown for value: " + value);
+            } catch (IllegalArgumentException Ex) {
+            }
+        }
+    }
+
     public class TestConfig extends HashMap<String, Object> {
         @isMapEntryType(keyType = String.class, valueType = Integer.class)
         public static final String TEST_MAP_CONFIG = "test.map.config";
@@ -714,5 +739,9 @@ public class TestConfigValidate {
 
         @isMapEntryCustom(keyValidatorClasses = {StringValidator.class}, valueValidatorClasses = {UserResourcePoolEntryValidator.class})
         public static final String TEST_MAP_CONFIG_7 = "test.map.config.7";
+
+        @isImplementationOfClass(implementsClass = backtype.storm.networktopography.DNSToSwitchMapping.class)
+        @NotNull
+        public static final String TEST_MAP_CONFIG_8 = "test.map.config.8";
     }
 }