protected Map<String, ConfigHandler> getFieldToHandlerMap(String sensorType) { if(sensorType != null) { SensorEnrichmentConfig config = getConfigurations().getSensorEnrichmentConfig(sensorType); if (config != null) { return config.getEnrichment().getEnrichmentConfigs(); } else { LOG.debug("Unable to retrieve a sensor enrichment config of {}", sensorType); } } else { LOG.error("Trying to retrieve a field map with sensor type of null"); } return new HashMap<>(); }
protected Map<String, ConfigHandler> getFieldToHandlerMap(String sensorType) { if(sensorType != null) { SensorEnrichmentConfig config = getConfigurations().getSensorEnrichmentConfig(sensorType); if (config != null) { return config.getEnrichment().getEnrichmentConfigs(); } else { LOG.debug("Unable to retrieve a sensor enrichment config of {}", sensorType); } } else { LOG.error("Trying to retrieve a field map with sensor type of null"); } return new HashMap<>(); } protected Map<String, Object > getFieldMap(String sensorType) {
Map<String, Object> enrichmentFieldMap = enrichmentStrategy.getUnderlyingConfig(config).getFieldMap(); Map<String, ConfigHandler> fieldToHandler = enrichmentStrategy.getUnderlyingConfig(config).getEnrichmentConfigs();
@Test public void testGetSubgroups_default() throws IOException { for(String c : DEFAULT_CONFIGS) { EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(c, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); List<String> subgroups = Configs.STELLAR.getSubgroups(handler); Assert.assertEquals("", subgroups.get(0)); Assert.assertEquals(1, subgroups.size()); } }
@Test public void testGetSubgroups_grouped() throws IOException { for(String c : GROUPED_CONFIGS) { EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(c, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); List<String> subgroups = Configs.STELLAR.getSubgroups(handler); Assert.assertEquals("group1", subgroups.get(0)); Assert.assertEquals("group2", subgroups.get(1)); Assert.assertEquals(2, subgroups.size()); } }
@Test public void testSplitter_listWithTemporaryVariables() throws IOException { JSONObject message = new JSONObject(ImmutableMap.of("domain_without_subdomains", "yahoo.com")); EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(conf, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); List<JSONObject> splits = Configs.STELLAR.splitByFields(message, null, x -> null, handler ); Assert.assertEquals(1, splits.size()); Map<String, Object> split = (Map<String, Object>)(splits.get(0)).get(""); Assert.assertEquals("yahoo.com", split.get("domain_without_subdomains")); Assert.assertTrue(split.containsKey("dga_result")); Assert.assertTrue(split.containsKey("dga_model_endpoint")); Assert.assertTrue(split.containsKey("dga_result_map")); }
@Test public void testAllVariableUsage() throws Exception { JSONObject message = getMessage(); EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(allVariableConfig, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); JSONObject enriched = enrich(message, "", handler); Assert.assertEquals("stellar_test", enriched.get("stmt1")); }
private void testMapEnrichment(String config, String field) throws Exception { JSONObject message = getMessage(); EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(config, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); JSONObject enriched = enrich(message, field, handler); Assert.assertEquals(2, enriched.size()); Assert.assertEquals("stellar_test", enriched.get("stmt2.foo")); Assert.assertEquals("stellar_test".toUpperCase(), enriched.get("stmt1")); }
@Test public void testSerialization() throws Exception { EnrichmentConfig config = JSONUtils.INSTANCE.load(sourceConfigStr, EnrichmentConfig.class); Assert.assertTrue(config.getFieldMap().get("stellar") instanceof Map); Assert.assertTrue(config.getEnrichmentConfigs().get("stellar") instanceof ConfigHandler); Assert.assertEquals(Configs.STELLAR, ((ConfigHandler)config.getEnrichmentConfigs().get("stellar")).getType()); }
@Test public void testGetSubgroups_mixed() throws IOException { for(String c : MIXED_CONFIGS) { EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(c, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); List<String> subgroups = Configs.STELLAR.getSubgroups(handler); Assert.assertEquals("group1", subgroups.get(0)); Assert.assertEquals("group2", subgroups.get(1)); Assert.assertEquals("", subgroups.get(2)); Assert.assertEquals(3, subgroups.size()); } } }
@Test public void testSplitter_default() throws IOException { JSONObject message = getMessage(); for(String c : DEFAULT_CONFIGS) { EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(c, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); List<JSONObject> splits = Configs.STELLAR.splitByFields(message, null, x -> null, handler ); Assert.assertEquals(1, splits.size()); Map<String, Object> split = (Map<String, Object>) splits.get(0).get(""); Assert.assertEquals(3, split.size()); Assert.assertEquals("stellar_test", split.get("source.type")); Assert.assertEquals("foo", split.get("string")); Assert.assertNull(split.get("stmt1")); } }
@Test public void test_default() throws Exception { for(String c : DEFAULT_CONFIGS) { JSONObject message = getMessage(); EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(c, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); JSONObject enriched = enrich(message, "", handler); Assert.assertEquals("STELLAR_TEST", enriched.get("stmt1")); Assert.assertEquals("stellar_test", enriched.get("stmt2")); Assert.assertEquals("foo", enriched.get("stmt3")); Assert.assertEquals(3, enriched.size()); } }
@Test public void testSplitter_grouped() throws IOException { JSONObject message = getMessage(); for(String c : GROUPED_CONFIGS) { EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(c, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); List<JSONObject> splits = Configs.STELLAR.splitByFields(message, null, x -> null, handler ); Assert.assertEquals(2, splits.size()); { Map<String, Object> split = (Map<String, Object>) splits.get(0).get("group1"); Assert.assertEquals(2, split.size()); Assert.assertEquals("stellar_test", split.get("source.type")); Assert.assertNull(split.get("stmt1")); } { Map<String, Object> split = (Map<String, Object>) splits.get(1).get("group2"); Assert.assertEquals(1, split.size()); Assert.assertEquals("foo", split.get("string")); } } }
@Test public void testSplitter_mixed() throws IOException { JSONObject message = getMessage(); for(String c : Iterables.concat(MIXED_CONFIGS, ImmutableList.of(tempVarStellarConfig_list))) { EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(c, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); List<JSONObject> splits = Configs.STELLAR.splitByFields(message, null, x -> null, handler ); Assert.assertEquals(3, splits.size()); { Map<String, Object> split = (Map<String, Object>) splits.get(0).get("group1"); Assert.assertEquals(2, split.size()); Assert.assertEquals("stellar_test", split.get("source.type")); Assert.assertNull(split.get("stmt1")); } { Map<String, Object> split = (Map<String, Object>) splits.get(1).get("group2"); Assert.assertEquals(1, split.size()); Assert.assertEquals("foo", split.get("string")); } { Map<String, Object> split = (Map<String, Object>) splits.get(2).get(""); Assert.assertEquals(1, split.size()); Assert.assertEquals("stellar_test", split.get("source.type")); } } }
@Test public void test_grouped() throws Exception { for(String c : GROUPED_CONFIGS) { JSONObject message = getMessage(); EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(c, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); { JSONObject enriched = enrich(message, "group1", handler); Assert.assertEquals("STELLAR_TEST", enriched.get("stmt1")); Assert.assertEquals("stellar_test", enriched.get("stmt2")); Assert.assertEquals(2, enriched.size()); } { JSONObject enriched = enrich(message, "group2", handler); Assert.assertEquals("foo", enriched.get("stmt3")); Assert.assertEquals(1, enriched.size()); } } }
@Test public void test_tempVariable() throws Exception { JSONObject message = getMessage(); EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(tempVarStellarConfig_list, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); { JSONObject enriched = enrich(message, "group1", handler); Assert.assertEquals("stellar_test", enriched.get("stmt2")); Assert.assertEquals(1, enriched.size()); } { JSONObject enriched = enrich(message, "group2", handler); Assert.assertEquals("foo", enriched.get("stmt3")); Assert.assertEquals(1, enriched.size()); } { JSONObject enriched = enrich(message, "", handler); Assert.assertEquals(2, enriched.get("stmt4")); Assert.assertEquals("stellar_test", enriched.get("stmt5")); Assert.assertEquals(2, enriched.size()); } }
@Test public void test_mixed() throws Exception { for(String c : MIXED_CONFIGS) { JSONObject message = getMessage(); EnrichmentConfig enrichmentConfig = JSONUtils.INSTANCE.load(c, EnrichmentConfig.class); Assert.assertNotNull(enrichmentConfig.getEnrichmentConfigs().get("stellar")); ConfigHandler handler = enrichmentConfig.getEnrichmentConfigs().get("stellar"); { JSONObject enriched = enrich(message, "group1", handler); Assert.assertEquals("STELLAR_TEST", enriched.get("stmt1")); Assert.assertEquals("stellar_test", enriched.get("stmt2")); Assert.assertEquals(2, enriched.size()); } { JSONObject enriched = enrich(message, "group2", handler); Assert.assertEquals("foo", enriched.get("stmt3")); Assert.assertEquals(1, enriched.size()); } { JSONObject enriched = enrich(message, "", handler); Assert.assertEquals(2, enriched.get("stmt4")); Assert.assertEquals("stellar_test", enriched.get("stmt5")); Assert.assertEquals(2, enriched.size()); } } }