package com.sequenceiq.it; import java.util.HashMap; import java.util.Map; public class IntegrationTestContext { public static final String IDENTITY_URL = "IDENTITY_URL"; public static final String AUTH_USER = "AUTH_USER"; public static final String AUTH_PASSWORD = "AUTH_PASSWORD"; private Map<String, Object> contextParameters = new HashMap<>(); private Map<String, Object> cleanUpParameters = new HashMap<>(); public IntegrationTestContext() { } public IntegrationTestContext(Map<String, Object> contextParameters) { this.contextParameters = contextParameters; } public String getContextParam(String paramKey) { return getContextParam(paramKey, String.class); } public <T> T getContextParam(String paramKey, Class<T> clazz) { Object val = contextParameters.get(paramKey); if (val == null || clazz.isInstance(val)) { return clazz.cast(val); } else { throw new IllegalArgumentException("Param value is not type of " + clazz); } } public void putContextParam(String paramKey, Object paramValue) { putContextParam(paramKey, paramValue, false); } public void putContextParam(String paramKey, Object paramValue, boolean cleanUp) { contextParameters.put(paramKey, paramValue); if (cleanUp) { putCleanUpParam(paramKey, paramValue); } } public void putCleanUpParam(String paramKey, Object paramValue) { cleanUpParameters.put(paramKey, paramValue); } public String getCleanUpParameter(String key) { return getCleanUpParameter(key, String.class); } public <T> T getCleanUpParameter(String key, Class<T> clazz) { Object val = cleanUpParameters.get(key); if (val == null || clazz.isInstance(val)) { return clazz.cast(val); } else { throw new IllegalArgumentException("Param value is not type of " + clazz); } } }