How to use SqlScriptRunner class of org.evomaster.client.java.controller.db package

Best EvoMaster code snippet using org.evomaster.client.java.controller.db.SqlScriptRunner

Source:ExternalEvoMasterController.java Github

copy

Full Screen

2import org.evomaster.client.java.controller.AuthUtils;3import org.evomaster.client.java.controller.ExternalSutController;4import org.evomaster.client.java.controller.InstrumentedSutStarter;5import org.evomaster.client.java.controller.db.DbCleaner;6import org.evomaster.client.java.controller.db.SqlScriptRunner;7import org.evomaster.client.java.controller.problem.ProblemInfo;8import org.evomaster.client.java.controller.problem.RestProblem;9import org.evomaster.client.java.controller.api.dto.AuthenticationDto;10import org.evomaster.client.java.controller.api.dto.HeaderDto;11import org.evomaster.client.java.controller.api.dto.SutInfoDto;12import org.h2.tools.Server;13import java.io.File;14import java.io.IOException;15import java.io.InputStream;16import java.io.InputStreamReader;17import java.nio.file.Files;18import java.nio.file.Path;19import java.nio.file.Paths;20import java.nio.file.StandardCopyOption;21import java.sql.Connection;22import java.sql.DriverManager;23import java.sql.SQLException;24import java.util.Arrays;25import java.util.List;26public class ExternalEvoMasterController extends ExternalSutController {27 public static void main(String[] args) {28 int controllerPort = 40100;29 if (args.length > 0) {30 controllerPort = Integer.parseInt(args[0]);31 }32 int sutPort = 12345;33 if (args.length > 1) {34 sutPort = Integer.parseInt(args[1]);35 }36 String jarLocation = "cs/rest/original/scout-api/api/target";37 if(args.length > 2){38 jarLocation = args[2];39 }40 if(! jarLocation.endsWith(".jar")) {41 jarLocation += "/scout-api-sut.jar";42 }43 int timeoutSeconds = 120;44 if(args.length > 3){45 timeoutSeconds = Integer.parseInt(args[3]);46 }47 ExternalEvoMasterController controller =48 new ExternalEvoMasterController(controllerPort, jarLocation, sutPort, timeoutSeconds);49 InstrumentedSutStarter starter = new InstrumentedSutStarter(controller);50 starter.start();51 }52 private final int timeoutSeconds;53 private final int sutPort;54 private final int dbPort;55 private final String jarLocation;56 private final String tmpDir;57 private final String CONFIG_FILE = "scout_api_evomaster.yml";58 private Connection connection;59 private List<String> sqlCommands;60 private Server h2;61 public ExternalEvoMasterController(){62 this(40100, "../api/target", 12345, 120);63 }64 public ExternalEvoMasterController(int controllerPort,65 String jarLocation,66 int sutPort,67 int timeoutSeconds) {68 this.sutPort = sutPort;69 this.dbPort = sutPort + 1;70 this.jarLocation = jarLocation;71 this.timeoutSeconds = timeoutSeconds;72 setControllerPort(controllerPort);73 String base = Paths.get(jarLocation).toAbsolutePath().getParent().normalize().toString();74 tmpDir = base + "/temp/tmp_scout_api/temp_"+dbPort;75 createConfigurationFile();76 try(InputStream in = getClass().getResourceAsStream("/init_db.sql")) {77 sqlCommands = (new SqlScriptRunner()).readCommands(new InputStreamReader(in));78 } catch (Exception e){79 throw new RuntimeException(e);80 }81 }82 private String dbUrl(boolean withP6Spy) {83 String url = "jdbc";84 if (withP6Spy) {85 url += ":p6spy";86 }87 url += ":h2:tcp://localhost:" + dbPort + "/./temp/tmp_scout_api/testdb_" + dbPort;88 return url;89 }90 /**91 Unfortunately, it seems like Dropwizard is buggy, and has92 problems with overriding params without a YML file :(93 */94 private void createConfigurationFile() {95 //save config to same folder of JAR file96 Path path = getConfigPath();97 try(InputStream is = this.getClass().getResourceAsStream("/"+ CONFIG_FILE )){98 Files.copy(is, path, StandardCopyOption.REPLACE_EXISTING);99 } catch (Exception e){100 throw new RuntimeException(e);101 }102 }103 private Path getConfigPath(){104 return Paths.get(jarLocation)105 .toAbsolutePath()106 .getParent()107 .resolve(CONFIG_FILE)108 .normalize();109 }110 @Override111 public String[] getInputParameters() {112 return new String[]{"server", getConfigPath().toAbsolutePath().toString()};113 }114 @Override115 public String[] getJVMParameters() {116 return new String[]{117 "-Ddw.server.connector.port="+sutPort,118 "-Ddw.mediaFilesFolder="+tmpDir+"/media-files",119 "-Ddw.tempFolder="+tmpDir,120 "-Ddw.database.url="+dbUrl(true)121 };122 }123 @Override124 public String getBaseURL() {125 return "http://localhost:"+sutPort;126 }127 @Override128 public String getPathToExecutableJar() {129 return jarLocation;130 }131 @Override132 public String getLogMessageOfInitializedServer() {133 return "Server: Started";134 }135 @Override136 public long getMaxAwaitForInitializationInSeconds() {137 return timeoutSeconds;138 }139 @Override140 public void preStart() {141 try {142 //starting H2143 h2 = Server.createTcpServer("-tcp", "-tcpAllowOthers", "-tcpPort", "" + dbPort);144 h2.start();145 } catch (SQLException e) {146 throw new RuntimeException(e);147 }148 }149 @Override150 public void postStart() {151 try {152 Class.forName("org.h2.Driver");153 connection = DriverManager.getConnection(dbUrl(false), "sa", "");154 } catch (Exception e) {155 throw new RuntimeException(e);156 }157 resetStateOfSUT();158 }159 @Override160 public void preStop() {161 }162 @Override163 public void postStop() {164 if (h2 != null) {165 h2.stop();166 }167 }168 @Override169 public String getPackagePrefixesToCover() {170 return "se.devscout.";171 }172 @Override173 public void resetStateOfSUT() {174 deleteDir(new File(tmpDir));175 DbCleaner.clearDatabase_H2(connection);176 SqlScriptRunner.runCommands(connection, sqlCommands);177 }178 private void deleteDir(File file) {179 File[] contents = file.listFiles();180 if (contents != null) {181 for (File f : contents) {182 deleteDir(f);183 }184 }185 file.delete();186 }187 @Override188 public ProblemInfo getProblemInfo() {189 return new RestProblem(190 getBaseURL() + "/api/swagger.json",...

Full Screen

Full Screen

Source:EmbeddedEvoMasterController.java Github

copy

Full Screen

2import org.evomaster.client.java.controller.AuthUtils;3import org.evomaster.client.java.controller.EmbeddedSutController;4import org.evomaster.client.java.controller.InstrumentedSutStarter;5import org.evomaster.client.java.controller.db.DbCleaner;6import org.evomaster.client.java.controller.db.SqlScriptRunner;7import org.evomaster.client.java.controller.problem.ProblemInfo;8import org.evomaster.client.java.controller.problem.RestProblem;9import org.evomaster.client.java.controller.api.dto.AuthenticationDto;10import org.evomaster.client.java.controller.api.dto.HeaderDto;11import org.evomaster.client.java.controller.api.dto.SutInfoDto;12import se.devscout.scoutapi.ScoutAPIApplication;13import java.io.File;14import java.io.InputStream;15import java.io.InputStreamReader;16import java.sql.Connection;17import java.sql.SQLException;18import java.util.Arrays;19import java.util.List;20/**21 * Class used to start/stop the SUT. This will be controller by the EvoMaster process22 */23public class EmbeddedEvoMasterController extends EmbeddedSutController {24 public static void main(String[] args) {25 int port = 40100;26 if (args.length > 0) {27 port = Integer.parseInt(args[0]);28 }29 EmbeddedEvoMasterController controller = new EmbeddedEvoMasterController(port);30 InstrumentedSutStarter starter = new InstrumentedSutStarter(controller);31 starter.start();32 }33 private ScoutAPIApplication application;34 private Connection connection;35 private List<String> sqlCommands;36 public EmbeddedEvoMasterController() {37 this(40100);38 }39 public EmbeddedEvoMasterController(int port) {40 setControllerPort(port);41 try (InputStream in = getClass().getResourceAsStream("/init_db.sql")) {42 sqlCommands = (new SqlScriptRunner()).readCommands(new InputStreamReader(in));43 } catch (Exception e) {44 throw new RuntimeException(e);45 }46 }47 @Override48 public String startSut() {49 application = new ScoutAPIApplication();50 //Dirty hack for DW...51 System.setProperty("dw.server.connector.port", "0");52 try {53 application.run("server", "src/main/resources/scout_api_evomaster.yml");54 } catch (Exception e) {55 e.printStackTrace();56 return null;57 }58 try {59 Thread.sleep(3_000);60 } catch (InterruptedException e) {61 }62 while (!application.getJettyServer().isStarted()) {63 try {64 Thread.sleep(1_000);65 } catch (InterruptedException e) {66 }67 }68 connection = application.getConnection();69 resetStateOfSUT();70 return "http://localhost:" + application.getJettyPort();71 }72 @Override73 public boolean isSutRunning() {74 if (application == null) {75 return false;76 }77 return application.getJettyServer().isRunning();78 }79 @Override80 public void stopSut() {81 if (application != null) {82 try {83 application.getJettyServer().stop();84 } catch (Exception e) {85 e.printStackTrace();86 }87 }88 if (connection != null) {89 try {90 connection.close();91 } catch (SQLException e) {92 e.printStackTrace();93 }94 }95 }96 @Override97 public String getPackagePrefixesToCover() {98 return "se.devscout.";99 }100 @Override101 public void resetStateOfSUT() {102 deleteDir(new File("./target/temp"));103 DbCleaner.clearDatabase_H2(connection);104 SqlScriptRunner.runCommands(connection, sqlCommands);105 }106 @Override107 public List<AuthenticationDto> getInfoForAuthentication() {108 return Arrays.asList(109 AuthUtils.getForAuthorizationHeader("user", "ApiKey user"),110 AuthUtils.getForAuthorizationHeader("moderator", "ApiKey moderator"),111 AuthUtils.getForAuthorizationHeader("administrator", "ApiKey administrator")112 );113 }114 @Override115 public Connection getConnection() {116 return connection;117 }118 @Override...

Full Screen

Full Screen

SqlScriptRunner

Using AI Code Generation

copy

Full Screen

1import org.evomaster.client.java.controller.db.SqlScriptRunner;2public class 3 {3 public static void main(String[] args) {4 runner.run("" +5 "CREATE TABLE dbo.TestTable (id INT IDENTITY(1,1) PRIMARY KEY, value INT);" +6 "INSERT INTO dbo.TestTable (value) VALUES (1);" +7 "INSERT INTO dbo.TestTable (value) VALUES (2);" +8 "INSERT INTO dbo.TestTable (value) VALUES (3);");9 }10}11import org.evomaster.client.java.controller.db.SqlScriptRunner;12public class 4 {13 public static void main(String[] args) {14 runner.run("" +15 "CREATE TABLE dbo.TestTable (id INT IDENTITY(1,1) PRIMARY KEY, value INT);" +16 "INSERT INTO dbo.TestTable (value) VALUES (1);" +17 "INSERT INTO dbo.TestTable (value) VALUES (2);" +18 "INSERT INTO dbo.TestTable (value) VALUES (3);");19 }20}21import org.evomaster.client.java.controller.db.SqlScriptRunner;22public class 5 {23 public static void main(String[] args) {24 runner.run("" +25 "CREATE TABLE dbo.TestTable (id INT IDENTITY(1,1) PRIMARY KEY, value INT);" +26 "INSERT INTO dbo.TestTable (value) VALUES (1);" +27 "INSERT INTO dbo.TestTable (value) VALUES (2);" +28 "INSERT INTO dbo.TestTable (value) VALUES (3);");29 }30}

Full Screen

Full Screen

SqlScriptRunner

Using AI Code Generation

copy

Full Screen

1import org.evomaster.client.java.controller.db.SqlScriptRunner;2public class 3 {3 public static void main(String[] args) throws Exception {4 SqlScriptRunner runner = new SqlScriptRunner();5 }6}7CREATE TABLE IF NOT EXISTS "public"."test" (8 "name" varchar(255) NOT NULL,9 "enum" varchar(255) NOT NULL,10 "set" varchar(255) NOT NULL,11 "char" varchar(255) NOT NULL,12 "varchar" varchar(255) NOT NULL,13 "tinytext" varchar(255) NOT NULL,14 "primary key" ("id")15);16INSERT INTO test (id, name, date, time, timestamp, bool, decimal, float, double, tinyint, smallint, mediumint, bigint, bit, binary, varbinary, blob, text, enum, set, char, varchar, tinytext, mediumtext, longtext, json,

Full Screen

Full Screen

SqlScriptRunner

Using AI Code Generation

copy

Full Screen

1import org.evomaster.client.java.controller.db.SqlScriptRunner;2import org.evomaster.client.java.controller.db.SqlScriptRunnerConfig;3import java.io.File;4import java.io.IOException;5import java.sql.Connection;6import java.sql.SQLException;7public class Main {8 public static void main(String[] args) throws IOException, SQLException {9 SqlScriptRunnerConfig config = new SqlScriptRunnerConfig();10 config.setConnection(connection);11 config.setScriptFile(new File("/path/to/script.sql"));12 config.setThrowExceptionIfError(true);13 config.setContinueOnError(false);14 config.setPrintLog(true);15 config.setPrintError(true);16 config.setPrintInfo(true);17 config.setPrintWarning(true);18 SqlScriptRunner runner = new SqlScriptRunner(config);19 runner.run();20 }21}22throwExceptionIfError: if true, the method run() will throw a SQLException if an error is found in the script23run(): this method will run the SQL script24getConnection(): returns the connection to the database25getScriptFile(): returns the file containing the SQL script to be run26isThrowExceptionIfError(): returns true if an SQLException will be thrown if an error is found in the script27isContinueOnError(): returns true if the script will continue to run even if an error is found28isPrintLog(): returns true if the log messages will be printed to the standard output29isPrintError(): returns true if the error messages will be printed to the standard output30isPrintInfo(): returns true if the info messages will be printed to the standard output31isPrintWarning(): returns true if the warning messages will be printed to the standard output

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.

Run EvoMaster automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Test Your Web Or Mobile Apps On 3000+ Browsers

Signup for free

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful