diff options
Diffstat (limited to 'sliPluginUtils/provider/src')
22 files changed, 0 insertions, 3880 deletions
diff --git a/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils.java b/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils.java deleted file mode 100644 index 2edb36dc4..000000000 --- a/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils.java +++ /dev/null @@ -1,1178 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : CCSDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (C) 2018 IBM. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.slipluginutils; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.PrintStream; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Objects; -import java.util.Properties; -import java.util.Set; -import java.util.UUID; -import java.util.stream.Collectors; - -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.text.StringEscapeUtils; -import org.onap.ccsdk.sli.core.sli.SvcLogicConstants; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -/** - * A utility class used to streamline the interface between Java plugins, - * the Service Logic Context, and Directed Graphs. - * @version 7.0.1 - * @see org.onap.ccsdk.sli.core.sli.SvcLogicContext - */ -public class SliPluginUtils implements SvcLogicJavaPlugin { - public enum LogLevel { - TRACE, DEBUG, INFO, WARN, ERROR; - } - - private static final Logger LOG = LoggerFactory.getLogger(SliPluginUtils.class); - private static final String LOG_MSG="extracting list from context memory"; - private static final String LOG_MSG1="removing elements from list"; - private static final String LENGTH="_length"; - public static final String CTX_NULL_VALUE=""; - - - // ========== CONSTRUCTORS ========== - - public SliPluginUtils() {} - - public SliPluginUtils( Properties props ) {} - - - // ========== CONTEXT MEMORY FUNCTIONS ========== - - /** - * Removes 1 or more elements from a list in context memory. - * <p> - * Values are removed based on either the index in the list, a key-value - * pair, or a list of key-value pairs that all must match in the element. - * @param parameters - * @param ctx Reference to context memory - * @throws SvcLogicException All exceptions are wrapped in - * SvcLogicException for compatibility with SLI. - * @since 7.0.1 - */ - public void ctxListRemove( Map<String,String> parameters, SvcLogicContext ctx ) throws SvcLogicException { - try{ - LOG.debug( "ENTERING Execute Node \"ctxListRemove\"" ); - - // Validate, Log, & read parameters - checkParameters(parameters, new String[]{"list_pfx"}, LOG); - logExecuteNodeParameters(parameters, LOG, LogLevel.DEBUG); - String list_pfx = parameters.get("list_pfx"); - String param_index = parameters.get("index"); - String param_key = parameters.get("key"); - String param_value = parameters.get("value"); - String param_keys_length = parameters.get("keys_length"); - - // Initialize context memory list mimic - SvcLogicContextList list; - - // Process based on input parameters: - // index: remove object at specific index - // key & value: remove all objects with key-value pair - // keys_length: remove all objects that match all key-value pairs - // in list - if( param_index != null ) { - // Parse index - LOG.trace("executing remove by index logic"); - int index; - try { - index = Integer.parseInt(param_index); - } - catch( NumberFormatException e ) { - throw new IllegalArgumentException("\"index\" parameter is not a number. index = " + param_index, e); - } - - // Extract list from context memory & remove object @ index - LOG.trace(LOG_MSG); - list = SvcLogicContextList.extract(ctx, list_pfx); - LOG.trace(LOG_MSG1); - list.remove(index); - } - else if( param_value != null ) { - if( param_key == null ) { param_key = ""; } - - // Extract list from context memory & remove objects with - // key-value pair - LOG.trace("executing remove by key-value pair logic"); - LOG.trace(LOG_MSG); - list = SvcLogicContextList.extract(ctx, list_pfx); - LOG.trace(LOG_MSG1); - list.remove( param_key, param_value ); - } - else if( param_keys_length != null ) { - // Parse keys_length - LOG.trace("executing remove by key-value pair list logic"); - int keys_length; - try { - keys_length = Integer.parseInt(param_keys_length); - } - catch( NumberFormatException e ) { - throw new IllegalArgumentException("\"keys_length\" parameters is not a number. keys_length = " + param_keys_length, e); - } - - // Obtain key-value pairs to check from parameters - LOG.trace("reading keys parameter list"); - HashMap<String,String> keys_values = new HashMap<>(); - for( int i = 0; i < keys_length; i++ ) { - keys_values.put(parameters.get("keys[" + i + "].key"), parameters.get("keys[" + i + "].value")); - } - - // Extract list from context memory & remove objects with all - // key-value pairs matching - LOG.trace(LOG_MSG); - list = SvcLogicContextList.extract(ctx, list_pfx); - LOG.trace(LOG_MSG1); - list.remove(keys_values); - } - else { - throw new IllegalArgumentException("Required parameters missing. Requires one of: index, key & value, or keys_length array"); - } - - // Remove index from list - LOG.trace("writing list back into context memory"); - list.writeToContext(ctx); - } - catch( Exception e ) { - throw new SvcLogicException( "An error occurred in the ctxListRemove Execute node", e ); - } - finally { - LOG.debug( "EXITING Execute Node \"ctxListRemove\"" ); - } - } - - /** - * ctxSortList - * @param parameters - the set of required parameters must contain list and delimiter. - * @param ctx Reference to context memory - * @throws SvcLogicException if a required parameter is missing an exception is thrown - */ - public void ctxSortList( Map<String, String> parameters, SvcLogicContext ctx ) throws SvcLogicException { - checkParameters(parameters, new String[]{"list","delimiter"}, LOG); - ArrayList<SortableCtxListElement> list = new ArrayList<>(); - - String[] sort_fields = null; - if( parameters.containsKey("sort-fields") ) { - sort_fields = parameters.get("sort-fields").split(parameters.get("delimiter"), 0); - } - - String ctx_list_str = parameters.get("list"); - int listSz = getArrayLength(ctx, ctx_list_str); - - - - for( int i = 0; i < listSz; i++ ) { - list.add( new SortableCtxListElement(ctx, ctx_list_str + '[' + i + ']', sort_fields) ); - } - Collections.sort(list); - - ctxBulkErase(ctx, ctx_list_str); - int i = 0; - for( SortableCtxListElement list_element : list ) { - for( Map.Entry<String,String> entry : list_element.child_elements.entrySet() ) { - if( sort_fields == null ) { - ctx.setAttribute(ctx_list_str + '[' + i + ']', entry.getValue()); - } - else { - ctx.setAttribute(ctx_list_str + '[' + i + "]." + entry.getKey(), entry.getValue()); - } - } - i++; - } - // Reset list length (removed by ctxBulkErase above) - ctx.setAttribute(ctx_list_str+LENGTH, Integer.toString(listSz)); - } - - /** - * generates a UUID and writes it to context memory - * @param parameters - ctx-destination is a required parameter - * @param ctx Reference to context memory - * @throws SvcLogicException thrown if a UUID cannot be generated or if ctx-destination is missing or null - */ - public void generateUUID( Map<String, String> parameters, SvcLogicContext ctx ) throws SvcLogicException { - checkParameters(parameters, new String[]{"ctx-destination"}, LOG); - ctx.setAttribute(parameters.get("ctx-destination"), UUID.randomUUID().toString() ); - } - - /** - * Provides substring functionality to Directed Graphs. - * <p> - * Calls either String.substring(String beginIndex) or - * String.substring(String beginInded, String endIndex) if the end-index - * is present or not. - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>string</td><td>Mandatory</td><td>String to perform substring on</td></tr> - * <tr><td>result</td><td>Mandatory</td><td>Key in context memory to populate the resulting string in</td></tr> - * <tr><td>begin-index</td><td>Mandatory</td><td>Beginning index to pass to Java substring function</td></tr> - * <tr><td>end-index</td><td>Optional</td><td>Ending index to pass to Java substring function. If not included, String.substring(begin) will be called.</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 8.0.1 - * @see SliPluginUtils#substring(Map, SvcLogicContext) - */ - @Deprecated - public void substring( Map<String, String> parameters, SvcLogicContext ctx ) throws SvcLogicException { - try { - checkParameters( parameters, new String[]{"string","begin-index","result"}, LOG ); - final String string = parameters.get("string"); - final String result = parameters.get("result"); - final String begin = parameters.get("begin-index"); - final String end = parameters.get("end-index"); - - if( StringUtils.isEmpty(end) ) { - ctx.setAttribute( result, string.substring(Integer.parseInt(begin)) ); - } - else { - ctx.setAttribute( result, string.substring(Integer.parseInt(begin), Integer.parseInt(end)) ); - } - } - catch( Exception e ) { - throw new SvcLogicException( "An error occurred while the Directed Graph was performing a substring", e ); - } - } - - - - // ========== PUBLIC STATIC UTILITY FUNCTIONS ========== - - /** - * Throws an exception and writes an error to the log file if a required - * parameters is not found in the parametersMap. - * <p> - * Use at the beginning of functions that can be called by Directed Graphs - * and can take parameters to verify that all parameters have been provided - * by the Directed Graph. - * @param parametersMap parameters Map passed to this node - * @param requiredParams Array of parameters required by the calling function - * @param log Reference to Logger to log to - * @throws SvcLogicException if a String in the requiredParams array is - * not a key in parametersMap. - * @since 1.0 - */ - public static final void checkParameters(Map<String, String> parametersMap, String[] requiredParams, Logger log) throws SvcLogicException { - if( requiredParams == null || requiredParams.length < 1){ - log.debug("required parameters was empty, exiting early."); - return; - } - if (parametersMap == null || parametersMap.keySet().isEmpty()){ - String errorMessage = "This method requires the parameters [" + StringUtils.join(requiredParams,",") + "], but no parameters were passed in."; - log.error(errorMessage); - throw new SvcLogicException(errorMessage); - } - - for (String param : requiredParams) { - if (!parametersMap.containsKey(param)) { - String errorMessage = "Required parameter \"" + param + "\" was not found in parameter list."; - log.error(errorMessage); - log.error("Total list of required parameters is [" + StringUtils.join(requiredParams, ",") + "]."); - throw new SvcLogicException(errorMessage); - } - } - } - - /** - * Removes all key-value pairs with keys that begin with pfx - * @param ctx Reference to context memory - * @param pfx Prefix of key-value pairs to remove - * @since 1.0 - */ - public static final void ctxBulkErase( SvcLogicContext ctx, String pfx ) { - ArrayList<String> Keys = new ArrayList<>(ctx.getAttributeKeySet()); - for( String key : Keys ) { - if( key.startsWith( pfx ) ) { - ctx.setAttribute( pfx + key.substring(pfx.length()) , null); - } - } - } - - /** - * Copies all context memory key-value pairs that start with src_pfx to - * the keys that start with dest_pfx + suffix, where suffix is the result - * of {@code key.substring(src_pfx.length())}. - * <p> - * Does NOT guarantee removal of all keys at the destination before - * copying, but will overwrite any destination keys that have a - * corresponding source key. Use {@link #ctxBulkErase(SvcLogicContext, String) ctxBulkErase} - * before copy to erase destination root before copying from source. - * @param ctx Reference to context memory. - * @param src_pfx Prefix of the keys to copy values from. - * @param dest_pfx Prefix of the keys to copy values to. - * @since 1.0 - */ - public static final void ctxBulkCopy( SvcLogicContext ctx, String src_pfx, String dest_pfx ) { - // Remove trailing period from dest_pfx - if( dest_pfx.charAt(dest_pfx.length()-1) == '.' ) { - dest_pfx = dest_pfx.substring(0,dest_pfx.length()-1); - } - - // For each context key that begins with src_pfx, set the value of the - // key dest_pfx + the suffix of the key to the key's value - ArrayList<String> Keys = new ArrayList<>(ctx.getAttributeKeySet()); - for( String key : Keys ) { - if( key.startsWith(src_pfx) ) { - // Get suffix (no leading period) - String suffix = key.substring(src_pfx.length()); - if( suffix.charAt(0) == '.') { - suffix = suffix.substring(1); - } - - // Set destination's value to key's value - ctx.setAttribute(dest_pfx + '.' + suffix, ctx.getAttribute(key)); - } - } - } - - /** - * Creates and returns a {@code Map<String, String>} that is a subset of - * context memory where all keys begin with the prefix. - * @param ctx Reference to context memory. - * @param prefix Returned map's keys should all begin with this value. - * @return A {@code Map<String, String>} containing all the key-value pairs - * in ctx whose key begins with prefix. - */ - public static final Map<String, String> ctxGetBeginsWith( SvcLogicContext ctx, String prefix ) { - Map<String, String> prefixMap = new HashMap<>(); - - for( String key : ctx.getAttributeKeySet() ) { - if( key.startsWith(prefix) ) { - prefixMap.put( key, ctx.getAttribute(key) ); - } - } - - return prefixMap; - } - - /** - * Returns true if key's value in context memory is "" or if it doesn't - * exist in context memory. - * @param ctx Reference to context memory. - * @param key Key to search for. - * @return true if key's value in context memory is "" or if it doesn't - * exist in context memory. - * @since 1.0 - */ - public static final boolean ctxKeyEmpty( SvcLogicContext ctx, String key ) { - String value = ctx.getAttribute(key); - return value == null || value.isEmpty(); - } - - /** - * Adds all key-value pairs in the entries Map to context memory. - * @param ctx Reference to context memory. Value's {@code toString()} - * function is used to add it. - * @param entries {@code Map<String, ?>} of key-value pairs to add to - * context memory. Value's {@code toString()} function is used to add it. - * @return Reference to context memory to be used for function chaining. - */ - public static final SvcLogicContext ctxPutAll( SvcLogicContext ctx, Map<String, ?> entries ) { - for( Map.Entry<String, ?> entry : entries.entrySet() ) { - ctxSetAttribute( ctx, entry.getKey(), entry.getValue() ); - //ctx.setAttribute(entry.getKey(), entry.getValue().toString()); - } - - return ctx; - } - - /** - * Sets a key in context memory to the output of object's toString(). The - * key is deleted from context memory if object is null. - * @param ctx Reference to context memory. - * @param key Key to set. - * @param object Object whose toString() will be the value set - */ - public static final void ctxSetAttribute( SvcLogicContext ctx, String key, Object object ) { - if( object == null ) { - ctx.setAttribute(key, null); - } - else { - ctx.setAttribute(key, object.toString()); - } - } - - /** - * Sets a key in context memory to the output of object's toString(). - * <p> - * The key is deleted from context memory if object is null. The key and - * value set in context memory are logged to the Logger at the provided - * logLevel level. - * @param <O> Any Java object - * @param ctx Reference to context memory. - * @param key Key to set. - * @param obj Object whose toString() will be the value set - * @param LOG Logger to log to - * @param logLevel level to log at in Logger - */ - public static final <O extends Object> void ctxSetAttribute( SvcLogicContext ctx, String key, O obj, Logger LOG, LogLevel logLevel ) { - String value = Objects.toString( obj, null ); - ctx.setAttribute( key, value ); - if( logLevelIsEnabled(LOG, logLevel ) ) { - if( value == null ) { - logMessageAtLevel( LOG, logLevel, "Deleting " + key ); - } - else { - logMessageAtLevel( LOG, logLevel, "Setting " + key + " = " + value ); - } - } - } - - /** - * Utility function used to get an array's length from context memory. - * Will return 0 if key doesn't exist in context memory or isn't numeric. - * <p> - * Use to obtain a context memory array length without having to worry - * about throwing a NumberFormatException. - * @param ctx Reference to context memory - * @param key Key in context memory whose value is the array's length. If - * the key doesn't end in "_length", then "_length is appended. - * @param log Reference to Logger to log to - * @return The array length or 0 if the key is not found in context memory. - * @since 1.0 - */ - public static final int getArrayLength( SvcLogicContext ctx, String key ) { - return getArrayLength(ctx, key, null, null, null); - } - - /** - * Utility function used to get an array's length from context memory. - * Will return 0 if key doesn't exist in context memory or isn't numeric - * and print the provided log message to the configured log file. - * <p> - * Use to obtain a context memory array length without having to worry - * about throwing a NumberFormatException. - * @param ctx Reference to context memory. - * @param key Key in context memory whose value is the array's length. If - * the key doesn't end in "_length", then "_length is appended. - * @param log Reference to Logger to log to. Doesn't log if null. - * @param logLevel Logging level to log the message at if the context - * memory key isn't found. Doesn't log if null. - * @param log_message Message to log if the context memory key isn't found. - * Doesn't log if null. - * @return The array length or 0 if the key is not found in context memory. - * @since 1.0 - */ - public static final int getArrayLength( SvcLogicContext ctx, String key, Logger log, LogLevel logLevel, String log_message ) { - String ctxKey = key.endsWith(LENGTH) ? key : key + LENGTH; - try { - return Integer.parseInt(ctx.getAttribute(ctxKey)); - } - catch( NumberFormatException e ) { - if( log != null && logLevel != null && log_message != null ) { - switch( logLevel ) { - case TRACE: - log.trace(log_message); - break; - case DEBUG: - log.debug(log_message); - break; - case INFO: - log.info(log_message); - break; - case WARN: - log.warn(log_message); - break; - case ERROR: - log.error(log_message); - break; - } - } - } - - return 0; - } - - /** - * Prints sorted context memory key-value pairs to the log file at the log - * level. Returns immediately if the log level isn't enabled. - * <p> - * O(n log(n)) time where n = size of context memory - * @param ctx Reference to context memory - * @param log Reference to Logger to log to - * @param logLevel Logging level to log the context memory key-value pairs - * at. - * @since 1.0 - */ - public static final void logContextMemory( SvcLogicContext ctx, Logger log, LogLevel logLevel ) { - logLevelIsEnabled( log, logLevel ); - - // Print sorted context memory key-value pairs to the log - ArrayList<String> keys = new ArrayList<>(ctx.getAttributeKeySet()); - Collections.sort(keys); - for( String key : keys ) { - logMessageAtLevel( log, logLevel, key + " = " + ctx.getAttribute(key) ); - } - } - - - - // ========== PRIVATE FUNCTIONS ========== - - // TODO: javadoc - /** - * - * @param parameters - * @param log - * @param loglevel - * @since 7.0.1 - */ - public static final void logExecuteNodeParameters( Map<String,String> parameters, Logger log, LogLevel loglevel ) { - logLevelIsEnabled( log, loglevel ); - - for( Map.Entry<String,String> param : parameters.entrySet() ) { - logMessageAtLevel( log, loglevel, "PARAM: " + param.getKey() + " = " + param.getValue() ); - } - } - - // TODO: javadoc - /** - * Returns true if the loglevel is enabled. Otherwise, returns false. - * @param log Reference to logger - * @param loglevel Log level to check if enabled - * @return True if the loglevel is enabled. Otherwise, false - * @since 7.0.1 - */ - private static final boolean logLevelIsEnabled( Logger log, LogLevel loglevel ) { - // Return immediately if logging level isn't enabled - switch( loglevel ) { - case TRACE: - if( log.isTraceEnabled() ) { return true; } - return false; - case DEBUG: - if( log.isDebugEnabled() ) { return true; } - return false; - case INFO: - if( log.isInfoEnabled() ) { return true; } - return false; - case WARN: - if( log.isWarnEnabled() ) { return true; } - return false; - case ERROR: - if( log.isErrorEnabled() ) { return true; } - return false; - default: - throw new IllegalArgumentException("Unknown LogLevel: " + loglevel.toString()); - } - } - - // TODO: javadoc - /** - * - * @param log - * @param loglevel - * @param msg - * @since 7.0.1 - */ - private static final void logMessageAtLevel( Logger log, LogLevel loglevel, String msg ) { - switch( loglevel ) { - case TRACE: - log.trace(msg); - return; - case DEBUG: - log.debug(msg); - return; - case INFO: - log.info(msg); - return; - case WARN: - log.warn(msg); - return; - case ERROR: - log.error(msg); - return; - } - } - - - - // ========== LOCAL CLASSES ========== - - private class SortableCtxListElement implements Comparable<SortableCtxListElement> { - HashMap<String,String> child_elements = new HashMap<>(); - String[] sort_fields; - - public SortableCtxListElement( SvcLogicContext ctx, String root, String[] sort_fields ) { - this.sort_fields = sort_fields; - - for( String key : ctx.getAttributeKeySet() ) { - if( key.startsWith(root) ) { - if( key.length() == root.length() ) { - child_elements.put("", ctx.getAttribute(key)); - break; - } - else { - child_elements.put(key.substring(root.length()+1), ctx.getAttribute(key)); - } - } - } - } - - @Override - public int compareTo(SortableCtxListElement arg0) { - if( sort_fields == null ) { - return this.child_elements.get("").compareTo(arg0.child_elements.get("")); - } - - for( String field : this.sort_fields ) { - int result = this.child_elements.get(field).compareTo(arg0.child_elements.get(field)); - if( result != 0 ) { - return result; - } - } - - return 0; - } - - @Override - public boolean equals(Object object) { - if (this == object) { - return true; - } - if (!(object instanceof SortableCtxListElement)) { - return false; - } - if (!super.equals(object)) { - return false; - } - - SortableCtxListElement that = (SortableCtxListElement) object; - - if (child_elements != null ? !child_elements.equals(that.child_elements) - : that.child_elements != null) { - return false; - } - // Probably incorrect - comparing Object[] arrays with Arrays.equals - if (!Arrays.equals(sort_fields, that.sort_fields)) { - return false; - } - - return true; - } - - @Override - public int hashCode() { - int result = super.hashCode(); - result = 31 * result + (child_elements != null ? child_elements.hashCode() : 0); - result = 31 * result + Arrays.hashCode(sort_fields); - return result; - } - } - - /** - * Creates a file that contains the content of context memory. - * @param parameters - must contain the parameter filename - * @param ctx Reference to context memory - * @throws SvcLogicException thrown if file cannot be created or if parameters are missing - */ - public static void printContext(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - if (parameters == null || parameters.isEmpty()) { - throw new SvcLogicException("no parameters passed"); - } - - checkParameters(parameters, new String[]{"filename"}, LOG); - - String fileName = parameters.get("filename"); - - - try (FileOutputStream fstr = new FileOutputStream(new File(fileName)); - PrintStream pstr = new PrintStream(fstr, true);) - { - pstr.println("#######################################"); - for (String attr : ctx.getAttributeKeySet()) { - pstr.println(attr + " = " + ctx.getAttribute(attr)); - } - } catch (Exception e) { - throw new SvcLogicException("Cannot write context to file " + fileName, e); - } - - - } - - public static void logContextProperties(Map<String, String> parameters, SvcLogicContext ctx) - throws SvcLogicException { - if (LOG.isTraceEnabled()) { - String subpath = parameters.get("subpath"); - if (subpath != null && !subpath.isEmpty()) { - ctx.printProperties(ctx.toProperties(), subpath); - } else { - ctx.printProperties(ctx.toProperties()); - } - } - } - - public static void logContextAttributes(Map<String, String> parameters, SvcLogicContext ctx) - throws SvcLogicException { - if (LOG.isTraceEnabled()) { - String subpath = parameters.get("subpath"); - if (subpath != null && !subpath.isEmpty()) { - ctx.printAttributes(subpath); - } else { - ctx.printAttributes(); - } - } - } - - /** - * Checks context memory for a set of required parameters - * Every parameter aside from prefix will be treated as mandatory - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>prefix</td><td>Optional</td><td>the prefix will be added to each parameter</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static void requiredParameters(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - if (parameters == null || parameters.keySet().isEmpty()) { - String errorMessage = "requiredParameters should not be called if the parameters hashmap is null or empty!"; - LOG.error(errorMessage); - throw new SvcLogicException(errorMessage); - } - String prefixValue = null; - String prefix = "prefix"; - if(parameters.containsKey(prefix)){ - prefixValue = parameters.get(prefix); - parameters.remove(prefix); - } - checkParameters(prefixValue, ctx.getAttributeKeySet(), parameters.keySet(), LOG); - } - - private static void checkParameters(String prefixValue, Set<String> ctx, Set<String> parameters, Logger log) throws SvcLogicException { - for (String param : parameters) { - if (prefixValue != null) { - param = prefixValue + param; - } - if (!ctx.contains(param)) { - String errorMessage = "This method requires the parameters [" + StringUtils.join(parameters, ",") - + "], but " + param + " was not passed in."; - log.error(errorMessage); - throw new SvcLogicException(errorMessage); - } - } - } - - /** - * is in a different DG invocation just before/after we call NCS and set the state to InProgress - */ - /** - * setTime write the current date time to a string located at outputPath - * @param parameters - requires outputPath to not be null - * @param ctx Reference to context memory - * @throws SvcLogicException if a required parameter is missing an exception is thrown - */ - public static void setTime(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException - { - checkParameters(parameters, new String[] { "outputPath" }, LOG); - - // Set the DateFormat - // "2015-03-16T12:18:35.138Z" - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); - - // Parse the date - String ctxVariable = parameters.get("outputPath"); - try { - String dateTime = format.format(new Date()); - ctx.setAttribute(ctxVariable, dateTime); - } catch (Exception ex) { - throw new SvcLogicException("problem with setTime", ex); - } - } - - /** - * jsonStringToCtx takes a json string stored as a single property in context memory and breaks it into individual properties - * @param parameters - requires source, outputPath and isEscaped to not be null. - * @param ctx Reference to context memory - * @throws SvcLogicException if a required parameter is missing an exception is thrown - */ - public static void jsonStringToCtx(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException - { - checkParameters(parameters, new String[] { "source","outputPath","isEscaped" }, LOG); - try { - String source = ctx.getAttribute(parameters.get("source")); - if("true".equals(parameters.get("isEscaped"))){ - source = StringEscapeUtils.unescapeJson(source); - } - ctx.mergeJson(parameters.get("outputPath"), source); - // writeJsonToCtx(source, ctx,parameters.get("outputPath")); - } catch (Exception ex) { - throw new SvcLogicException("problem with jsonStringToCtx", ex); - } - } - - protected static void writeJsonToCtx(String resp, SvcLogicContext ctx, String prefix){ - // Refactored code for this method into SvcLogicContext object. Leaving this - // method in place for backward compatibility. - ctx.mergeJson(prefix, resp); - } - - /** - * updateJsonObjectString takes a json object string, and adds or deletes the properties of it - * @param parameters - requires source, outputPath and keys to be added or deleted. - * The key of parameter starts with "add.", e.g. "add.A", and then "A" and its value will be added - * to the JSON object. - * The key of parameter starts with "delete.", e.g. "delete.B", and then "B" will be deleted from - * the JSON object. - * @param ctx Reference to context memory - * @throws SvcLogicException if a required parameter is missing an exception is thrown - */ - public static void updateJsonObjectString(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - checkParameters(parameters, new String[] {"source", "outputPath"}, LOG); - try { - String source = ctx.getAttribute(parameters.get("source")); - JsonParser jp = new JsonParser(); - JsonElement element = jp.parse(source); - if (element.isJsonObject()) { - JsonObject jsonObject = element.getAsJsonObject(); - updateJsonObject(jsonObject, parameters); - - String target = jsonObject.toString(); - ctx.setAttribute(parameters.get("outputPath"), target); - } else { - throw new SvcLogicException("just update JSON object string"); - } - } catch (Exception ex) { - throw new SvcLogicException("problem with updateJsonObjectString", ex); - } - } - - protected static void updateJsonObject(JsonObject jsonObject, Map<String, String> parameters) throws SvcLogicException { - List<String> deleted_params = parameters.keySet().stream().filter(param -> param.startsWith("delete.")). - collect(Collectors.toList()); - for (String param: deleted_params) { - String[] action_key = param.split("\\.", 2); - if (action_key.length < 2) { - throw new SvcLogicException("error parameter format: " + param + ", must be \"delete.<key>\""); - } - jsonObject.remove(action_key[1]); - } - - List<String> added_params = parameters.keySet().stream().filter(param -> param.startsWith("add.")). - collect(Collectors.toList()); - for (String param: added_params) { - String[] action_key = param.split("\\.", 2); - if (action_key.length < 2) { - throw new SvcLogicException("error parameter format: " + param + ", must be \"add.<key>\""); - } - jsonObject.addProperty(action_key[1], parameters.get(param)); - } - } - - /** - * getAttributeValue takes a ctx memory path as a string, gets the value stored at this path and set this value in context memory at - * outputPath - * @param parameters - requires source and outputPath - * @param ctx Reference to context memory - * @throws SvcLogicException if a required parameter is missing an exception is thrown - */ - public static void getAttributeValue(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - checkParameters(parameters, new String[] { "source", "outputPath" }, LOG); - String source = ctx.getAttribute(parameters.get("source")); - ctx.setAttribute(parameters.get("outputPath"), source); - } - - /** - * ctxListContains provides a way to see if a context memory list contains a key value - * @param parameters - requires list, keyName, keyValue, outputPath to all not be null. - * @param ctx Reference to context memory - * @throws SvcLogicException if a required parameter is missing an exception is thrown - */ - public static String ctxListContains(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - checkParameters(parameters, new String[]{"list", "keyName", "keyValue"}, LOG); - - try { - String ctxList = parameters.get("list"); - ctxList = (ctxList.endsWith(LENGTH)) ? ctxList : ctxList + LENGTH; - int listLength = getArrayLength(ctx, ctxList); - - if (listLength == 0) { - LOG.debug("List is not in context memory"); - return "false"; - } else { - Set<String> keys = new HashSet<String>(); - - String listPrefix = ctxList.substring(0, ctxList.lastIndexOf("_")) + "["; - String listSuffix = "]." + parameters.get("keyName"); - - for (int i = 0; i < listLength; i++) { - String keyLocation = listPrefix + i + listSuffix; - keys.add(ctx.getAttribute(keyLocation)); - } - - if (keys.contains(parameters.get("keyValue"))) { - LOG.debug("List " + parameters.get("list") + " contains " + parameters.get("keyValue")); - return "true"; - } else { - LOG.debug("List " + parameters.get("list") + " do not contains " + parameters.get("keyValue")); - return "false"; - } - } - } catch (Exception ex) { - throw new SvcLogicException("ctxListContains failed", ex); - } - } - - /** - * set properties in context memory for a container </br> - * parameters with a null or empty key or value are ignored </br> - * required parameter root - root + "." + parameters.key - * is the key to set the value too value in context memory </br> - * optional parameter valueRoot - if set: valueRoot + "." + parameters.value - * is the key to get the value from context memory - * - * @param parameters - root (required), valueRoot (optional), properties names and values to be set - * @param ctx Reference to context memory - * @return success or failure of operation - */ - public static String setPropertiesForRoot(Map<String, String> parameters, SvcLogicContext ctx) { - LOG.debug("Execute Node \"setPropertiesForRoot\""); - try { - checkParameters(parameters, new String[]{"root"}, LOG); - } catch (Exception ex) { - return SvcLogicConstants.FAILURE; - } - - String root = parameters.get("root"); - - if (StringUtils.isEmpty(root)) { - return SvcLogicConstants.FAILURE; - } - - // set context memory to the the properties passed with root as prefix - setParameterValuesToRoot(parameters, ctx, root); - - return SvcLogicConstants.SUCCESS; - } - - private static boolean setParameterValuesToRoot(Map<String, String> parameters, SvcLogicContext ctx, String root) { - boolean changeFlag = false; - String valueRoot = parameters.get("valueRoot"); - - for (Map.Entry<String, String> entry : parameters.entrySet()) { - // ignore if it's the root parameter - if (!entry.getKey().equals("root")) { - String keyToBeSet = root + "." + entry.getKey(); - String valueToBeSet = ""; - - if (StringUtils.isEmpty(valueRoot)) { - valueToBeSet = entry.getValue(); - } else { - valueToBeSet = ctx.getAttribute(valueRoot + "." + entry.getValue()); - } - - LOG.debug("Setting context memory: " + keyToBeSet + " = " + valueToBeSet); - - if (!StringUtils.isEmpty(entry.getKey()) && !StringUtils.isEmpty(valueToBeSet)) { - ctxSetAttribute(ctx, keyToBeSet, valueToBeSet); - changeFlag = true; - } - } - } - - return changeFlag; - } - - /** - * takes container list and set the properties with the value provided </br> - * parameters with a null or empty key or value are ignored </br> - * required parameters </br> - * prefixKey + "." + parameters.key is the key to set the value too value in context memory </br> - * prefixKey + "[index]." + keyName is the key of the entry in the list in context memory </br> - * keyValue is the value of the key of the list entry in context memory (must be actual value)</br> - * optional parameter valuePrefixKey - if set: valuePrefixKey + "." + parameters.value - * is the key to get the value from context memory - * - * @param parameters </br> - * - prefixKey e.g "service-data.universal-cpe-ft.l2-switch-interfaces" </br> - * - keyName e.g "name" </br> - * - keyValue e.g "WAN1" (must be actual value and not use the prefixKey as root) </br> - * - valuePrefixKey (optional) e.g "input.universal-cpe-ft.l2-switch-interfaces[1] </br> - * - properties to be set, values for the properties </br> - * @param ctx reference to context memory - * @return success or failure of operation - */ - public static String setPropertiesForList(Map<String, String> parameters, SvcLogicContext ctx) { - LOG.debug("Execute Node \"setPropertiesForList\""); - try { - checkParameters(parameters, new String[]{"prefixKey", "keyName", "keyValue"}, LOG); - } catch (Exception e) { - LOG.error("a required parameter is missing"); - return SvcLogicConstants.FAILURE; - } - - String prefixKey = parameters.get("prefixKey"); - String keyName = parameters.get("keyName"); - String keyValue = parameters.get("keyValue"); - - if (StringUtils.isEmpty(keyName) || StringUtils.isEmpty(keyValue) || StringUtils.isEmpty(prefixKey)) { - LOG.error("a required parameters value is empty or null"); - return SvcLogicConstants.FAILURE; - } - - int listLength = getArrayLength(ctx, prefixKey); - - Map<String, String> containParams = new HashMap<>(); - containParams.put("list", prefixKey); - containParams.put("keyName", keyName); - containParams.put("keyValue", keyValue); - - String valuePrefixKey = parameters.get("valuePrefixKey"); - - try { - // create new list in context memory - if (listLength == 0) { - // since there's no length found make sure there's no current data at prefixKey in context memory - Map<String, String> map = ctxGetBeginsWith(ctx, prefixKey); - - if (map.size() == 0) { - setNewEntryInList(parameters, ctx, keyName, keyValue, prefixKey, valuePrefixKey, listLength); - } else { - LOG.error("there was no length for the list parameter set in context memory " - + "but " + map.size() + " entries were found in context memory " - + "where the key begins with: " + prefixKey); - - return SvcLogicConstants.FAILURE; - } - } else if (ctxListContains(containParams, ctx) == "false") { - setNewEntryInList(parameters, ctx, keyName, keyValue, prefixKey, valuePrefixKey, listLength); - } else if (ctxListContains(containParams, ctx) == "true") { - // else update the context memory with the properties passed in at the right index level - String listPrefix = prefixKey + "["; - String listSuffix = "]."; - - for (int i = 0; i < listLength; i++) { - String listRootWithIndex = listPrefix + i + listSuffix; - String listKeyName = listRootWithIndex + keyName; - String valueAtListIndexKey = ctx.getAttribute(listKeyName); - - if (valueAtListIndexKey.equals(keyValue)) { - setParametersToCtxList(parameters, ctx, listRootWithIndex, valuePrefixKey); - } - } - } - } catch (SvcLogicException e) { - LOG.error("Call to ctxListContains failed: " + e.getMessage()); - - return SvcLogicConstants.FAILURE; - } - - return SvcLogicConstants.SUCCESS; - } - - private static void setNewEntryInList(Map<String, String> parameters, SvcLogicContext ctx, String keyName, - String keyValue, String prefixKey, String valuePrefixKey, int listLength) { - String prefixKeyWithIndex = prefixKey + "[" + listLength + "]."; - String listKeyName = prefixKeyWithIndex + keyName; - - // set list key - LOG.debug("Setting context memory, new list entry with key: " + listKeyName + " = " + keyValue); - ctxSetAttribute(ctx, listKeyName, keyValue); - - // set the other parameters - setParametersToCtxList(parameters, ctx, prefixKeyWithIndex, valuePrefixKey); - - // set length of list - String ListLengthKeyName = prefixKey + LENGTH; - - ctxSetAttribute(ctx, prefixKey + LENGTH, listLength + 1); - LOG.debug("Updated _length: " + prefixKey + "_length is now " + ctx.getAttribute(ListLengthKeyName)); - } - - /** - * helper function to set the parameter properties for list at the provided prefix key - * - * @param parameters - * @param ctx - * @param prefixKey - * @return true if any new context memory was added and or modified - */ - private static boolean setParametersToCtxList(Map<String, String> parameters, SvcLogicContext ctx, String prefixKeyWithIndex, - String valuePrefixKey) { - boolean changeFlag = false; - - for (Map.Entry<String, String> entry : parameters.entrySet()) { - if (! (entry.getKey().equals("prefixKey") || - entry.getKey().equals("keyName") || - entry.getKey().equals("keyValue")) || - entry.getKey().equals("valuePrefixKey")) { - - String keyToBeSet = prefixKeyWithIndex + entry.getKey(); - String valueToBeSet = ""; - - if (StringUtils.isEmpty(valuePrefixKey)) { - valueToBeSet = entry.getValue(); - } else { - valueToBeSet = ctx.getAttribute(valuePrefixKey + "." + entry.getValue()); - } - - LOG.debug("Setting context memory: " + keyToBeSet + " = " + valueToBeSet); - - // only set context memory if properties key and value are not empty or null - if (!StringUtils.isEmpty(entry.getKey()) && !StringUtils.isEmpty(valueToBeSet)) { - ctxSetAttribute(ctx, keyToBeSet, valueToBeSet); - changeFlag = true; - } - } - } - - return changeFlag; - } - - public static String containsKey(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - String key = parameters.get("key"); - Boolean keyFound = ctx.getAttributeKeySet().contains(key); - if (keyFound) { - return "true"; - } - return "false"; - } - -} diff --git a/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SliStringUtils.java b/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SliStringUtils.java deleted file mode 100644 index 9e3367d45..000000000 --- a/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SliStringUtils.java +++ /dev/null @@ -1,559 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : CCSDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (C) 2018 IBM. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.slipluginutils; - -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import java.net.URLEncoder; -import java.util.Map; -import java.util.Base64; -import org.apache.commons.text.StringEscapeUtils; -import org.apache.commons.lang3.StringUtils; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * A SvcLogicJavaPlugin that exposes java.lang.String functions to DirectedGraph - */ -public class SliStringUtils implements SvcLogicJavaPlugin { - private static final Logger LOG = LoggerFactory.getLogger(SliStringUtils.class); - public static final String INPUT_PARAM_KEY = "key"; - public static final String INPUT_PARAM_SOURCE = "source"; - public static final String INPUT_PARAM_TARGET = "target"; - public static final String TRUE_CONSTANT = "true"; - public static final String FALSE_CONSTANT = "false"; - - public SliStringUtils() {} - - /** - * Provides split functionality to Directed Graphs. - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>original_string</td><td>Mandatory</td><td>String to perform split on</td></tr> - * <tr><td>regex</td><td>Mandatory</td><td>the delimiting regular expression</td></tr> - * <tr><td>limit</td><td>Optional</td><td>result threshold. See String.split method for further description. Defaults to 0</td></tr> - * <tr><td>ctx_memory_result_key</td><td>Mandatory</td><td>Key in context memory to populate the resulting array of strings under</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - * @see String#split(String, int) - */ - public void split( Map<String, String> parameters, SvcLogicContext ctx ) throws SvcLogicException { - final String original_string = parameters.get("original_string"); - LOG.trace("original_string = " + original_string); - final String regex = parameters.get("regex"); - LOG.trace("regex = " + regex); - final String limit_str = parameters.get("limit"); - LOG.trace("limit_str = " + limit_str); - final String ctx_memory_result_key = parameters.get("ctx_memory_result_key"); - LOG.trace("ctx_memory_result_key = " + ctx_memory_result_key); - - try { - // Validation that parameters are not null - SliPluginUtils.checkParameters( parameters, new String[]{"original_string","regex","ctx_memory_result_key"}, LOG ); - - // Read limit from context memory. Default to 0 if null/empty - int limit = 0; - if( StringUtils.isNotEmpty(limit_str) ) { - try { - limit = Integer.parseInt(limit_str); - } - catch( NumberFormatException e ) { - throw new IllegalArgumentException( "The limit parameter of the SliStringUtils.split() function must be a number, empty string, or null", e ); - } - } - - // Call String.split(regex,limit) on string passed in - String[] split_string = original_string.split(regex, limit); - - // Populate context memory with results - for( int i = 0; i < split_string.length; i++ ) { - SliPluginUtils.ctxSetAttribute(ctx, ctx_memory_result_key + '[' + i + ']', split_string[i], LOG, SliPluginUtils.LogLevel.DEBUG); - } - SliPluginUtils.ctxSetAttribute(ctx, ctx_memory_result_key + "_length", new Integer(split_string.length), LOG, SliPluginUtils.LogLevel.DEBUG); - } - catch( Exception e ) { - // Have error message print parameters - throw new SvcLogicException( "An error occurred during SliStringUtils.split() where original_string = " + quotedOrNULL(regex) + - " regex = " + quotedOrNULL(regex) + - " limit = " + quotedOrNULL(regex) + - " ctx_memory_result_key = " + quotedOrNULL(regex), e ); - } - } - - public static String quotedOrNULL( String str ) { - return (str == null) ? "NULL" : '"' + str + '"'; - } - - /** - * exposes equalsIgnoreCase to directed graph - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * emits a true or false outcome - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>source</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>target</td><td>Mandatory</td><td>target string</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static String equalsIgnoreCase(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[] {INPUT_PARAM_SOURCE, INPUT_PARAM_TARGET}, LOG); - if (parameters.get(INPUT_PARAM_SOURCE).equalsIgnoreCase(parameters.get(INPUT_PARAM_TARGET))) { - return TRUE_CONSTANT; - } - return FALSE_CONSTANT; - } - - /** - * exposes toUpperCase to directed graph - * writes an upperCase version of source to outputPath - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>source</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>outputPath</td><td>Mandatory</td><td>the location in context memory the result is written to</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static void toUpper(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[]{INPUT_PARAM_SOURCE,"outputPath"}, LOG); - ctx.setAttribute(parameters.get("outputPath"), parameters.get(INPUT_PARAM_SOURCE).toUpperCase()); - } - - /** - * exposes toLowerCase to directed graph - * writes a lowerCase version of source to outputPath - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>source</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>outputPath</td><td>Mandatory</td><td>the location in context memory the result is written to</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static void toLower(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[]{INPUT_PARAM_SOURCE,"outputPath"}, LOG); - ctx.setAttribute(parameters.get("outputPath"), parameters.get(INPUT_PARAM_SOURCE).toLowerCase()); - } - - /** - * exposes contains to directed graph to test if one string contains another - * tests if the source contains the target - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * emits a true or false outcome - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>source</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>target</td><td>Mandatory</td><td>target string</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static String contains(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[] {INPUT_PARAM_SOURCE, INPUT_PARAM_TARGET}, LOG); - if (parameters.get(INPUT_PARAM_SOURCE).contains(parameters.get(INPUT_PARAM_TARGET))) { - return TRUE_CONSTANT; - } - return FALSE_CONSTANT; - } - - /** - * exposes endsWith to directed graph to test if one string endsWith another string - * tests if the source ends with the target - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * emits a true or false outcome - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>source</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>target</td><td>Mandatory</td><td>target string</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static String endsWith(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[] {INPUT_PARAM_SOURCE, INPUT_PARAM_TARGET}, LOG); - if (parameters.get(INPUT_PARAM_SOURCE).endsWith(parameters.get(INPUT_PARAM_TARGET))) { - return TRUE_CONSTANT; - } - return FALSE_CONSTANT; - } - - /** - * exposes startsWith to directed graph to test if one string endsWith another string - * tests if the source ends with the target - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * emits a true or false outcome - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>source</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>target</td><td>Mandatory</td><td>target string</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static String startsWith(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[] {INPUT_PARAM_SOURCE, INPUT_PARAM_TARGET}, LOG); - if (parameters.get(INPUT_PARAM_SOURCE).startsWith(parameters.get(INPUT_PARAM_TARGET))) { - return TRUE_CONSTANT; - } - return FALSE_CONSTANT; - } - - /** - * exposes trim to directed graph - * writes a trimmed version of the string to the outputPath - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>source</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>outputPath</td><td>Mandatory</td><td>the location in context memory the result is written to</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static void trim(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[]{INPUT_PARAM_SOURCE,"outputPath"}, LOG); - ctx.setAttribute(parameters.get("outputPath"), parameters.get(INPUT_PARAM_SOURCE).trim()); - } - - /** - * exposes String.length() to directed graph - * writes the length of source to outputPath - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>source</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>outputPath</td><td>Mandatory</td><td>the location in context memory the result is written to</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static void getLength(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[]{INPUT_PARAM_SOURCE,"outputPath"}, LOG); - ctx.setAttribute(parameters.get("outputPath"), String.valueOf(parameters.get(INPUT_PARAM_SOURCE).length())); - } - - /** - * exposes replace to directed graph - * writes the length of source to outputPath - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>source</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>target</td><td>Mandatory</td><td>The sequence of char values to be replaced</td></tr> - * <tr><td>replacement</td><td>Mandatory</td><td>The replacement sequence of char values</td></tr> - * <tr><td>outputPath</td><td>Mandatory</td><td>the location in context memory the result is written to</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static void replace(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, - new String[] {INPUT_PARAM_SOURCE, "outputPath", INPUT_PARAM_TARGET, "replacement"}, LOG); - ctx.setAttribute(parameters.get("outputPath"), (parameters.get(INPUT_PARAM_SOURCE) - .replace(parameters.get(INPUT_PARAM_TARGET), parameters.get("replacement")))); - } - -/** - * exposes base64decoding algo - * writes the length of source to outputPath - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>encodedValue</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>decodedValue</td><td>Mandatory</td><td>Destination path</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static void base64DecodingAlgo(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException{ - try { - SliPluginUtils.checkParameters(parameters, new String[]{"encodedValue","decodedValue"}, LOG); - - Base64.Decoder decoder = Base64.getDecoder(); - byte[] decodedByteArray = decoder.decode(parameters.get("encodedValue")); - //Verify the decoded string - String decodeVal = new String(decodedByteArray); - ctx.setAttribute(parameters.get("decodedValue"), decodeVal); - }catch (Exception exc){ - LOG.error("Exception occure "+exc.getMessage()); - throw new SvcLogicException(exc.getMessage()); - } - } - - - /** - * exposes replaceAll to directed graph - * writes the length of source to outputPath - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>source</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>target</td><td>Mandatory</td><td>This should be a valid regular expression</td></tr> - * <tr><td>replacement</td><td>Mandatory</td><td>The replacement sequence of char values</td></tr> - * <tr><td>outputPath</td><td>Mandatory</td><td>the location in context memory the result is written to</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static void replaceAll(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, - new String[] {INPUT_PARAM_SOURCE, "outputPath", INPUT_PARAM_TARGET, "replacement"}, LOG); - ctx.setAttribute(parameters.get("outputPath"), parameters.get(INPUT_PARAM_SOURCE) - .replaceAll(parameters.get(INPUT_PARAM_TARGET), parameters.get("replacement"))); - } - - /** - * Provides substring functionality to Directed Graphs. - * <p> - * Calls either String.substring(String beginIndex) or - * String.substring(String beginInded, String endIndex) if the end-index - * is present or not. - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>string</td><td>Mandatory</td><td>String to perform substring on</td></tr> - * <tr><td>result</td><td>Mandatory</td><td>Key in context memory to populate the resulting string in</td></tr> - * <tr><td>begin-index</td><td>Mandatory</td><td>Beginning index to pass to Java substring function</td></tr> - * <tr><td>end-index</td><td>Optional</td><td>Ending index to pass to Java substring function. If not included, String.substring(begin) will be called.</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public void substring( Map<String, String> parameters, SvcLogicContext ctx ) throws SvcLogicException { - try { - SliPluginUtils.checkParameters( parameters, new String[]{"string","begin-index","result"}, LOG ); - final String string = parameters.get("string"); - final String result = parameters.get("result"); - final String begin = parameters.get("begin-index"); - final String end = parameters.get("end-index"); - if( StringUtils.isEmpty(end) ) { - ctx.setAttribute( result, string.substring(Integer.parseInt(begin)) ); - } - else { - ctx.setAttribute( result, string.substring(Integer.parseInt(begin), Integer.parseInt(end)) ); - } - } - catch( Exception e ) { - throw new SvcLogicException( "An error occurred while the Directed Graph was performing a substring", e ); - } - } - - /** - * Provides concat functionality to Directed Graphs. - * <p> - * Will concat target to source and write the result to outputPath - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>source</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>target</td><td>Mandatory</td><td>The sequence of char values to be replaced</td></tr> - * <tr><td>outputPath</td><td>Mandatory</td><td>the location in context memory the result is written to</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - * @since 11.0.2 - */ - public static void concat( Map<String, String> parameters, SvcLogicContext ctx ) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[] {INPUT_PARAM_SOURCE, INPUT_PARAM_TARGET, "outputPath"}, - LOG); - String result = parameters.get(INPUT_PARAM_SOURCE).concat(parameters.get(INPUT_PARAM_TARGET)); - ctx.setAttribute(parameters.get("outputPath"), result); - } - - /** - * Provides url encoding functionality to Directed Graphs. - * <p> - * Will url encode the source and write the result to outputPath - * @param parameters HashMap<String,String> of parameters passed by the DG to this function - * <table border="1"> - * <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead> - * <tbody> - * <tr><td>source</td><td>Mandatory</td><td>source string</td></tr> - * <tr><td>encoding</td><td>Optional</td><td>the name of a supported character encoding, defaulted to UTF-8 if not supplied</td></tr> - * <tr><td>outputPath</td><td>Mandatory</td><td>the location in context memory the result is written to</td></tr> - * </tbody> - * </table> - * @param ctx Reference to context memory - * @throws SvcLogicException - */ - public static void urlEncode(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[] { INPUT_PARAM_SOURCE, "outputPath" }, LOG); - String encoding = parameters.get("encoding"); - if (encoding == null) { - encoding = "UTF-8"; - } - try { - String result = URLEncoder.encode(parameters.get(INPUT_PARAM_SOURCE), encoding); - ctx.setAttribute(parameters.get("outputPath"), result); - } catch (UnsupportedEncodingException e) { - throw new SvcLogicException("Url encode failed.", e); - } - } - - public static void urlDecode(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[] {INPUT_PARAM_SOURCE, "outputPath"}, LOG); - String encoding = parameters.get("encoding"); - if (encoding == null) { - encoding = "UTF-8"; - } - try { - String result = URLDecoder.decode(parameters.get(INPUT_PARAM_SOURCE), encoding); - ctx.setAttribute(parameters.get("outputPath"), result); - } catch (UnsupportedEncodingException e) { - throw new SvcLogicException("Url decode failed.", e); - } - } - - /** - * xmlEscapeText() will be used to format input xml with text. - * - * @param inParams - * accepts the instance of {@link Map} holds the input xml in string - * format. - * @param ctx - * accepts the instance of {@link SvcLogicContext} holds the service - * logic context. - * - */ - public static void xmlEscapeText(Map<String, String> inParams, SvcLogicContext ctx) { - String source = inParams.get(INPUT_PARAM_SOURCE); - String target = inParams.get(INPUT_PARAM_TARGET); - source = StringEscapeUtils.escapeXml10(source); - ctx.setAttribute(target, source); - } - - /** - * unescapeJsonString takes an escaped json string stored as a single property in context memory and unescapes it storing it as a single property - * @param parameters - requires source and outputPath to not be null. - * @param ctx Reference to context memory - * @throws SvcLogicException if a required parameter is missing an exception is thrown - */ - public static void unescapeJsonString(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[] { INPUT_PARAM_SOURCE, INPUT_PARAM_TARGET }, LOG); - try { - String source = parameters.get(INPUT_PARAM_SOURCE); - String target = parameters.get(INPUT_PARAM_TARGET); - String unescapedJson = StringEscapeUtils.unescapeJson(source); - ctx.setAttribute(target, unescapedJson); - } catch (Exception ex) { - ex.printStackTrace(); - throw new SvcLogicException("problem with unescapeJsonString", ex); - } - } - - /** - * escapeJsonString takes json stored as a single string in context memory and escapes it storing it as a single property - * @param parameters - requires source and outputPath to not be null. - * @param ctx Reference to context memory - * @throws SvcLogicException if a required parameter is missing an exception is thrown - */ - public static void escapeJsonString(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - SliPluginUtils.checkParameters(parameters, new String[] { INPUT_PARAM_SOURCE, INPUT_PARAM_TARGET }, LOG); - try { - String source = parameters.get(INPUT_PARAM_SOURCE); - String target = parameters.get(INPUT_PARAM_TARGET); - String unescapedJson = StringEscapeUtils.escapeJson(source); - ctx.setAttribute(target, unescapedJson); - } catch (Exception ex) { - ex.printStackTrace(); - throw new SvcLogicException("problem with escapeJsonString", ex); - } - } - - public static String isBlank(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - String ctxLocation = parameters.get(INPUT_PARAM_KEY); - String str = ctx.getAttribute(ctxLocation); - if (str == null || str.isEmpty() || " ".equals(str)) { - return TRUE_CONSTANT; - } - return FALSE_CONSTANT; - } - - public static String isEmpty(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - String ctxLocation = parameters.get(INPUT_PARAM_KEY); - String str = ctx.getAttribute(ctxLocation); - if (str == null || str.isEmpty()) { - return TRUE_CONSTANT; - } - return FALSE_CONSTANT; - } - - public static String isNull(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException { - String ctxLocation = parameters.get(INPUT_PARAM_KEY); - String str = ctx.getAttribute(ctxLocation); - if (str == null) { - return TRUE_CONSTANT; - } - return FALSE_CONSTANT; - } -} diff --git a/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SvcLogicContextList.java b/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SvcLogicContextList.java deleted file mode 100644 index 32e1aebdc..000000000 --- a/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SvcLogicContextList.java +++ /dev/null @@ -1,210 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : CCSDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.slipluginutils; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.ListIterator; -import java.util.Map; - -import org.apache.commons.lang3.StringUtils; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; - -/** - * A utility class used to manage list manipulation in the context memory. - * @see org.onap.ccsdk.sli.core.sli.SvcLogicContext - */ -public class SvcLogicContextList { - /** - * Internal flag indicating if list should be deleted from context memory - * when it is copied into the SvcLogicContextList object. - */ - private enum OperType { - COPY, EXTRACT - } - - // TODO: javadoc - protected final String prefix; - // TODO: javadoc - protected final ArrayList<HashMap<String,String>> list; - - - // TODO: javadoc - public SvcLogicContextList( SvcLogicContext ctx, String list_prefix ) { - this(ctx, list_prefix, OperType.COPY); - } - - // TODO: javadoc - private SvcLogicContextList( SvcLogicContext ctx, String list_prefix, OperType operation ) { - this.prefix = list_prefix; - - // Initialize list - int capacity = getCtxListLength(ctx, prefix); - this.list = new ArrayList<>(capacity); - for( int i = 0; i < capacity; i++ ) { - this.list.add(i, new HashMap<String,String>()); - } - - // Populate "elements" in list - String prefix_bracket = this.prefix + '['; - for (String key : new HashSet<String>(ctx.getAttributeKeySet())) { - if( key.startsWith(prefix_bracket) ) { - // Extract the index of the list - int index = getCtxListIndex(key, this.prefix, capacity); - - // Store the - String suffix = key.substring((prefix_bracket + index + ']').length()); - suffix = suffix.isEmpty() ? suffix : suffix.substring(1); - this.list.get(index).put( suffix, ctx.getAttribute(key)); - - // If flag to extract set, remove data from context memory as - // it is read into this list - if( operation == OperType.EXTRACT ) { - ctx.setAttribute(key, null); - } - } - } - - // If flag to extract set, remove list _length value from cxt mem - if( operation == OperType.EXTRACT ) { - ctx.setAttribute(this.prefix + "_length", null); - } - } - - // TODO: javadoc - public static SvcLogicContextList extract( SvcLogicContext ctx, String list_prefix ) { - return new SvcLogicContextList(ctx, list_prefix, OperType.EXTRACT); - } - - - // ========== PUBLIC FUNCTIONS ========== - - // TODO: javadoc - public HashMap<String,String> get( int index ) { - return this.list.get(index); - } - - // TODO: javadoc - public HashMap<String,String> remove( int index ) { - return this.list.remove(index); - } - - // TODO: javadoc - public void remove( String value ) { - remove( "", value ); - } - - // TODO: javadoc - public void remove( String key, String value ) { - if( value == null ) { - throw new IllegalArgumentException("value cannot be null"); - } - - ListIterator<HashMap<String,String>> itr = this.list.listIterator(); - while( itr.hasNext() ) { - if( value.equals(itr.next().get(key)) ) { - itr.remove(); - } - } - } - - // TODO javadoc - public void remove( Map<String,String> primary_key ) { - ListIterator<HashMap<String,String>> itr = this.list.listIterator(); - while( itr.hasNext() ) { - boolean found = true; - HashMap<String,String> list_element = itr.next(); - for( Map.Entry<String,String> key : primary_key.entrySet() ) { - if( !key.getValue().equals(list_element.get(key.getKey())) ) { - found = false; - break; - } - } - - if( found ) { - itr.remove(); - } - } - } - - // TODO: javadoc - public int size() { - return list.size(); - } - - // TODO: javadoc - public void writeToContext( SvcLogicContext ctx ) { - ctx.setAttribute( prefix + "_length", Integer.toString(this.list.size()) ); - - for( int i = 0; i < this.list.size(); i++ ) { - for( Map.Entry<String,String> entry : this.list.get(i).entrySet() ) { - if("".equals(entry.getKey())) { - ctx.setAttribute(prefix + '[' + i + ']', entry.getValue()); - } else { - ctx.setAttribute(prefix + '[' + i + "]." + entry.getKey(), entry.getValue()); - } - } - } - } - - - - // ========== PRIVATE STATIC FUNCTIONS ========== - - // TODO: javadoc - private static int getCtxListIndex( String key, String prefix, int list_size ) { - int index = getCtxListIndex( key, prefix ); - if( index >= list_size ) { - throw new IllegalArgumentException("Context memory list \"" + prefix + "[]\" contains an index >= the size of the list", new ArrayIndexOutOfBoundsException("index \"" + index + "\" is outside the bounds of the context memory list \"" + prefix + "[]. List Length = " + list_size)); - } else if (index < 0) { - throw new IllegalArgumentException("Context memory list \"" + prefix + "[]\" contains a negative index", new NegativeArraySizeException("index \"" + index + "\" of context memory list is negative")); - } - - return index; - } - - // TODO: javadoc - private static int getCtxListIndex( String key, String prefix ) { - String ctx_index_str = StringUtils.substringBetween(key.substring(prefix.length()), "[", "]"); - try { - return Integer.parseInt( ctx_index_str ); - } catch (NumberFormatException e) { - throw new IllegalStateException("Could not parse index value \"" + ctx_index_str + "\" in context memory key \"" + key + "\"", e); - } - } - - // TODO: javadoc - private static int getCtxListLength( SvcLogicContext ctx, String prefix ) { - String _length_key = prefix + "_length"; - String _length_val_str = ctx.getAttribute(_length_key); - try { - return Integer.parseInt(_length_val_str); - } catch (NumberFormatException e) { - if( _length_val_str == null ) { - throw new IllegalStateException( "Could not find list length \"" + _length_key + "\" in context memory." ); - } else { - throw new IllegalStateException( "Could not parse index value \"" + _length_val_str + "\" of context memory list length \"" + _length_key + "\"" , e ); - } - } - } -} diff --git a/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SvcLogicContextObject.java b/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SvcLogicContextObject.java deleted file mode 100644 index aa41a5c60..000000000 --- a/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SvcLogicContextObject.java +++ /dev/null @@ -1,28 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : CCSDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.slipluginutils; - -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; - -public interface SvcLogicContextObject { - void writeToContext(SvcLogicContext ctx, String root ); -} diff --git a/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/commondatastructures/YesNo.java b/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/commondatastructures/YesNo.java deleted file mode 100644 index 5db752e29..000000000 --- a/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/commondatastructures/YesNo.java +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : CCSDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -/** - * - */ -package org.onap.ccsdk.sli.core.slipluginutils.commondatastructures; - -/** - * An enum found in many Yang models. It is commonly used as a - * substitute for boolean. - */ -public enum YesNo { - N, Y; - - /** - * Method overload for {@link #valueOf(String)} for the char primative - */ - public static YesNo valueOf( final char name ) { - return YesNo.valueOf( Character.toString(name) ); - } - - /** - * Method overload for {@link #valueOf(String)} for the Character object - */ - public static YesNo valueOf( final Character name ) { - if( name == null ) { - return null; - } - - return YesNo.valueOf( name.toString() ); - } -} diff --git a/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/commondatastructures/package-info.java b/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/commondatastructures/package-info.java deleted file mode 100644 index 2aa949b03..000000000 --- a/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/commondatastructures/package-info.java +++ /dev/null @@ -1,28 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : CCSDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -/** - * - */ -/** - * - */ -package org.onap.ccsdk.sli.core.slipluginutils.commondatastructures; diff --git a/sliPluginUtils/provider/src/main/resources/OSGI-INF/blueprint/slipluginutils-blueprint.xml b/sliPluginUtils/provider/src/main/resources/OSGI-INF/blueprint/slipluginutils-blueprint.xml deleted file mode 100644 index 534b92c93..000000000 --- a/sliPluginUtils/provider/src/main/resources/OSGI-INF/blueprint/slipluginutils-blueprint.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
- odl:use-default-for-reference-types="true">
-
- <bean id="sliPluginUtils" class="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" />
- <service ref="sliPluginUtils"
- interface="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" />
-
- <bean id="sliStringUtils" class="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" />
- <service ref="sliStringUtils"
- interface="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" />
-</blueprint>
diff --git a/sliPluginUtils/provider/src/main/resources/org/opendaylight/blueprint/slipluginutils-blueprint.xml b/sliPluginUtils/provider/src/main/resources/org/opendaylight/blueprint/slipluginutils-blueprint.xml deleted file mode 100644 index 534b92c93..000000000 --- a/sliPluginUtils/provider/src/main/resources/org/opendaylight/blueprint/slipluginutils-blueprint.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
- odl:use-default-for-reference-types="true">
-
- <bean id="sliPluginUtils" class="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" />
- <service ref="sliPluginUtils"
- interface="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" />
-
- <bean id="sliStringUtils" class="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" />
- <service ref="sliStringUtils"
- interface="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" />
-</blueprint>
diff --git a/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_StaticFunctionsTest.java b/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_StaticFunctionsTest.java deleted file mode 100644 index 42e7ceb94..000000000 --- a/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_StaticFunctionsTest.java +++ /dev/null @@ -1,591 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : CCSDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.slipluginutils; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.HashMap; -import java.util.Map; -import org.junit.Before; -import org.junit.Test; -import org.onap.ccsdk.sli.core.sli.SvcLogicConstants; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils.LogLevel; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import com.google.gson.JsonObject; - -public class SliPluginUtils_StaticFunctionsTest { - private static final Logger LOG = LoggerFactory.getLogger(SliPluginUtils_StaticFunctionsTest.class); - SliPluginUtils utils = new SliPluginUtils(); - private SvcLogicContext ctx; - private HashMap<String, String> parameters; - - @Before - public void setUp() throws Exception { - this.ctx = new SvcLogicContext(); - parameters = new HashMap<String, String>(); - } - - // TODO: javadoc - @Test - public final void testCtxGetBeginsWith() { - ctx.setAttribute("service-data.oper-status.order-status", "InProgress"); - ctx.setAttribute("service-data.service-information.service-instance-id", "my-instance"); - ctx.setAttribute("service-data.service-information.service-type", "my-service"); - - Map<String, String> entries = SliPluginUtils.ctxGetBeginsWith(ctx, "service-data.service-information"); - - assertEquals("my-instance", entries.get("service-data.service-information.service-instance-id")); - assertEquals("my-service", entries.get("service-data.service-information.service-type")); - assertFalse(entries.containsKey("service-data.oper-status.order-status")); - } - - // TODO: javadoc - @Test - public final void testCtxListRemove_index() throws SvcLogicException { - LOG.trace("=== testCtxListRemove_index ==="); - ctx.setAttribute("service-data.vnf-l3[0].vnf-host-name", "vnf-host-name_0"); - ctx.setAttribute("service-data.vnf-l3[0].device-host-name", "device-host-name_0"); - ctx.setAttribute("service-data.vnf-l3[1].vnf-host-name", "vnf-host-name_1"); - ctx.setAttribute("service-data.vnf-l3[1].device-host-name", "device-host-name_1"); - ctx.setAttribute("service-data.vnf-l3[2].vnf-host-name", "vnf-host-name_2"); - ctx.setAttribute("service-data.vnf-l3[2].device-host-name", "device-host-name_2"); - ctx.setAttribute("service-data.vnf-l3_length", "3"); - - parameters.put("index", "1"); - parameters.put("list_pfx", "service-data.vnf-l3"); - - utils.ctxListRemove(parameters, ctx); - SliPluginUtils.logContextMemory(ctx, LOG, SliPluginUtils.LogLevel.TRACE); - - assertEquals("2", ctx.getAttribute("service-data.vnf-l3_length")); - assertEquals("vnf-host-name_0", ctx.getAttribute("service-data.vnf-l3[0].vnf-host-name")); - assertEquals("device-host-name_0", ctx.getAttribute("service-data.vnf-l3[0].device-host-name")); - assertEquals("vnf-host-name_2", ctx.getAttribute("service-data.vnf-l3[1].vnf-host-name")); - assertEquals("device-host-name_2", ctx.getAttribute("service-data.vnf-l3[1].device-host-name")); - } - - // TODO: javadoc - @Test - public final void textCtxListRemove_keyValue() throws SvcLogicException { - LOG.trace("=== textCtxListRemove_keyValue ==="); - ctx.setAttribute("service-data.vnf-l3[0].vnf-host-name", "vnf-host-name_0"); - ctx.setAttribute("service-data.vnf-l3[0].device-host-name", "device-host-name_0"); - ctx.setAttribute("service-data.vnf-l3[1].vnf-host-name", "vnf-host-name_1"); - ctx.setAttribute("service-data.vnf-l3[1].device-host-name", "device-host-name_1"); - ctx.setAttribute("service-data.vnf-l3[2].vnf-host-name", "vnf-host-name_2"); - ctx.setAttribute("service-data.vnf-l3[2].device-host-name", "device-host-name_2"); - // 2nd entry - ctx.setAttribute("service-data.vnf-l3[3].vnf-host-name", "vnf-host-name_1"); - ctx.setAttribute("service-data.vnf-l3[3].device-host-name", "device-host-name_1"); - ctx.setAttribute("service-data.vnf-l3_length", "4"); - - parameters.put("list_pfx", "service-data.vnf-l3"); - parameters.put("key", "vnf-host-name"); - parameters.put("value", "vnf-host-name_1"); - - utils.ctxListRemove(parameters, ctx); - SliPluginUtils.logContextMemory(ctx, LOG, SliPluginUtils.LogLevel.TRACE); - - assertEquals("2", ctx.getAttribute("service-data.vnf-l3_length")); - assertEquals("vnf-host-name_0", ctx.getAttribute("service-data.vnf-l3[0].vnf-host-name")); - assertEquals("device-host-name_0", ctx.getAttribute("service-data.vnf-l3[0].device-host-name")); - assertEquals("vnf-host-name_2", ctx.getAttribute("service-data.vnf-l3[1].vnf-host-name")); - assertEquals("device-host-name_2", ctx.getAttribute("service-data.vnf-l3[1].device-host-name")); - } - - // TODO: javadoc - @Test - public final void textCtxListRemove_keyValue_nullkey() throws SvcLogicException { - LOG.trace("=== textCtxListRemove_keyValue_nullkey ==="); - ctx.setAttribute("service-data.vnf-l3[0]", "vnf-host-name_0"); - ctx.setAttribute("service-data.vnf-l3[1]", "vnf-host-name_1"); - ctx.setAttribute("service-data.vnf-l3[2]", "vnf-host-name_2"); - ctx.setAttribute("service-data.vnf-l3_length", "3"); - - parameters.put("list_pfx", "service-data.vnf-l3"); - parameters.put("value", "vnf-host-name_1"); - - utils.ctxListRemove(parameters, ctx); - SliPluginUtils.logContextMemory(ctx, LOG, SliPluginUtils.LogLevel.TRACE); - - assertEquals("2", ctx.getAttribute("service-data.vnf-l3_length")); - assertEquals("vnf-host-name_0", ctx.getAttribute("service-data.vnf-l3[0]")); - assertEquals("vnf-host-name_2", ctx.getAttribute("service-data.vnf-l3[1]")); - } - - // TODO: javadoc - @Test - public final void textCtxListRemove_keyValueList() throws SvcLogicException { - LOG.trace("=== textCtxListRemove_keyValueList ==="); - ctx.setAttribute("service-data.vnf-l3[0].vnf-host-name", "vnf-host-name_0"); - ctx.setAttribute("service-data.vnf-l3[0].device-host-name", "device-host-name_0"); - ctx.setAttribute("service-data.vnf-l3[1].vnf-host-name", "vnf-host-name_1"); - ctx.setAttribute("service-data.vnf-l3[1].device-host-name", "device-host-name_1"); - ctx.setAttribute("service-data.vnf-l3[2].vnf-host-name", "vnf-host-name_2"); - ctx.setAttribute("service-data.vnf-l3[2].device-host-name", "device-host-name_2"); - // 2nd entry - ctx.setAttribute("service-data.vnf-l3[3].vnf-host-name", "vnf-host-name_1"); - ctx.setAttribute("service-data.vnf-l3[3].device-host-name", "device-host-name_1"); - // entries with only 1 of 2 key-value pairs matching - ctx.setAttribute("service-data.vnf-l3[4].vnf-host-name", "vnf-host-name_1"); - ctx.setAttribute("service-data.vnf-l3[4].device-host-name", "device-host-name_4"); - ctx.setAttribute("service-data.vnf-l3[5].vnf-host-name", "vnf-host-name_5"); - ctx.setAttribute("service-data.vnf-l3[5].device-host-name", "device-host-name_1"); - ctx.setAttribute("service-data.vnf-l3_length", "6"); - - parameters.put("list_pfx", "service-data.vnf-l3"); - parameters.put("keys_length", "2"); - parameters.put("keys[0].key", "vnf-host-name"); - parameters.put("keys[0].value", "vnf-host-name_1"); - parameters.put("keys[1].key", "device-host-name"); - parameters.put("keys[1].value", "device-host-name_1"); - - utils.ctxListRemove(parameters, ctx); - SliPluginUtils.logContextMemory(ctx, LOG, SliPluginUtils.LogLevel.TRACE); - - assertEquals("4", ctx.getAttribute("service-data.vnf-l3_length")); - assertEquals("vnf-host-name_0", ctx.getAttribute("service-data.vnf-l3[0].vnf-host-name")); - assertEquals("device-host-name_0", ctx.getAttribute("service-data.vnf-l3[0].device-host-name")); - assertEquals("vnf-host-name_2", ctx.getAttribute("service-data.vnf-l3[1].vnf-host-name")); - assertEquals("device-host-name_2", ctx.getAttribute("service-data.vnf-l3[1].device-host-name")); - assertEquals("vnf-host-name_1", ctx.getAttribute("service-data.vnf-l3[2].vnf-host-name")); - assertEquals("device-host-name_4", ctx.getAttribute("service-data.vnf-l3[2].device-host-name")); - assertEquals("vnf-host-name_5", ctx.getAttribute("service-data.vnf-l3[3].vnf-host-name")); - assertEquals("device-host-name_1", ctx.getAttribute("service-data.vnf-l3[3].device-host-name")); - } - - // TODO: javadoc - @Test(expected = SvcLogicException.class) - public final void testCtxListRemove_nullListLength() throws SvcLogicException { - LOG.trace("=== testCtxListRemove_nullListLength ==="); - ctx.setAttribute("service-data.vnf-l3[0].vnf-host-name", "vnf-host-name_0"); - ctx.setAttribute("service-data.vnf-l3[0].device-host-name", "device-host-name_0"); - ctx.setAttribute("service-data.vnf-l3[1].vnf-host-name", "vnf-host-name_1"); - ctx.setAttribute("service-data.vnf-l3[1].device-host-name", "device-host-name_1"); - ctx.setAttribute("service-data.vnf-l3[2].vnf-host-name", "vnf-host-name_2"); - ctx.setAttribute("service-data.vnf-l3[2].device-host-name", "device-host-name_2"); - - parameters.put("index", "1"); - parameters.put("list_pfx", "service-data.vnf-l3"); - - utils.ctxListRemove(parameters, ctx); - } - - // TODO: javadoc - @Test - public final void testCtxPutAll() { - HashMap<String, Object> entries = new HashMap<String, Object>(); - entries.put("service-data.oper-status.order-status", "InProgress"); - entries.put("service-data.service-information.service-instance-id", "my-instance"); - entries.put("service-data.request-information.order-number", 1234); - entries.put("service-data.request-information.request-id", null); - - SliPluginUtils.ctxPutAll(ctx, entries); - - assertEquals("InProgress", ctx.getAttribute("service-data.oper-status.order-status")); - assertEquals("my-instance", ctx.getAttribute("service-data.service-information.service-instance-id")); - assertEquals("1234", ctx.getAttribute("service-data.request-information.order-number")); - assertFalse(ctx.getAttributeKeySet().contains("service-data.request-information.request-id")); - } - - // TODO: javadoc - @Test - public final void testCtxSetAttribute_LOG() { - LOG.debug("=== testCtxSetAttribute_LOG ==="); - Integer i = new Integer(3); - SliPluginUtils.ctxSetAttribute(ctx, "test", i, LOG, SliPluginUtils.LogLevel.TRACE); - } - - @Test - public void setTime() throws SvcLogicException { - String outputPath = "output"; - parameters.put("outputPath", outputPath); - SliPluginUtils.setTime(parameters, ctx); - assertNotNull(ctx.getAttribute(outputPath)); - } - - @Test - public void containsKey() throws Exception { - ctx = new SvcLogicContext(); - parameters.put(SliStringUtils.INPUT_PARAM_KEY, "key_does_not_exist"); - String result = SliPluginUtils.containsKey(parameters, ctx); - assertEquals(SliStringUtils.FALSE_CONSTANT, result); - - ctx.setAttribute("a", null); - parameters.put(SliStringUtils.INPUT_PARAM_KEY, "a"); - result = SliPluginUtils.containsKey(parameters, ctx); - assertEquals(SliStringUtils.FALSE_CONSTANT, result); - - ctx.setAttribute("a", "hellworld"); - parameters.put(SliStringUtils.INPUT_PARAM_KEY, "a"); - result = SliPluginUtils.containsKey(parameters, ctx); - assertEquals(SliStringUtils.TRUE_CONSTANT, result); - } - - @Test - public void testGetAttributeValue() throws Exception { - parameters.put("outputPath", "testPath"); - parameters.put("source", "testSource"); - SliPluginUtils.getAttributeValue(parameters, ctx); - assertNull(ctx.getAttribute(parameters.get("outputPath"))); - } - - @Test - public void testCtxListContains() throws Exception { - parameters.put("list", "10_length"); - parameters.put("keyName", "testName"); - parameters.put("keyValue", "testValue"); - ctx.setAttribute("10_length", "10"); - assertEquals("false", SliPluginUtils.ctxListContains(parameters, ctx)); - - } - - @Test(expected = SvcLogicException.class) - public void testPrintContextForEmptyParameters() throws SvcLogicException { - SliPluginUtils.printContext(parameters, ctx); - } - - @Test(expected = SvcLogicException.class) - public void testPrintContextForNullParameters() throws SvcLogicException { - SliPluginUtils.printContext(null, ctx); - } - - @Test - public void testPrintContext() throws SvcLogicException { - parameters.put("filename", "testFileName"); - SliPluginUtils.printContext(parameters, ctx); - } - - @Test - public void testCtxKeyEmpty() { - ctx.setAttribute("key", ""); - assertTrue(SliPluginUtils.ctxKeyEmpty(ctx, "key")); - } - - @Test - public void testGetArrayLength() { - ctx.setAttribute("key_length", "test"); - Logger log = LoggerFactory.getLogger(getClass()); - SliPluginUtils.getArrayLength(ctx, "key", log, LogLevel.INFO, "invalid input"); - } - - @Test - public void testSetPropertiesForRoot() { - Map<String, String> parameters = new HashMap<>(); - parameters.put("root", "RootVal"); - parameters.put("valueRoot", "ValueRootVal"); - assertEquals(SvcLogicConstants.SUCCESS, SliPluginUtils.setPropertiesForRoot(parameters, ctx)); - } - - @Test - public void testJsonStringToCtxToplevelArray() throws Exception { - String path = "src/test/resources/ArrayMenu.json"; - String content = new String(Files.readAllBytes(Paths.get(path))); - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("input", content); - Map<String, String> parameters = new HashMap<String, String>(); - parameters.put("outputPath", "testPath"); - parameters.put("isEscaped", "false"); - parameters.put("source", "input"); - - SliPluginUtils.jsonStringToCtx(parameters, ctx); - - assertEquals("1000", ctx.getAttribute("testPath.[0].calories")); - assertEquals("1", ctx.getAttribute("testPath.[0].id")); - assertEquals("plain", ctx.getAttribute("testPath.[0].name")); - assertEquals("pizza", ctx.getAttribute("testPath.[0].type")); - assertEquals("true", ctx.getAttribute("testPath.[0].vegetarian")); - assertEquals(SliPluginUtils.CTX_NULL_VALUE, ctx.getAttribute("testPath.[1].calories")); - assertEquals("2", ctx.getAttribute("testPath.[1].id")); - assertEquals("Tuesday Special", ctx.getAttribute("testPath.[1].name")); - assertEquals("1", ctx.getAttribute("testPath.[1].topping[0].id")); - assertEquals("onion", ctx.getAttribute("testPath.[1].topping[0].name")); - assertEquals("2", ctx.getAttribute("testPath.[1].topping[1].id")); - assertEquals("pepperoni", ctx.getAttribute("testPath.[1].topping[1].name")); - assertEquals("2", ctx.getAttribute("testPath.[1].topping_length")); - assertEquals("pizza", ctx.getAttribute("testPath.[1].type")); - assertEquals("false", ctx.getAttribute("testPath.[1].vegetarian")); - assertEquals("1500", ctx.getAttribute("testPath.[2].calories")); - assertEquals("3", ctx.getAttribute("testPath.[2].id")); - assertEquals("House Special", ctx.getAttribute("testPath.[2].name")); - assertEquals("3", ctx.getAttribute("testPath.[2].topping[0].id")); - assertEquals("basil", ctx.getAttribute("testPath.[2].topping[0].name")); - assertEquals("4", ctx.getAttribute("testPath.[2].topping[1].id")); - assertEquals("fresh mozzarella", ctx.getAttribute("testPath.[2].topping[1].name")); - assertEquals("5", ctx.getAttribute("testPath.[2].topping[2].id")); - assertEquals("tomato", ctx.getAttribute("testPath.[2].topping[2].name")); - assertEquals("3", ctx.getAttribute("testPath.[2].topping_length")); - assertEquals("pizza", ctx.getAttribute("testPath.[2].type")); - assertEquals("true", ctx.getAttribute("testPath.[2].vegetarian")); - assertEquals("3", ctx.getAttribute("testPath._length")); - } - - @Test - public void testJsonStringToCtx() throws Exception { - String path = "src/test/resources/ObjectMenu.json"; - String content = new String(Files.readAllBytes(Paths.get(path))); - - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("input", content); - - Map<String, String> parameters = new HashMap<String, String>(); - parameters.put("outputPath", "testPath"); - parameters.put("isEscaped", "false"); - parameters.put("source", "input"); - - SliPluginUtils.jsonStringToCtx(parameters, ctx); - - - assertEquals("1000", ctx.getAttribute("testPath.menu[0].calories")); - assertEquals("1", ctx.getAttribute("testPath.menu[0].id")); - assertEquals("plain", ctx.getAttribute("testPath.menu[0].name")); - assertEquals("pizza", ctx.getAttribute("testPath.menu[0].type")); - assertEquals("true", ctx.getAttribute("testPath.menu[0].vegetarian")); - assertEquals("2000", ctx.getAttribute("testPath.menu[1].calories")); - assertEquals("2", ctx.getAttribute("testPath.menu[1].id")); - assertEquals("Tuesday Special", ctx.getAttribute("testPath.menu[1].name")); - assertEquals("1", ctx.getAttribute("testPath.menu[1].topping[0].id")); - assertEquals("onion", ctx.getAttribute("testPath.menu[1].topping[0].name")); - assertEquals("2", ctx.getAttribute("testPath.menu[1].topping[1].id")); - assertEquals("pepperoni", ctx.getAttribute("testPath.menu[1].topping[1].name")); - assertEquals("2", ctx.getAttribute("testPath.menu[1].topping_length")); - assertEquals("pizza", ctx.getAttribute("testPath.menu[1].type")); - assertEquals("false", ctx.getAttribute("testPath.menu[1].vegetarian")); - assertEquals("1500", ctx.getAttribute("testPath.menu[2].calories")); - assertEquals("3", ctx.getAttribute("testPath.menu[2].id")); - assertEquals("House Special", ctx.getAttribute("testPath.menu[2].name")); - assertEquals("3", ctx.getAttribute("testPath.menu[2].topping[0].id")); - assertEquals("basil", ctx.getAttribute("testPath.menu[2].topping[0].name")); - assertEquals("4", ctx.getAttribute("testPath.menu[2].topping[1].id")); - assertEquals("fresh mozzarella", ctx.getAttribute("testPath.menu[2].topping[1].name")); - assertEquals("5", ctx.getAttribute("testPath.menu[2].topping[2].id")); - assertEquals("tomato", ctx.getAttribute("testPath.menu[2].topping[2].name")); - assertEquals("3", ctx.getAttribute("testPath.menu[2].topping_length")); - assertEquals("pizza", ctx.getAttribute("testPath.menu[2].type")); - assertEquals("true", ctx.getAttribute("testPath.menu[2].vegetarian")); - assertEquals("3", ctx.getAttribute("testPath.menu_length")); - } - - @Test - public void test2dJsonStringToCtx() throws Exception { - String path = "src/test/resources/2dArray.json"; - String content = new String(Files.readAllBytes(Paths.get(path))); - - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("input", content); - - Map<String, String> parameters = new HashMap<String, String>(); - parameters.put("outputPath", "testPath"); - parameters.put("isEscaped", "false"); - parameters.put("source", "input"); - - SliPluginUtils.jsonStringToCtx(parameters, ctx); - assertEquals("apple", ctx.getAttribute("testPath.[0][0]")); - assertEquals("orange", ctx.getAttribute("testPath.[0][1]")); - assertEquals("banana", ctx.getAttribute("testPath.[0][2]")); - assertEquals(SliPluginUtils.CTX_NULL_VALUE, ctx.getAttribute("testPath.[0][3]")); - assertEquals("4", ctx.getAttribute("testPath.[0]_length")); - assertEquals("squash", ctx.getAttribute("testPath.[1][0]")); - assertEquals("broccoli", ctx.getAttribute("testPath.[1][1]")); - assertEquals("cauliflower", ctx.getAttribute("testPath.[1][2]")); - assertEquals("3", ctx.getAttribute("testPath.[1]_length")); - assertEquals("2", ctx.getAttribute("testPath._length")); - } - - @Test - public void test3dJsonStringToCtx() throws Exception { - String path = "src/test/resources/3dArray.json"; - String content = new String(Files.readAllBytes(Paths.get(path))); - - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("input", content); - - Map<String, String> parameters = new HashMap<String, String>(); - parameters.put("outputPath", "testPath"); - parameters.put("isEscaped", "false"); - parameters.put("source", "input"); - - SliPluginUtils.jsonStringToCtx(parameters, ctx); - assertEquals("a", ctx.getAttribute("testPath.[0][0][0]")); - assertEquals("b", ctx.getAttribute("testPath.[0][0][1]")); - assertEquals("c", ctx.getAttribute("testPath.[0][0][2]")); - assertEquals("3", ctx.getAttribute("testPath.[0][0]_length")); - assertEquals("d", ctx.getAttribute("testPath.[0][1][0]")); - assertEquals("e", ctx.getAttribute("testPath.[0][1][1]")); - assertEquals("f", ctx.getAttribute("testPath.[0][1][2]")); - assertEquals("3", ctx.getAttribute("testPath.[0][1]_length")); - assertEquals("2", ctx.getAttribute("testPath.[0]_length")); - assertEquals("x", ctx.getAttribute("testPath.[1][0][0]")); - assertEquals("y", ctx.getAttribute("testPath.[1][0][1]")); - assertEquals("z", ctx.getAttribute("testPath.[1][0][2]")); - assertEquals("3", ctx.getAttribute("testPath.[1][0]_length")); - assertEquals("1", ctx.getAttribute("testPath.[1]_length")); - assertEquals("2", ctx.getAttribute("testPath._length")); - } - - @Test - public void testJsonWidgetStringToCtx() throws Exception { - String path = "src/test/resources/Widget.json"; - String content = new String(Files.readAllBytes(Paths.get(path))); - - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("input", content); - - Map<String, String> parameters = new HashMap<String, String>(); - parameters.put("outputPath", "testPath"); - parameters.put("isEscaped", "false"); - parameters.put("source", "input"); - - SliPluginUtils.jsonStringToCtx(parameters, ctx); - assertEquals("false", ctx.getAttribute("testPath.widget.debug")); - assertEquals("center", ctx.getAttribute("testPath.widget.image.alignment")); - assertEquals("150", ctx.getAttribute("testPath.widget.image.hOffset")); - assertEquals("moon", ctx.getAttribute("testPath.widget.image.name")); - assertEquals("images/moon.png", ctx.getAttribute("testPath.widget.image.src")); - assertEquals("150", ctx.getAttribute("testPath.widget.image.vOffset")); - assertEquals("center", ctx.getAttribute("testPath.widget.text.alignment")); - assertEquals("Click Me", ctx.getAttribute("testPath.widget.text.data")); - assertEquals("350", ctx.getAttribute("testPath.widget.text.hOffset")); - assertEquals("text1", ctx.getAttribute("testPath.widget.text.name")); - assertEquals("21", ctx.getAttribute("testPath.widget.text.size")); - assertEquals("bold", ctx.getAttribute("testPath.widget.text.style")); - assertEquals(SliPluginUtils.CTX_NULL_VALUE, ctx.getAttribute("testPath.widget.text.vOffset")); - assertEquals("300", ctx.getAttribute("testPath.widget.window.height")); - assertEquals("main_window", ctx.getAttribute("testPath.widget.window.name")); - assertEquals("ONAP Widget", ctx.getAttribute("testPath.widget.window.title")); - assertEquals("200", ctx.getAttribute("testPath.widget.window.width")); - } - - @Test - public void testUpdateJsonObjectString() throws Exception { - String path = "src/test/resources/JsonObject.json"; - String content = new String(Files.readAllBytes(Paths.get(path))); - - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("input", content); - - Map<String, String> parametersUpdateJson = new HashMap<String, String>(); - parametersUpdateJson.put("source", "input"); - parametersUpdateJson.put("outputPath", "newJsonString"); - - // add key "ccc" and its value - parametersUpdateJson.put("add.ccc", "abcxyz"); - - // update keys and their values of "aaa" and "c.d" - parametersUpdateJson.put("add.aaa", "4567"); - parametersUpdateJson.put("add.c.d", "defg"); - - // delete key "bbb" - parametersUpdateJson.put("delete.bbb", ""); - - SliPluginUtils.updateJsonObjectString(parametersUpdateJson, ctx); - - Map<String, String> parametersJsonToCtx = new HashMap<String, String>(); - parametersJsonToCtx.put("source", "newJsonString"); - parametersJsonToCtx.put("outputPath", "testPath"); - parametersJsonToCtx.put("isEscaped", "false"); - - SliPluginUtils.jsonStringToCtx(parametersJsonToCtx, ctx); - - assertEquals("abcxyz", ctx.getAttribute("testPath.ccc")); - assertEquals("4567", ctx.getAttribute("testPath.aaa")); - assertEquals("defg", ctx.getAttribute("testPath.c.d")); - assertEquals(null, ctx.getAttribute("testPath.bbb")); - } - - @Test - public void testEmbeddedEscapedJsonJsonStringToCtx() throws Exception { - String path = "src/test/resources/EmbeddedEscapedJson.json"; - String content = new String(Files.readAllBytes(Paths.get(path))); - - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("input", content); - - Map<String, String> parameters = new HashMap<String, String>(); - parameters.put("outputPath", "testPath"); - parameters.put("isEscaped", "false"); - parameters.put("source", "input"); - - SliPluginUtils.jsonStringToCtx(parameters, ctx); - - assertEquals("escapedJsonObject", ctx.getAttribute("testPath.input.parameters[0].name")); - assertEquals("[{\"id\":\"0.2.0.0/16\"},{\"id\":\"ge04::/64\"}]", - ctx.getAttribute("testPath.input.parameters[0].value")); - assertEquals("Hello/World", ctx.getAttribute("testPath.input.parameters[1].value")); - assertEquals("resourceName", ctx.getAttribute("testPath.input.parameters[2].name")); - assertEquals("The\t\"Best\"\tName", ctx.getAttribute("testPath.input.parameters[2].value")); - assertEquals("3", ctx.getAttribute("testPath.input.parameters_length")); - - - // Break the embedded json object into properties - parameters.put("outputPath", "testPath.input.parameters[0].value"); - parameters.put("source", "testPath.input.parameters[0].value"); - SliPluginUtils.jsonStringToCtx(parameters, ctx); - - assertEquals("0.2.0.0/16", ctx.getAttribute("testPath.input.parameters[0].value.[0].id")); - assertEquals("ge04::/64", ctx.getAttribute("testPath.input.parameters[0].value.[1].id")); - assertEquals("2", ctx.getAttribute("testPath.input.parameters[0].value._length")); - } - - @Test - public void testEscapedJsonStringToCtx() throws Exception { - String path = "src/test/resources/EscapedJson.json"; - String content = new String(Files.readAllBytes(Paths.get(path))); - - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("input", content); - - Map<String, String> parameters = new HashMap<String, String>(); - parameters.put("outputPath", "testPath"); - parameters.put("isEscaped", "true"); // set to true because the entire json content has been escaped - parameters.put("source", "input"); - - - SliPluginUtils.jsonStringToCtx(parameters, ctx); - assertEquals("false", ctx.getAttribute("testPath.widget.debug")); - assertEquals("center", ctx.getAttribute("testPath.widget.image.alignment")); - assertEquals("150", ctx.getAttribute("testPath.widget.image.hOffset")); - assertEquals("moon", ctx.getAttribute("testPath.widget.image.name")); - assertEquals("images/moon.png", ctx.getAttribute("testPath.widget.image.src")); - assertEquals("150", ctx.getAttribute("testPath.widget.image.vOffset")); - assertEquals("center", ctx.getAttribute("testPath.widget.text.alignment")); - assertEquals("Click Me", ctx.getAttribute("testPath.widget.text.data")); - assertEquals("350", ctx.getAttribute("testPath.widget.text.hOffset")); - assertEquals("text1", ctx.getAttribute("testPath.widget.text.name")); - assertEquals("21", ctx.getAttribute("testPath.widget.text.size")); - assertEquals("bold", ctx.getAttribute("testPath.widget.text.style")); - assertEquals("200", ctx.getAttribute("testPath.widget.text.vOffset")); - assertEquals("300", ctx.getAttribute("testPath.widget.window.height")); - assertEquals("main_window", ctx.getAttribute("testPath.widget.window.name")); - assertEquals("ONAP Widget", ctx.getAttribute("testPath.widget.window.title")); - assertEquals("200", ctx.getAttribute("testPath.widget.window.width")); - } - -} diff --git a/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_checkParametersTest.java b/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_checkParametersTest.java deleted file mode 100644 index f92271f7c..000000000 --- a/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_checkParametersTest.java +++ /dev/null @@ -1,117 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : CCSDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (C) 2018 IBM. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.slipluginutils; - -import java.util.HashMap; -import java.util.Map; -import org.junit.Test; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class SliPluginUtils_checkParametersTest { - - @Test - public void nullRequiredParameters() throws Exception { - Map<String, String> parametersMap = new HashMap<String, String>(); - String[] requiredParams = null; - Logger Log = LoggerFactory.getLogger(SliPluginUtils.class); - SliPluginUtils.checkParameters(parametersMap, requiredParams, Log); - } - - @Test(expected = SvcLogicException.class) - public void emptyParametersMap() throws Exception { - Map<String, String> parametersMap = new HashMap<String, String>(); - String[] requiredParams = new String[] { "param1", "param2", "param3" }; - Logger Log = LoggerFactory.getLogger(SliPluginUtils.class); - SliPluginUtils.checkParameters(parametersMap, requiredParams, Log); - } - - @Test(expected = SvcLogicException.class) - public void paramNotFound() throws Exception { - Map<String, String> parametersMap = new HashMap<String, String>(); - parametersMap.put("tst", "me"); - String[] requiredParams = new String[] { "param1", "parm2", "param3" }; - Logger Log = LoggerFactory.getLogger(SliPluginUtils.class); - SliPluginUtils.checkParameters(parametersMap, requiredParams, Log); - } - - @Test - public void testSunnyRequiredParameters() throws Exception { - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("param1", "hello"); - ctx.setAttribute("param2", "world"); - ctx.setAttribute("param3", "!"); - - Map<String, String> parameters = new HashMap<String, String>(); - parameters.put("param1", "dog"); - parameters.put("param2", "cat"); - parameters.put("param3", "fish"); - - SliPluginUtils.requiredParameters(parameters, ctx); - } - - @Test - public void testSunnyRequiredParametersWithPrefix() throws Exception { - String prefixValue = "my.unique.path."; - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute(prefixValue + "param1", "hello"); - ctx.setAttribute(prefixValue + "param2", "world"); - ctx.setAttribute(prefixValue + "param3", "!"); - - Map<String, String> parameters = new HashMap<String, String>(); - parameters.put("prefix", prefixValue); - parameters.put("param1", "dog"); - parameters.put("param2", "cat"); - parameters.put("param3", "fish"); - - SliPluginUtils.requiredParameters(parameters, ctx); - } - - @Test(expected = SvcLogicException.class) - public void testRainyMissingRequiredParameters() throws Exception { - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("param1", "hello"); - ctx.setAttribute("param3", "!"); - - Map<String, String> parameters = new HashMap<String, String>(); - parameters.put("param1", null); - parameters.put("param2", null); - parameters.put("param3", null); - - SliPluginUtils.requiredParameters(parameters, ctx); - } - - @Test(expected = SvcLogicException.class) - public void testEmptyRequiredParameters() throws Exception { - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("param1", "hello"); - ctx.setAttribute("param3", "!"); - - Map<String, String> parameters = new HashMap<String, String>(); - - SliPluginUtils.requiredParameters(parameters, ctx); - } -} diff --git a/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_ctxSortList.java b/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_ctxSortList.java deleted file mode 100644 index 3d4469bf2..000000000 --- a/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_ctxSortList.java +++ /dev/null @@ -1,149 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : CCSDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (C) 2018 IBM. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.slipluginutils; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import java.util.HashMap; -import java.util.Random; -import org.junit.Before; -import org.junit.Test; -import org.onap.ccsdk.sli.core.sli.SvcLogicConstants; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@SuppressWarnings("unused") -public class SliPluginUtils_ctxSortList { - private static final Logger LOG = LoggerFactory.getLogger(SliPluginUtils_ctxSortList.class); - SliPluginUtils utils = new SliPluginUtils(); - SvcLogicContext ctx; - HashMap<String, String> parameters; - Random rand = new Random(); - - @Before - public void setUp() throws Exception { - this.ctx = new SvcLogicContext(); - this.parameters = new HashMap<String, String>(); - } - - @Test - public final void list_of_containers() throws SvcLogicException { - this.parameters.put("list", "input.list"); - this.parameters.put("sort-fields", "sort-key"); - this.parameters.put("delimiter", ","); - - ctx.setAttribute("input.list_length", "10"); - for (int i = 0; i < 10; i++) { - this.ctx.setAttribute("input.list[" + i + "].sort-key", Integer.toString(rand.nextInt(10))); - this.ctx.setAttribute("input.list[" + i + "].value", Integer.toString(rand.nextInt(10))); - } - - LOG.trace("BEFORE SORT:"); - SliPluginUtils.logContextMemory(ctx, LOG, SliPluginUtils.LogLevel.TRACE); - - utils.ctxSortList(this.parameters, this.ctx); - - LOG.trace("AFTER SORT:"); - SliPluginUtils.logContextMemory(ctx, LOG, SliPluginUtils.LogLevel.TRACE); - - for (int i = 0; i < 9; i++) { - assertTrue(this.ctx.getAttribute("input.list[" + i + "].sort-key") - .compareTo(this.ctx.getAttribute("input.list[" + (i + 1) + "].sort-key")) < 1); - } - } - - @Test - public final void list_of_elements() throws SvcLogicException { - this.parameters.put("list", "input.list"); - this.parameters.put("delimiter", ","); - - this.ctx.setAttribute("input.list_length", "10"); - for (int i = 0; i < 10; i++) { - this.ctx.setAttribute("input.list[" + i + ']', Integer.toString(rand.nextInt(10))); - } - - LOG.trace("BEFORE SORT:"); - SliPluginUtils.logContextMemory(ctx, LOG, SliPluginUtils.LogLevel.TRACE); - - utils.ctxSortList(this.parameters, this.ctx); - - LOG.trace("AFTER SORT:"); - SliPluginUtils.logContextMemory(ctx, LOG, SliPluginUtils.LogLevel.TRACE); - - for (int i = 0; i < 9; i++) { - assertTrue(this.ctx.getAttribute("input.list[" + i + ']') - .compareTo(this.ctx.getAttribute("input.list[" + (i + 1) + ']')) < 1); - } - } - - @Test - public void testGenerateUUID() throws SvcLogicException { - SliPluginUtils utils = new SliPluginUtils(); - this.parameters.put("ctx-destination", "testDestination"); - utils.generateUUID(this.parameters, ctx); - } - - @Test - public void testSubstring() throws SvcLogicException { - SliPluginUtils utils = new SliPluginUtils(); - this.parameters.put("string", "testString"); - this.parameters.put("begin-index", "1"); - this.parameters.put("result", "testResult"); - this.parameters.put("end-index", "5"); - utils.substring(this.parameters, ctx); - assertEquals("estS", ctx.getAttribute("testResult")); - } - - @Test - public void testSubstringForNullEndIndex() throws SvcLogicException { - SliPluginUtils utils = new SliPluginUtils(); - this.parameters.put("string", "testString"); - this.parameters.put("begin-index", "1"); - this.parameters.put("result", "testResult"); - utils.substring(this.parameters, ctx); - assertEquals("estString", ctx.getAttribute("testResult")); - } - - @Test - public void testCtxBulkCopy() { - ctx.setAttribute("Mykey1", "MyValue1"); - ctx.setAttribute("Mykey2", "MyValue2"); - SliPluginUtils.ctxBulkCopy(ctx, "Mykey", "test."); - assertEquals("MyValue1", ctx.getAttribute("test.1")); - assertEquals("MyValue2", ctx.getAttribute("test.2")); - } - - @Test - public void testSetPropertiesForList() { - parameters.put("prefixKey", "testPrefixKey"); - parameters.put("valuePrefixKey", "testPrefixValue"); - parameters.put("keyName", "testKey"); - parameters.put("keyValue", "testValue"); - - assertEquals(SvcLogicConstants.SUCCESS, SliPluginUtils.setPropertiesForList(parameters, ctx)); - - } -} diff --git a/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_ctxSortListTest.java b/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_ctxSortListTest.java deleted file mode 100644 index bf7cc1399..000000000 --- a/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_ctxSortListTest.java +++ /dev/null @@ -1,97 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : CCSDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.slipluginutils; - -import static org.junit.Assert.assertTrue; - -import java.util.HashMap; -import java.util.Random; - -import org.junit.Before; -import org.junit.Test; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@SuppressWarnings("unused") -public class SliPluginUtils_ctxSortListTest { - private static final Logger LOG = LoggerFactory.getLogger(SliPluginUtils_ctxSortListTest.class); - SliPluginUtils utils = new SliPluginUtils(); - SvcLogicContext ctx; - HashMap<String, String> parameters; - Random rand = new Random(); - - @Before - public void setUp() throws Exception { - this.ctx = new SvcLogicContext(); - this.parameters = new HashMap<String, String>(); - } - - @Test - public final void list_of_containers() throws SvcLogicException { - this.parameters.put("list", "input.list"); - this.parameters.put("sort-fields", "sort-key"); - this.parameters.put("delimiter", ","); - - ctx.setAttribute("input.list_length", "10"); - for (int i = 0; i < 10; i++) { - this.ctx.setAttribute("input.list[" + i + "].sort-key", Integer.toString(rand.nextInt(10))); - this.ctx.setAttribute("input.list[" + i + "].value", Integer.toString(rand.nextInt(10))); - } - - LOG.trace("BEFORE SORT:"); - SliPluginUtils.logContextMemory(ctx, LOG, SliPluginUtils.LogLevel.TRACE); - - utils.ctxSortList(this.parameters, this.ctx); - - LOG.trace("AFTER SORT:"); - SliPluginUtils.logContextMemory(ctx, LOG, SliPluginUtils.LogLevel.TRACE); - - for (int i = 0; i < 9; i++) { - assertTrue(this.ctx.getAttribute("input.list[" + i + "].sort-key").compareTo(this.ctx.getAttribute("input.list[" + (i + 1) + "].sort-key")) < 1); - } - } - - @Test - public final void list_of_elements() throws SvcLogicException { - this.parameters.put("list", "input.list"); - this.parameters.put("delimiter", ","); - - this.ctx.setAttribute("input.list_length", "10"); - for (int i = 0; i < 10; i++) { - this.ctx.setAttribute("input.list[" + i + ']', Integer.toString(rand.nextInt(10))); - } - - LOG.trace("BEFORE SORT:"); - SliPluginUtils.logContextMemory(ctx, LOG, SliPluginUtils.LogLevel.TRACE); - - utils.ctxSortList(this.parameters, this.ctx); - - LOG.trace("AFTER SORT:"); - SliPluginUtils.logContextMemory(ctx, LOG, SliPluginUtils.LogLevel.TRACE); - - for (int i = 0; i < 9; i++) { - assertTrue(this.ctx.getAttribute("input.list[" + i + ']').compareTo(this.ctx.getAttribute("input.list[" + (i + 1) + ']')) < 1); - } - } -} diff --git a/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliStringUtilsTest.java b/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliStringUtilsTest.java deleted file mode 100644 index da7046f43..000000000 --- a/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliStringUtilsTest.java +++ /dev/null @@ -1,398 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : CCSDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (C) 2018 IBM. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.slipluginutils; - -import static org.hamcrest.Matchers.equalTo; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import java.util.HashMap; -import java.util.Map; -import org.junit.Before; -import org.junit.Test; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; - -/** - * @author km991u - * - */ -public class SliStringUtilsTest { - private SvcLogicContext ctx; - private HashMap<String, String> param; - private SliStringUtils stringUtils = new SliStringUtils(); - - /** - * @throws java.lang.Exception - */ - @Before - public void setUp() throws Exception { - this.ctx = new SvcLogicContext(); - param = new HashMap<String, String>(); - } - - /** - * @throws SvcLogicException - * @see SliStringUtils#split(Map, SvcLogicContext) - */ - @Test - public final void testSplit() throws SvcLogicException { - param.put("original_string", "one ## two ## three"); - param.put("regex", " ## "); - param.put("ctx_memory_result_key", "result"); - - stringUtils.split(param, ctx); - - assertThat(ctx.getAttribute("result[0]"), equalTo("one")); - assertThat(ctx.getAttribute("result[1]"), equalTo("two")); - assertThat(ctx.getAttribute("result[2]"), equalTo("three")); - assertThat(ctx.getAttribute("result_length"), equalTo("3")); - } - - /** - * @throws SvcLogicException - * @see SliStringUtils#split(Map, SvcLogicContext) - */ - @Test - public final void testSplit_limit() throws SvcLogicException { - param.put("original_string", "one ## two ## three"); - param.put("regex", " ## "); - param.put("limit", "2"); - param.put("ctx_memory_result_key", "result"); - - stringUtils.split(param, ctx); - - assertThat(ctx.getAttribute("result[0]"), equalTo("one")); - assertThat(ctx.getAttribute("result[1]"), equalTo("two ## three")); - assertThat(ctx.getAttribute("result_length"), equalTo("2")); - } - - @Test - public final void testSubString() throws SvcLogicException { - param.put("string", "splitatgivenindex"); - param.put("begin-index", "0"); - param.put("end-index", "5"); - param.put("result", "result"); - - stringUtils.substring(param, ctx); - - assertEquals("split", ctx.getAttribute("result")); - } - - @Test - public final void testQuotedOrNull() throws SvcLogicException { - // param.put("nullString",null); - assertEquals("NULL", SliStringUtils.quotedOrNULL(null)); - } - - @Test - public void equalsIgnoreCaseTrue() throws SvcLogicException { - String sourceString = "HeLlOwORLD"; - String targetSTring = "HELLOWORLD"; - param.put("source", sourceString); - param.put("target", targetSTring); - assertEquals("true", SliStringUtils.equalsIgnoreCase(param, ctx)); - } - - @Test - public void equalsIgnoreCaseFalse() throws SvcLogicException { - String sourceString = "HeLlOwORLD"; - String targetSTring = "goodbyeWORLD"; - param.put("source", sourceString); - param.put("target", targetSTring); - assertEquals("false", SliStringUtils.equalsIgnoreCase(param, ctx)); - } - - @Test - public void toUpper() throws SvcLogicException { - String sourceString = "HeLlOwORLD"; - param.put("source", sourceString); - String path = "my.unique.path."; - param.put("outputPath", path); - SliStringUtils.toUpper(param, ctx); - assertEquals(sourceString.toUpperCase(), ctx.getAttribute(path)); - } - - @Test - public void toLower() throws SvcLogicException { - String sourceString = "HeLlOwORLD"; - param.put("source", sourceString); - String path = "my.unique.path."; - param.put("outputPath", path); - SliStringUtils.toLower(param, ctx); - assertEquals(sourceString.toLowerCase(), ctx.getAttribute(path)); - } - - @Test - public void containsTrue() throws SvcLogicException { - String sourceString = "Pizza"; - String targetSTring = "izza"; - param.put("source", sourceString); - param.put("target", targetSTring); - assertEquals("true", SliStringUtils.contains(param, ctx)); - } - - @Test - public void containsFalse() throws SvcLogicException { - String sourceString = "Pizza"; - String targetSTring = "muffin"; - param.put("source", sourceString); - param.put("target", targetSTring); - assertEquals("false", SliStringUtils.contains(param, ctx)); - } - - @Test - public void endsWithTrue() throws SvcLogicException { - String sourceString = "Pizza"; - String targetSTring = "za"; - param.put("source", sourceString); - param.put("target", targetSTring); - assertEquals("true", SliStringUtils.endsWith(param, ctx)); - } - - @Test - public void endsWithFalse() throws SvcLogicException { - String sourceString = "Pizza"; - String targetSTring = "muffin"; - param.put("source", sourceString); - param.put("target", targetSTring); - assertEquals("false", SliStringUtils.endsWith(param, ctx)); - } - - @Test - public void trim() throws SvcLogicException { - String sourceString = " H E L L O W O R L D"; - String outputPath = "muffin"; - param.put("source", sourceString); - param.put("outputPath", outputPath); - SliStringUtils.trim(param, ctx); - assertEquals(sourceString.trim(), ctx.getAttribute(outputPath)); - } - - @Test - public void getLength() throws SvcLogicException { - String sourceString = "SomeRandomString"; - String outputPath = "muffin"; - param.put("source", sourceString); - param.put("outputPath", outputPath); - SliStringUtils.getLength(param, ctx); - assertEquals(String.valueOf(sourceString.length()), ctx.getAttribute(outputPath)); - } - - @Test - public void startsWithFalse() throws SvcLogicException { - String sourceString = "Java"; - String targetSTring = "DG"; - param.put("source", sourceString); - param.put("target", targetSTring); - assertEquals("false", SliStringUtils.startsWith(param, ctx)); - } - - @Test - public void startsWithTrue() throws SvcLogicException { - String sourceString = "Java"; - String targetSTring = "Ja"; - param.put("source", sourceString); - param.put("target", targetSTring); - assertEquals("true", SliStringUtils.startsWith(param, ctx)); - } - - @Test - public void replace() throws SvcLogicException { - String sourceString = "cat Hello World cat"; - String old = "cat"; - String neww = "dog"; - String outputPath = "out"; - - param.put("source", sourceString); - param.put("target", old); - param.put("replacement", neww); - param.put("outputPath", outputPath); - SliStringUtils.replace(param, ctx); - assertEquals(sourceString.replace(old, neww), ctx.getAttribute(outputPath)); - } - - @Test - public void replaceAll() throws SvcLogicException { - String source = "cat Hello World cat"; - String target = "\\s"; - String replacement = ""; - String outputPath = "out"; - - param.put("source", source); - param.put("target", target); - param.put("replacement", replacement); - param.put("outputPath", outputPath); - SliStringUtils.replaceAll(param, ctx); - assertEquals(source.replaceAll(target, replacement), ctx.getAttribute(outputPath)); - } - - @Test - public void concat() throws SvcLogicException { - String sourceString = "cat"; - String targetString = "dog"; - String outputPath = "out"; - - param.put("source", sourceString); - param.put("target", targetString); - param.put("outputPath", outputPath); - SliStringUtils.concat(param, ctx); - assertEquals(sourceString + targetString, ctx.getAttribute(outputPath)); - } - - @Test - public void urlEncode() throws SvcLogicException { - String sourceString = "102/GE100/SNJSCAMCJP8/SNJSCAMCJT4"; - String outputPath = "out"; - - param.put("source", sourceString); - param.put("outputPath", outputPath); - SliStringUtils.urlEncode(param, ctx); - assertEquals("102%2FGE100%2FSNJSCAMCJP8%2FSNJSCAMCJT4", ctx.getAttribute(outputPath)); - } - - @Test - public void urlDecode() throws SvcLogicException { - String sourceString = "102%2FGE100%2FSNJSCAMCJP8%2FSNJSCAMCJT4"; - String outputPath = "out"; - - param.put("source", sourceString); - param.put("outputPath", outputPath); - SliStringUtils.urlDecode(param, ctx); - assertEquals("102/GE100/SNJSCAMCJP8/SNJSCAMCJT4", ctx.getAttribute(outputPath)); - } - - @Test - public void testXmlEscapeText() { - param.put("source", "102/GE100/SNJSCAMCJP8/SNJSCAMCJT4"); - param.put("target", "target"); - SliStringUtils.xmlEscapeText(param, ctx); - assertEquals("102/GE100/SNJSCAMCJP8/SNJSCAMCJT4", ctx.getAttribute("target")); - } - - @Test(expected = Exception.class) - public void testSplitForEmptyParams() throws Exception { - SliStringUtils utils = new SliStringUtils(); - ctx = new SvcLogicContext(); - param = new HashMap<>(); - utils.split(param, ctx); - } - - @Test(expected = Exception.class) - public void testSubstringForEmptyParams() throws Exception { - SliStringUtils utils = new SliStringUtils(); - ctx = new SvcLogicContext(); - param = new HashMap<>(); - utils.substring(param, ctx); - } - - @Test - public void testUnescapeJsonString() throws Exception { - String source = "{\\\"image_name\\\":\\\"Ubuntu 14.04\\\",\\\"service-instance-id\\\":\\\"1\\\",\\\"vnf-model-customization-uuid\\\":\\\"2f\\\",\\\"vnf-id\\\":\\\"3b\\\"}"; - param.put(SliStringUtils.INPUT_PARAM_SOURCE, source); - String outputPath = "unescaped"; - param.put(SliStringUtils.INPUT_PARAM_TARGET, outputPath); - SliStringUtils.unescapeJsonString(param, ctx); - assertEquals("{\"image_name\":\"Ubuntu 14.04\",\"service-instance-id\":\"1\",\"vnf-model-customization-uuid\":\"2f\",\"vnf-id\":\"3b\"}", ctx.getAttribute(outputPath)); - } - - @Test - public void testEscapeJsonString() throws Exception { - String source = "{\"image_name\":\"Ubuntu 14.04\",\"service-instance-id\":\"1\",\"vnf-model-customization-uuid\":\"2f\",\"vnf-id\":\"3b\"}"; - param.put(SliStringUtils.INPUT_PARAM_SOURCE, source); - String outputPath = "unescaped"; - param.put(SliStringUtils.INPUT_PARAM_TARGET, outputPath); - SliStringUtils.escapeJsonString(param, ctx); - assertEquals("{\\\"image_name\\\":\\\"Ubuntu 14.04\\\",\\\"service-instance-id\\\":\\\"1\\\",\\\"vnf-model-customization-uuid\\\":\\\"2f\\\",\\\"vnf-id\\\":\\\"3b\\\"}", ctx.getAttribute(outputPath)); - } - - @Test - public void isEmpty() throws Exception { - String result = SliStringUtils.isEmpty(param, ctx); - param.put(SliStringUtils.INPUT_PARAM_KEY, "key_does_not_exist"); - assertEquals(SliStringUtils.TRUE_CONSTANT, result); - - ctx.setAttribute("a", null); - param.put(SliStringUtils.INPUT_PARAM_KEY, "a"); - result = SliStringUtils.isEmpty(param, ctx); - assertEquals(SliStringUtils.TRUE_CONSTANT, result); - - ctx.setAttribute("a", ""); - result = SliStringUtils.isEmpty(param, ctx); - assertEquals(SliStringUtils.TRUE_CONSTANT, result); - - ctx.setAttribute("a", " "); - result = SliStringUtils.isEmpty(param, ctx); - assertEquals(SliStringUtils.FALSE_CONSTANT, result); - } - - @Test - public void isBlank() throws Exception { - String result = SliStringUtils.isBlank(param, ctx); - param.put(SliStringUtils.INPUT_PARAM_KEY, "key_does_not_exist"); - assertEquals(SliStringUtils.TRUE_CONSTANT, result); - - ctx.setAttribute("a", null); - param.put(SliStringUtils.INPUT_PARAM_KEY, "a"); - result = SliStringUtils.isBlank(param, ctx); - assertEquals(SliStringUtils.TRUE_CONSTANT, result); - - ctx.setAttribute("a", ""); - result = SliStringUtils.isBlank(param, ctx); - assertEquals(SliStringUtils.TRUE_CONSTANT, result); - - ctx.setAttribute("a", " "); - result = SliStringUtils.isBlank(param, ctx); - assertEquals(SliStringUtils.TRUE_CONSTANT, result); - } - - @Test - public void isNull() throws Exception { - String result = SliStringUtils.isNull(param, ctx); - param.put(SliStringUtils.INPUT_PARAM_KEY, "key_does_not_exist"); - assertEquals(SliStringUtils.TRUE_CONSTANT, result); - - ctx.setAttribute("a", null); - param.put(SliStringUtils.INPUT_PARAM_KEY, "a"); - result = SliStringUtils.isNull(param, ctx); - assertEquals(SliStringUtils.TRUE_CONSTANT, result); - - ctx.setAttribute("a", ""); - result = SliStringUtils.isNull(param, ctx); - assertEquals(SliStringUtils.FALSE_CONSTANT, result); - - ctx.setAttribute("a", " "); - result = SliStringUtils.isNull(param, ctx); - assertEquals(SliStringUtils.FALSE_CONSTANT, result); - } - - @Test - public void testBase64DecodingAlgo() throws Exception{ - String input = "MDUxMDAw"; - String decodeVal = "decodedPath"; - param.put("encodedValue",input); - param.put("decodedValue", decodeVal); - SliStringUtils.base64DecodingAlgo(param,ctx); - assertEquals("051000",ctx.getAttribute(decodeVal)); - } -} diff --git a/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SvcLogicContextListTest.java b/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SvcLogicContextListTest.java deleted file mode 100644 index f916bbfca..000000000 --- a/sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SvcLogicContextListTest.java +++ /dev/null @@ -1,307 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : CCSDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.slipluginutils; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import java.util.HashMap; - -import org.junit.Before; -import org.junit.Test; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; - -public class SvcLogicContextListTest { - //private static final Logger LOG = LoggerFactory.getLogger(SvcLogicContextTest.class); - private SvcLogicContext ctx; - - @Before - public void setUp() throws Exception { - this.ctx = new SvcLogicContext(); - } - - // TODO: javadoc - @Test - public final void testSvcLogicContextList_SingleValueList() { - ctx.setAttribute("list[0]", "0"); - ctx.setAttribute("list[1]", "1"); - ctx.setAttribute("list[2]", "2"); - ctx.setAttribute("list[3]", "3"); - ctx.setAttribute("list[4]", "4"); - ctx.setAttribute("list_length", "5"); - - SvcLogicContextList list = new SvcLogicContextList( ctx, "list" ); - - // Check that size of list is 5 - assertEquals(5, list.size()); - - // Check that each HashMap has it's list value in the empty string key - // and has no other values - assertEquals(1, list.get(0).size()); - assertEquals("0", list.get(0).get("")); - assertEquals(1, list.get(1).size()); - assertEquals("1", list.get(1).get("")); - assertEquals(1, list.get(2).size()); - assertEquals("2", list.get(2).get("")); - assertEquals(1, list.get(3).size()); - assertEquals("3", list.get(3).get("")); - assertEquals(1, list.get(4).size()); - assertEquals("4", list.get(4).get("")); - } - - // TODO: javadoc - @Test - public final void testSvcLogicContextList_ObjectList() { - ctx.setAttribute("list[0].ipv4", "1.1.1.0"); - ctx.setAttribute("list[0].ipv6", "2001::0"); - ctx.setAttribute("list[1].ipv4", "1.1.1.1"); - ctx.setAttribute("list[1].ipv6", "2001::1"); - ctx.setAttribute("list[2].ipv4", "1.1.1.2"); - ctx.setAttribute("list[2].ipv6", "2001::2"); - ctx.setAttribute("list[3].ipv4", "1.1.1.3"); - ctx.setAttribute("list[3].ipv6", "2001::3"); - ctx.setAttribute("list[4].ipv4", "1.1.1.4"); - ctx.setAttribute("list[4].ipv6", "2001::4"); - ctx.setAttribute("list_length", "5"); - - SvcLogicContextList list = new SvcLogicContextList( ctx, "list" ); - - // Check that size of list is 5 - assertEquals(5, list.size()); - - assertEquals(2, list.get(0).size()); - assertEquals("1.1.1.0", list.get(0).get("ipv4")); - assertEquals("2001::0", list.get(0).get("ipv6")); - assertEquals(2, list.get(1).size()); - assertEquals("1.1.1.1", list.get(1).get("ipv4")); - assertEquals("2001::1", list.get(1).get("ipv6")); - assertEquals(2, list.get(2).size()); - assertEquals("1.1.1.2", list.get(2).get("ipv4")); - assertEquals("2001::2", list.get(2).get("ipv6")); - assertEquals(2, list.get(3).size()); - assertEquals("1.1.1.3", list.get(3).get("ipv4")); - assertEquals("2001::3", list.get(3).get("ipv6")); - assertEquals(2, list.get(4).size()); - assertEquals("1.1.1.4", list.get(4).get("ipv4")); - assertEquals("2001::4", list.get(4).get("ipv6")); - } - - // TODO: javadoc - @Test - public final void testExtract() { - ctx.setAttribute("list[0]", "0"); - ctx.setAttribute("list[1]", "1"); - ctx.setAttribute("list[2]", "2"); - ctx.setAttribute("list[3]", "3"); - ctx.setAttribute("list[4]", "4"); - ctx.setAttribute("list_length", "5"); - ctx.setAttribute("Other", "other"); - - SvcLogicContextList list = SvcLogicContextList.extract(ctx, "list"); - - // Check that size of list is 5 - assertEquals(5, list.size()); - - // Check that all list values exist in list object - assertEquals(1, list.get(0).size()); - assertEquals("0", list.get(0).get("")); - assertEquals(1, list.get(1).size()); - assertEquals("1", list.get(1).get("")); - assertEquals(1, list.get(2).size()); - assertEquals("2", list.get(2).get("")); - assertEquals(1, list.get(3).size()); - assertEquals("3", list.get(3).get("")); - assertEquals(1, list.get(4).size()); - assertEquals("4", list.get(4).get("")); - - // Check that all list values no longer exist in ctx - assertNull(ctx.getAttribute("list[0]")); - assertNull(ctx.getAttribute("list[1]")); - assertNull(ctx.getAttribute("list[2]")); - assertNull(ctx.getAttribute("list[3]")); - assertNull(ctx.getAttribute("list[4]")); - assertNull(ctx.getAttribute("list_length")); - - // Check that non-list values still exist in ctx - assertEquals("other", ctx.getAttribute("Other")); - } - - // TODO: javadoc - @Test - public final void testRemove_int() { - ctx.setAttribute("list[0]", "0"); - ctx.setAttribute("list[1]", "1"); - ctx.setAttribute("list[2]", "2"); - ctx.setAttribute("list[3]", "3"); - ctx.setAttribute("list[4]", "4"); - ctx.setAttribute("list_length", "5"); - - SvcLogicContextList list = new SvcLogicContextList( ctx, "list" ); - list.remove(2); - - // Check that size of list is 4 (1 less than original) - assertEquals(4, list.size()); - - // Check that value was remove from list - assertEquals(1, list.get(0).size()); - assertEquals("0", list.get(0).get("")); - assertEquals(1, list.get(1).size()); - assertEquals("1", list.get(1).get("")); - assertEquals(1, list.get(2).size()); - assertEquals("3", list.get(2).get("")); - assertEquals(1, list.get(3).size()); - assertEquals("4", list.get(3).get("")); - } - - // TODO: javadoc - @Test - public final void testRemove_StringString() { - ctx.setAttribute("list[0].ipv4", "1.1.1.0"); - ctx.setAttribute("list[0].ipv6", "2001::0"); - ctx.setAttribute("list[1].ipv4", "1.1.1.1"); - ctx.setAttribute("list[1].ipv6", "2001::1"); - ctx.setAttribute("list[2].ipv4", "1.1.1.2"); - ctx.setAttribute("list[2].ipv6", "2001::2"); - ctx.setAttribute("list[3].ipv4", "1.1.1.3"); - ctx.setAttribute("list[3].ipv6", "2001::3"); - ctx.setAttribute("list[4].ipv4", "1.1.1.4"); - ctx.setAttribute("list[4].ipv6", "2001::4"); - ctx.setAttribute("list[5].ipv4", "1.1.1.2"); - ctx.setAttribute("list[5].ipv6", "2001::2"); - ctx.setAttribute("list_length", "6"); - - SvcLogicContextList list = new SvcLogicContextList( ctx, "list" ); - list.remove("ipv4", "1.1.1.2"); - - // Check that size of list is 4 (2 less than original) - assertEquals(4, list.size()); - - // Check that all elements with values ending in 2 were removed - assertEquals("1.1.1.0", list.get(0).get("ipv4")); - assertEquals("2001::0", list.get(0).get("ipv6")); - assertEquals("1.1.1.1", list.get(1).get("ipv4")); - assertEquals("2001::1", list.get(1).get("ipv6")); - assertEquals("1.1.1.3", list.get(2).get("ipv4")); - assertEquals("2001::3", list.get(2).get("ipv6")); - assertEquals("1.1.1.4", list.get(3).get("ipv4")); - assertEquals("2001::4", list.get(3).get("ipv6")); - } - - // TODO: javadoc - @Test - public final void testRemove_StringString_ValueList() { - ctx.setAttribute("list[0]", "5"); - ctx.setAttribute("list[1]", "6"); - ctx.setAttribute("list[2]", "7"); - ctx.setAttribute("list[3]", "8"); - ctx.setAttribute("list[4]", "9"); - ctx.setAttribute("list_length", "5"); - - SvcLogicContextList list = new SvcLogicContextList( ctx, "list" ); - list.remove("", "6"); - - // Check that size of list is 4 (1 less than original) - assertEquals(4, list.size()); - - // Check that value was remove from list - assertEquals(1, list.get(0).size()); - assertEquals("5", list.get(0).get("")); - assertEquals(1, list.get(1).size()); - assertEquals("7", list.get(1).get("")); - assertEquals(1, list.get(2).size()); - assertEquals("8", list.get(2).get("")); - assertEquals(1, list.get(3).size()); - assertEquals("9", list.get(3).get("")); - } - - // TODO: javadoc - @Test - public final void testRemove_Map() { - ctx.setAttribute("list[0].ipv4", "1.1.1.0"); - ctx.setAttribute("list[0].ipv6", "2001::0"); - ctx.setAttribute("list[1].ipv4", "1.1.1.1"); - ctx.setAttribute("list[1].ipv6", "2001::1"); - ctx.setAttribute("list[2].ipv4", "1.1.1.2"); - ctx.setAttribute("list[2].ipv6", "2001::2"); - ctx.setAttribute("list[3].ipv4", "1.1.1.3"); - ctx.setAttribute("list[3].ipv6", "2001::3"); - ctx.setAttribute("list[4].ipv4", "1.1.1.4"); - ctx.setAttribute("list[4].ipv6", "2001::4"); - ctx.setAttribute("list[5].ipv4", "1.1.1.2"); - ctx.setAttribute("list[5].ipv6", "2001::2"); - ctx.setAttribute("list_length", "6"); - - HashMap<String,String> remove_key = new HashMap<String,String>(); - remove_key.put("ipv4", "1.1.1.2"); - remove_key.put("ipv6", "2001::2"); - - SvcLogicContextList list = new SvcLogicContextList( ctx, "list" ); - list.remove(remove_key); - - // Check that size of list is 4 (2 less than original) - assertEquals(4, list.size()); - - // Check that all elements with values ending in 2 were removed - assertEquals("1.1.1.0", list.get(0).get("ipv4")); - assertEquals("2001::0", list.get(0).get("ipv6")); - assertEquals("1.1.1.1", list.get(1).get("ipv4")); - assertEquals("2001::1", list.get(1).get("ipv6")); - assertEquals("1.1.1.3", list.get(2).get("ipv4")); - assertEquals("2001::3", list.get(2).get("ipv6")); - assertEquals("1.1.1.4", list.get(3).get("ipv4")); - assertEquals("2001::4", list.get(3).get("ipv6")); - } - - // TODO: javadoc - @Test - public final void testWriteToContext() { - ctx.setAttribute("list[0]", "0"); - ctx.setAttribute("list[1]", "1"); - ctx.setAttribute("list[2]", "2"); - ctx.setAttribute("list[3]", "3"); - ctx.setAttribute("list[4]", "4"); - ctx.setAttribute("list_length", "5"); - ctx.setAttribute("Other", "other"); - - SvcLogicContextList list = new SvcLogicContextList( ctx, "list" ); - - // Erase context memory - ctx = new SvcLogicContext(); - - // Write list back into context memory - list.writeToContext(ctx); - - // Check that size of list is 5 - assertEquals(5, list.size()); - - // Check that all list values exist in list object - assertEquals("0", ctx.getAttribute("list[0]")); - assertEquals("1", ctx.getAttribute("list[1]")); - assertEquals("2", ctx.getAttribute("list[2]")); - assertEquals("3", ctx.getAttribute("list[3]")); - assertEquals("4", ctx.getAttribute("list[4]")); - assertEquals("5", ctx.getAttribute("list_length")); - - // Check that old list values aren't in new list - assertNull(ctx.getAttribute("Other")); - } -} diff --git a/sliPluginUtils/provider/src/test/resources/2dArray.json b/sliPluginUtils/provider/src/test/resources/2dArray.json deleted file mode 100644 index 2a94b46f4..000000000 --- a/sliPluginUtils/provider/src/test/resources/2dArray.json +++ /dev/null @@ -1,4 +0,0 @@ -[
- ["apple", "orange", "banana", null],
- ["squash", "broccoli", "cauliflower"]
-]
\ No newline at end of file diff --git a/sliPluginUtils/provider/src/test/resources/3dArray.json b/sliPluginUtils/provider/src/test/resources/3dArray.json deleted file mode 100644 index 149955596..000000000 --- a/sliPluginUtils/provider/src/test/resources/3dArray.json +++ /dev/null @@ -1,4 +0,0 @@ -[
- [["a","b","c"], ["d","e","f"]],
- [["x","y","z"]]
-]
\ No newline at end of file diff --git a/sliPluginUtils/provider/src/test/resources/ArrayMenu.json b/sliPluginUtils/provider/src/test/resources/ArrayMenu.json deleted file mode 100644 index 26a24f292..000000000 --- a/sliPluginUtils/provider/src/test/resources/ArrayMenu.json +++ /dev/null @@ -1,41 +0,0 @@ -[{
- "id": "1",
- "type": "pizza",
- "name": "plain",
- "calories": 1000,
- "vegetarian": true
- }, {
- "id": "2",
- "type": "pizza",
- "name": "Tuesday Special",
- "calories": null,
- "vegetarian": false,
- "topping":
- [{
- "id": "1",
- "name": "onion"
- }, {
- "id": "2",
- "name": "pepperoni"
- }
- ]
- }, {
- "id": "3",
- "type": "pizza",
- "name": "House Special",
- "calories": 1500,
- "vegetarian": true,
- "topping":
- [{
- "id": "3",
- "name": "basil"
- }, {
- "id": "4",
- "name": "fresh mozzarella"
- }, {
- "id": "5",
- "name": "tomato"
- }
- ]
- }
-]
diff --git a/sliPluginUtils/provider/src/test/resources/EmbeddedEscapedJson.json b/sliPluginUtils/provider/src/test/resources/EmbeddedEscapedJson.json deleted file mode 100644 index dbb6d8d3a..000000000 --- a/sliPluginUtils/provider/src/test/resources/EmbeddedEscapedJson.json +++ /dev/null @@ -1,16 +0,0 @@ -{
- "input": {
- "parameters":
- [{
- "name": "escapedJsonObject",
- "value": "[{\"id\":\"0.2.0.0\/16\"},{\"id\":\"ge04::\/64\"}]"
- }, {
- "name": "password",
- "value": "Hello\/World"
- }, {
- "name": "resourceName",
- "value": "The\t\"Best\"\tName"
- }
- ]
- }
-}
\ No newline at end of file diff --git a/sliPluginUtils/provider/src/test/resources/EscapedJson.json b/sliPluginUtils/provider/src/test/resources/EscapedJson.json deleted file mode 100644 index a7719e819..000000000 --- a/sliPluginUtils/provider/src/test/resources/EscapedJson.json +++ /dev/null @@ -1 +0,0 @@ -{\"widget\":{\"debug\":false,\"window\":{\"title\":\"ONAP Widget\",\"name\":\"main_window\",\"width\":200,\"height\":300},\"image\":{\"src\":\"images\/moon.png\",\"name\":\"moon\",\"hOffset\":150,\"vOffset\":150,\"alignment\":\"center\"},\"text\":{\"data\":\"Click Me\",\"size\":21,\"style\":\"bold\",\"name\":\"text1\",\"hOffset\":350,\"vOffset\":200,\"alignment\":\"center\"}}}
\ No newline at end of file diff --git a/sliPluginUtils/provider/src/test/resources/JsonObject.json b/sliPluginUtils/provider/src/test/resources/JsonObject.json deleted file mode 100644 index 0578368f8..000000000 --- a/sliPluginUtils/provider/src/test/resources/JsonObject.json +++ /dev/null @@ -1,5 +0,0 @@ -{
- "aaa": "123",
- "bbb": "xyz",
- "c.d": "abc"
-}
\ No newline at end of file diff --git a/sliPluginUtils/provider/src/test/resources/ObjectMenu.json b/sliPluginUtils/provider/src/test/resources/ObjectMenu.json deleted file mode 100644 index 56f842d48..000000000 --- a/sliPluginUtils/provider/src/test/resources/ObjectMenu.json +++ /dev/null @@ -1,43 +0,0 @@ -{
- "menu": [{
- "id": "1",
- "type": "pizza",
- "name": "plain",
- "calories": 1000,
- "vegetarian": true
- }, {
- "id": "2",
- "type": "pizza",
- "name": "Tuesday Special",
- "calories": 2000,
- "vegetarian": false,
- "topping":
- [{
- "id": "1",
- "name": "onion"
- }, {
- "id": "2",
- "name": "pepperoni"
- }
- ]
- }, {
- "id": "3",
- "type": "pizza",
- "name": "House Special",
- "calories": 1500,
- "vegetarian": true,
- "topping":
- [{
- "id": "3",
- "name": "basil"
- }, {
- "id": "4",
- "name": "fresh mozzarella"
- }, {
- "id": "5",
- "name": "tomato"
- }
- ]
- }
- ]
-}
diff --git a/sliPluginUtils/provider/src/test/resources/Widget.json b/sliPluginUtils/provider/src/test/resources/Widget.json deleted file mode 100644 index 6b90907ce..000000000 --- a/sliPluginUtils/provider/src/test/resources/Widget.json +++ /dev/null @@ -1,27 +0,0 @@ -{
- "widget": {
- "debug": false,
- "window": {
- "title": "ONAP Widget",
- "name": "main_window",
- "width": 200,
- "height": 300
- },
- "image": {
- "src": "images/moon.png",
- "name": "moon",
- "hOffset": 150,
- "vOffset": 150,
- "alignment": "center"
- },
- "text": {
- "data": "Click Me",
- "size": 21,
- "style": "bold",
- "name": "text1",
- "hOffset": 350,
- "vOffset": null,
- "alignment": "center"
- }
- }
-}
\ No newline at end of file |