package org.jboss.as.test.manualmode.management.cli; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.StringReader; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.codehaus.plexus.util.FileUtils; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** * Shared utilities for testing embedded standalone / host-controller * * @author Ken Wills (c) 2016 Red Hat Inc. */ public class CLIEmbedUtil { static void copyConfig(final File root, String baseDirName, String base, String newName, boolean requiresExists) throws IOException { File configDir = new File(root, baseDirName + File.separatorChar + "configuration"); File baseFile = new File(configDir, base); assertTrue(!requiresExists || baseFile.exists()); File newFile = new File(configDir, newName); Files.copy(baseFile.toPath(), newFile.toPath(), StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.COPY_ATTRIBUTES); } static void copyServerBaseDir(final File root, final String baseDirName, final String newbaseDirName, boolean force) throws IOException { // copy the base server directory (standalone etc to a new name to test changing jboss.server.base.dir etc) final File baseDir = new File(root + File.separator + baseDirName); assertTrue(baseDir.exists()); final File newBaseDir = new File(root + File.separator + newbaseDirName); assertFalse(!force && newBaseDir.exists()); FileUtils.copyDirectoryStructure(baseDir, newBaseDir); assertTrue(newBaseDir.exists()); // remove anything we'll auto-create on startup final String[] cleanDirs = {"content", "data", "deployments", "log", "tmp"}; for (final String dir : cleanDirs) { FileUtils.deleteDirectory(root + File.separator + newbaseDirName + File.separator + dir); } } static List<String> getOutputLines(String raw) throws IOException { if (raw == null) { return Collections.emptyList(); } BufferedReader br = new BufferedReader(new StringReader(raw)); List<String> result = new ArrayList<>(); String line; while ((line = br.readLine()) != null) { result.add(line); } return result; } }