How to use enumerateRegisteredConfigValues method of org.testingisdocumenting.webtau.cfg.WebTauConfig class

Best Webtau code snippet using org.testingisdocumenting.webtau.cfg.WebTauConfig.enumerateRegisteredConfigValues

Source:WebTauConfig.java Github

copy

Full Screen

...78 private final ConfigValue reportPath = declare("reportPath", "report file path", () -> getWorkingDir().resolve("webtau.report.html"));79 private final ConfigValue failedReportPath = declare("failedReportPath", "failed report file path", () -> null);80 private final ConfigValue reportName = declare("reportName", "report name to show", () -> "WebTau report");81 private final ConfigValue reportNameUrl = declare("reportNameUrl", "report name url to navigate to when clicked", () -> "");82 private final Map<String, ConfigValue> enumeratedCfgValues = enumerateRegisteredConfigValues();83 private final List<ConfigValue> freeFormCfgValues = new ArrayList<>();84 private static final WebTauConfigHandler coreConfigHandler = new WebTauCoreConfigHandler();85 public static WebTauConfig getCfg() {86 return CfgInstanceHolder.INSTANCE;87 }88 /**89 * Handlers are automatically discovered using service loader.90 * Use this method to manually register additional config handler in front of the queue.91 * @param handler config handler to add92 */93 public static void registerConfigHandlerAsFirstHandler(WebTauConfigHandler handler) {94 handlers.add(0, handler);95 }96 public static void registerConfigHandlerAsLastHandler(WebTauConfigHandler handler) {97 handlers.add(handler);98 }99 public static void resetConfigHandlers() {100 handlers.clear();101 handlers.addAll(discoverConfigHandlers());102 }103 public void reset() {104 getEnumeratedCfgValuesStream().forEach(ConfigValue::reset);105 freeFormCfgValues.forEach(ConfigValue::reset);106 }107 protected WebTauConfig() {108 triggerConfigHandlers();109 }110 public void triggerConfigHandlers() {111 registeredHandlersAndCore().forEach(h -> h.onBeforeCreate(this));112 Map<String, ?> envVarValues = envVarsAsMap();113 acceptConfigValues("environment variable", envVarValues);114 acceptConfigValues("environment variable", convertWebTauEnvVarsToPropNames(envVarValues));115 acceptConfigValues("system property", systemPropsAsMap());116 registeredHandlersAndCore().forEach(h -> h.onAfterCreate(this));117 }118 public Stream<ConfigValue> getEnumeratedCfgValuesStream() {119 return enumeratedCfgValues.values().stream();120 }121 public ConfigValue findConfigValue(String key) {122 return enumeratedCfgValues.get(key);123 }124 @SuppressWarnings("unchecked")125 public <E> E get(String key) {126 Stream<ConfigValue> allValues =127 Stream.concat(enumeratedCfgValues.values().stream(), freeFormCfgValues.stream());128 Optional<ConfigValue> configValue = allValues.filter(v -> v.match(key)).findFirst();129 return (E) configValue.map(ConfigValue::getAsObject).orElse(null);130 }131 public int getVerbosityLevel() {132 return verbosityLevel.getAsInt();133 }134 public boolean getFullStackTrace() {135 return fullStackTrace.getAsBoolean();136 }137 public int getConsolePayloadOutputLimit() {138 return consolePayloadOutputLimit.getAsInt();139 }140 public void acceptConfigValues(String source, Map<String, ?> values) {141 acceptConfigValues(source, Persona.DEFAULT_PERSONA_ID, values);142 }143 public void acceptConfigValues(String source, String personaId, Map<String, ?> values) {144 enumeratedCfgValues.values().forEach(v -> v.accept(source, personaId, values));145 registerFreeFormCfgValues(values);146 freeFormCfgValues.forEach(v -> v.accept(source, personaId, values));147 }148 // for REPL convenience149 public void setUrl(String url) {150 setBaseUrl(url);151 }152 public void setBaseUrl(String url) {153 setBaseUrl(SOURCE_MANUAL, url);154 }155 public void setBaseUrl(String source, String url) {156 WebTauStep.createAndExecuteStep(157 tokenizedMessage(action("setting"), id("url")),158 stepInput("source", source,159 "url", url),160 () -> tokenizedMessage(action("set"), id("url")),161 () -> this.url.set(source, url));162 }163 public String getBaseUrl() {164 return url.getAsString();165 }166 public String getEnv() {167 return env.getAsString();168 }169 public ConfigValue getEnvConfigValue() {170 return env;171 }172 public ConfigValue getConfigFileNameValue() {173 return config;174 }175 public ConfigValue getWorkingDirConfigValue() {176 return workingDir;177 }178 public ConfigValue getBaseUrlConfigValue() {179 return url;180 }181 public ConfigValue getHttpProxyConfigValue() {182 return httpProxy;183 }184 public boolean isHttpProxySet() {185 return !httpProxy.isDefault();186 }187 public int getWaitTimeout() {188 return waitTimeout.getAsInt();189 }190 public int getHttpTimeout() {191 return httpTimeout.getAsInt();192 }193 public ConfigValue getHttpTimeoutValue() {194 return httpTimeout;195 }196 public boolean shouldFollowRedirects() {197 return !disableFollowingRedirects.getAsBoolean();198 }199 public int maxRedirects() {200 return maxRedirects.getAsInt();201 }202 public String getUserAgent() {203 if (userAgent.isDefault()) {204 return userAgent.getAsString();205 }206 String finalUserAgent = userAgent.getAsString();207 if (!removeWebTauFromUserAgent.getAsBoolean()) {208 String defaultValue = userAgent.getDefaultValue().toString();209 finalUserAgent += " (" + defaultValue + ")";210 }211 return finalUserAgent;212 }213 public ConfigValue getUserAgentConfigValue() {214 return userAgent;215 }216 public void setUserAgent(String userAgent) {217 this.userAgent.set(SOURCE_MANUAL, userAgent);218 }219 public void setRemoveWebTauFromUserAgent(boolean remove) {220 this.removeWebTauFromUserAgent.set(SOURCE_MANUAL, remove);221 }222 public ConfigValue getRemoveWebtauFromUserAgentConfigValue() {223 return removeWebTauFromUserAgent;224 }225 public ConfigValue getDocArtifactsPathConfigValue() {226 return docPath;227 }228 public Path getDocArtifactsPath() {229 return getWorkingDir().resolve(docPath.getAsPath());230 }231 public boolean isAnsiEnabled() {232 return !noColor.getAsBoolean();233 }234 public Path getWorkingDir() {235 return workingDir.getAsPath().toAbsolutePath();236 }237 public Path fullPath(String relativeOrFull) {238 return fullPath(Paths.get(relativeOrFull));239 }240 public Path fullPath(Path relativeOrFull) {241 if (relativeOrFull == null) {242 return null;243 }244 if (relativeOrFull.isAbsolute()) {245 return relativeOrFull;246 }247 return getWorkingDir().resolve(relativeOrFull).toAbsolutePath();248 }249 public Path getCachePath() {250 return cachePath.getAsPath();251 }252 public ConfigValue getCachePathValue() {253 return cachePath;254 }255 public Path getReportPath() {256 return fullPath(reportPath.getAsPath());257 }258 public Path getFailedReportPath() {259 if (failedReportPath.isDefault()) {260 return null;261 }262 return fullPath(failedReportPath.getAsPath());263 }264 public ConfigValue getReportPathConfigValue() {265 return reportPath;266 }267 public String getReportName() {268 return reportName.getAsString();269 }270 public String getReportNameUrl() {271 return reportNameUrl.getAsString();272 }273 public String getWorkingDirConfigName() {274 return workingDir.getKey();275 }276 @Override277 public String toString() {278 return Stream.concat(enumeratedCfgValues.values().stream(), freeFormCfgValues.stream())279 .map(ConfigValue::toString)280 .collect(Collectors.joining("\n"));281 }282 public void printEnumerated() {283 printConfig(ConsoleOutputs.asCombinedConsoleOutput(), enumeratedCfgValues.values());284 }285 private void printConfig(ConsoleOutput console, Collection<ConfigValue> configValues) {286 int maxKeyLength = configValues.stream()287 .filter(ConfigValue::nonDefault)288 .map(v -> v.getKey().length()).max(Integer::compareTo).orElse(0);289 int maxValueLength = configValues.stream()290 .filter(ConfigValue::nonDefault)291 .map(v -> v.getAsString().length()).max(Integer::compareTo).orElse(0);292 configValues.stream().filter(ConfigValue::nonDefault).forEach(v -> {293 String valueAsText = v.getAsString();294 int valuePadding = maxValueLength - valueAsText.length();295 console.out(Color.BLUE, String.format("%" + maxKeyLength + "s", v.getKey()), ": ",296 Color.YELLOW, valueAsText,297 StringUtils.createIndentation(valuePadding),298 FontStyle.NORMAL, " // from ", v.getSource());299 }300 );301 }302 private Stream<WebTauConfigHandler> registeredHandlersAndCore() {303 return Stream.concat(handlers.stream(), Stream.of(coreConfigHandler));304 }305 private void registerFreeFormCfgValues(Map<String, ?> values) {306 Stream<String> keys = values.keySet().stream()307 .filter(k -> noConfigValuePresent(enumeratedCfgValues.values(), k));308 keys.filter(k -> noConfigValuePresent(freeFormCfgValues, k))309 .forEach(k -> {310 ConfigValue configValue = declare(k, "free form cfg value", () -> null);311 freeFormCfgValues.add(configValue);312 });313 }314 private boolean noConfigValuePresent(Collection<ConfigValue> configValues, String key) {315 return configValues.stream().noneMatch(cv -> cv.match(key));316 }317 private static Map<String, ?> systemPropsAsMap() {318 return System.getProperties().stringPropertyNames().stream()319 .collect(Collectors.toMap(n -> n, System::getProperty));320 }321 private static Map<String, ?> envVarsAsMap() {322 return System.getenv();323 }324 private Map<String, ?> convertWebTauEnvVarsToPropNames(Map<String, ?> envVarValues) {325 Map<String, String> result = new LinkedHashMap<>();326 envVarValues.forEach((k, v) -> {327 if (k.startsWith(ConfigValue.ENV_VAR_PREFIX)) {328 result.put(convertToCamelCase(k), v.toString());329 }330 });331 return result;332 }333 static String convertToCamelCase(String key) {334 String[] parts = key.split("_");335 String joined = Arrays.stream(parts)336 .skip(1)337 .map(p -> p.charAt(0) + p.substring(1).toLowerCase())338 .collect(Collectors.joining(""));339 return Character.toLowerCase(joined.charAt(0)) + joined.substring(1);340 }341 private Map<String, ConfigValue> enumerateRegisteredConfigValues() {342 Stream<ConfigValue> standardConfigValues = Stream.of(343 config,344 env,345 url,346 httpProxy,347 verbosityLevel,348 fullStackTrace,349 workingDir,350 waitTimeout,351 httpTimeout,352 disableFollowingRedirects,353 maxRedirects,354 userAgent,355 removeWebTauFromUserAgent,...

Full Screen

Full Screen

enumerateRegisteredConfigValues

Using AI Code Generation

copy

Full Screen

1import org.testingisdocumenting.webtau.cfg.WebTauConfig2def registeredConfigs = WebTauConfig.enumerateRegisteredConfigValues()3registeredConfigs.each { table << ["`$it.name`", "`$it.defaultValue`"] }4println table.toMarkdownTable()5import org.testingisdocumenting.webtau.cfg.WebTauConfig6def registeredConfigs = WebTauConfig.enumerateRegisteredConfigValues()7registeredConfigs.each { table << ["`$it.name`", "`$it.defaultValue`"] }8println table.toMarkdownTable()

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful