/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ package org.opensearch.dataprepper.logstash.parser; import org.opensearch.dataprepper.logstash.model.LogstashConfiguration; import org.opensearch.dataprepper.logstash.model.LogstashPluginType; import org.opensearch.dataprepper.logstash.model.LogstashPlugin; import org.opensearch.dataprepper.logstash.model.LogstashAttribute; import org.opensearch.dataprepper.logstash.model.LogstashAttributeValue; import org.opensearch.dataprepper.logstash.model.LogstashValueType; import java.util.UUID; import java.util.Random; import java.util.Collections; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.LinkedList; import java.util.HashMap; import java.util.LinkedHashMap; class TestDataProvider { static final String RANDOM_STRING_1 = UUID.randomUUID().toString(); static final String RANDOM_STRING_2 = UUID.randomUUID().toString(); static final String RANDOM_INTEGER = String.valueOf(new Random().nextInt(1000)); static final String RANDOM_DOUBLE = String.valueOf(new Random().nextDouble()); public static LogstashConfiguration configData() { List pluginContextList = new LinkedList<>(Collections.singletonList(pluginWithOneArrayContextAttributeData())); Map> pluginSections = new LinkedHashMap<>(); pluginSections.put(LogstashPluginType.INPUT, pluginContextList); return LogstashConfiguration.builder().pluginSections(pluginSections).build(); } public static List pluginSectionData() { List pluginContextList = new LinkedList<>(Collections.singletonList(pluginWithOneArrayContextAttributeData())); Map> pluginSections = new LinkedHashMap<>(); pluginSections.put(LogstashPluginType.INPUT, pluginContextList); return pluginContextList; } public static LogstashPlugin pluginWithNoAttributeData() { List logstashAttributeList = new LinkedList<>(); return LogstashPlugin.builder().pluginName(TestDataProvider.RANDOM_STRING_1).attributes(logstashAttributeList).build(); } public static LogstashPlugin pluginWithOneArrayContextAttributeData() { List logstashAttributeList = new LinkedList<>(); logstashAttributeList.add(TestDataProvider.attributeWithArrayTypeValueData()); return LogstashPlugin.builder().pluginName(TestDataProvider.RANDOM_STRING_1).attributes(logstashAttributeList).build(); } public static LogstashPlugin pluginWithMorThanOneArrayContextAttributeData() { List logstashAttributeList = new LinkedList<>(); logstashAttributeList.add(TestDataProvider.attributeWithArrayTypeValueData()); logstashAttributeList.add(TestDataProvider.attributeWithArrayTypeValueData()); return LogstashPlugin.builder().pluginName(TestDataProvider.RANDOM_STRING_1).attributes(logstashAttributeList).build(); } public static LogstashAttribute attributeWithArrayTypeValueData() { List values = new LinkedList<>(Arrays.asList(TestDataProvider.RANDOM_STRING_1, TestDataProvider.RANDOM_STRING_2)); LogstashAttributeValue logstashAttributeValue = LogstashAttributeValue.builder(). attributeValueType(LogstashValueType.ARRAY).value(values).build(); return LogstashAttribute.builder() .attributeName(TestDataProvider.RANDOM_STRING_1).attributeValue(logstashAttributeValue).build(); } public static LogstashAttribute attributeWithHashTypeValueData() { Map values = new LinkedHashMap<>(); values.put(TestDataProvider.RANDOM_STRING_1, TestDataProvider.RANDOM_STRING_2); LogstashAttributeValue logstashAttributeValue = LogstashAttributeValue.builder(). attributeValueType(LogstashValueType.HASH).value(values).build(); return LogstashAttribute.builder() .attributeName(TestDataProvider.RANDOM_STRING_1).attributeValue(logstashAttributeValue).build(); } public static LogstashAttribute attributeWithIntegerTypeValueData() { LogstashAttributeValue logstashAttributeValue = LogstashAttributeValue.builder(). attributeValueType(LogstashValueType.NUMBER).value(Integer.valueOf(TestDataProvider.RANDOM_INTEGER)).build(); return LogstashAttribute.builder() .attributeName(TestDataProvider.RANDOM_STRING_1).attributeValue(logstashAttributeValue).build(); } public static LogstashAttribute attributeWithDoubleTypeValueData() { LogstashAttributeValue logstashAttributeValue = LogstashAttributeValue.builder(). attributeValueType(LogstashValueType.NUMBER).value(Double.valueOf(TestDataProvider.RANDOM_DOUBLE)).build(); return LogstashAttribute.builder() .attributeName(TestDataProvider.RANDOM_STRING_1).attributeValue(logstashAttributeValue).build(); } public static LogstashAttribute attributeWithBareWordTypeValueData() { LogstashAttributeValue logstashAttributeValue = LogstashAttributeValue.builder(). attributeValueType(LogstashValueType.BAREWORD).value(RANDOM_STRING_2).build(); return LogstashAttribute.builder() .attributeName(RANDOM_STRING_1).attributeValue(logstashAttributeValue).build(); } public static LogstashAttribute attributeWithBareWordBooleanTypeValueData(boolean input) { LogstashAttributeValue logstashAttributeValue = LogstashAttributeValue.builder(). attributeValueType(LogstashValueType.BAREWORD).value(input).build(); return LogstashAttribute.builder() .attributeName(RANDOM_STRING_1).attributeValue(logstashAttributeValue).build(); } public static LogstashAttribute attributeWithStringTypeValueData() { LogstashAttributeValue logstashAttributeValue = LogstashAttributeValue.builder(). attributeValueType(LogstashValueType.STRING).value(RANDOM_STRING_2).build(); return LogstashAttribute.builder() .attributeName(RANDOM_STRING_1).attributeValue(logstashAttributeValue).build(); } public static List arrayData() { return Arrays.asList(RANDOM_STRING_1, RANDOM_STRING_2); } public static Map hashEntriesArrayData() { Map hashentry = new HashMap<>(); hashentry.put(RANDOM_STRING_1, new LinkedList<>(Arrays.asList(RANDOM_STRING_1, RANDOM_STRING_2))); return hashentry; } public static Map hashEntriesStringData() { Map hashentry = new HashMap<>(); hashentry.put(RANDOM_STRING_1, RANDOM_STRING_2); return hashentry; } public static List hashEntryArrayData() { return Arrays.asList(RANDOM_STRING_1, RANDOM_STRING_2); } public static String hashEntryStringData() { return RANDOM_STRING_2; } }