You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

JavaCommandTest.java 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. * SonarQube
  3. * Copyright (C) 2009-2018 SonarSource SA
  4. * mailto:info AT sonarsource DOT com
  5. *
  6. * This program is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 3 of the License, or (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public License
  17. * along with this program; if not, write to the Free Software Foundation,
  18. * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  19. */
  20. package org.sonar.application.command;
  21. import java.io.File;
  22. import java.util.Properties;
  23. import org.junit.Rule;
  24. import org.junit.Test;
  25. import org.junit.rules.TemporaryFolder;
  26. import org.sonar.process.ProcessId;
  27. import static org.assertj.core.api.Assertions.assertThat;
  28. public class JavaCommandTest {
  29. @Rule
  30. public TemporaryFolder temp = new TemporaryFolder();
  31. @Test
  32. public void test_command_with_complete_information() throws Exception {
  33. File workDir = temp.newFolder();
  34. JavaCommand<JvmOptions> command = new JavaCommand<>(ProcessId.ELASTICSEARCH, workDir);
  35. command.setArgument("first_arg", "val1");
  36. Properties args = new Properties();
  37. args.setProperty("second_arg", "val2");
  38. command.setArguments(args);
  39. command.setClassName("org.sonar.ElasticSearch");
  40. command.setEnvVariable("JAVA_COMMAND_TEST", "1000");
  41. command.addClasspath("lib/*.jar");
  42. command.addClasspath("conf/*.xml");
  43. JvmOptions<JvmOptions> jvmOptions = new JvmOptions<JvmOptions>() {};
  44. command.setJvmOptions(jvmOptions);
  45. assertThat(command.toString()).isNotNull();
  46. assertThat(command.getClasspath()).containsOnly("lib/*.jar", "conf/*.xml");
  47. assertThat(command.getJvmOptions()).isSameAs(jvmOptions);
  48. assertThat(command.getWorkDir()).isSameAs(workDir);
  49. assertThat(command.getClassName()).isEqualTo("org.sonar.ElasticSearch");
  50. // copy current env variables
  51. assertThat(command.getEnvVariables().get("JAVA_COMMAND_TEST")).isEqualTo("1000");
  52. assertThat(command.getEnvVariables().size()).isEqualTo(System.getenv().size() + 1);
  53. }
  54. }