Skip to content

Commit ae3b3f2

Browse files
committed
Generalize leinigenRunner to stop taking main command arg
1 parent 44ab79e commit ae3b3f2

File tree

4 files changed

+16
-18
lines changed

4 files changed

+16
-18
lines changed

src/main/java/org/sonar/plugins/clojure/sensors/LeiningenRunner.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,10 @@ public LeiningenRunner() {
2828
this(LOG, CommandExecutor.create());
2929
}
3030

31-
CommandStreamConsumer run(String plugin, CommandStreamConsumer stdout,
32-
CommandStreamConsumer stderr, Long timeOut, String operatingSystem, String... options) {
31+
CommandStreamConsumer run(CommandStreamConsumer stdout,
32+
CommandStreamConsumer stderr, Long timeOut, String operatingSystem, String... args) {
3333
Command cmd = Command.create(getCommand(operatingSystem));
34-
cmd.addArgument(plugin);
35-
Arrays.stream(options).filter(Objects::nonNull).forEach(cmd::addArgument);
34+
Arrays.stream(args).filter(Objects::nonNull).forEach(cmd::addArgument);
3635

3736
int returnCode = commandExecutor.execute(cmd, stdout, stderr, fromSecondsToMilliseconds(timeOut));
3837

@@ -58,14 +57,13 @@ private Long fromSecondsToMilliseconds(long seconds) {
5857
return seconds * 1000;
5958
}
6059

61-
public CommandStreamConsumer run(Long timeOut, String command, String... pluginOptions) {
60+
public CommandStreamConsumer run(Long timeOut, String... args) {
6261
return run(
63-
command,
6462
new CommandStreamConsumer(),
6563
new CommandStreamConsumer(),
6664
timeOut,
6765
System.getProperty("os.name"),
68-
pluginOptions
66+
args
6967
);
7068
}
7169
}

src/main/java/org/sonar/plugins/clojure/sensors/kondo/KondoSensor.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ public class KondoSensor extends AbstractSensor implements Sensor {
3131
private static final Logger LOG = Loggers.get(KondoSensor.class);
3232

3333
private static final String PLUGIN_NAME = "clj-kondo";
34-
private static final String COMMAND_RUN = "run";
35-
private static final String[] COMMAND_OPTS = {"-m", "clj-kondo.main"};
34+
private static final String[] KONDO_ARGS = {"run", "-m", "clj-kondo.main"};
3635

3736
public KondoSensor(LeiningenRunner leiningenRunner) {
3837
super(leiningenRunner);
@@ -92,7 +91,7 @@ public void execute(SensorContext context) {
9291

9392
String config = context.config().get(CONFIG).orElse(DEFAULT_CONFIG);
9493
String[] options = context.config().get(OPTIONS).orElse(DEFAULT_OPTIONS).split("\\s+");
95-
List<String> commandAsList = new ArrayList(Arrays.asList(COMMAND_OPTS));
94+
List<String> commandAsList = new ArrayList(Arrays.asList(KONDO_ARGS));
9695
commandAsList.addAll(Arrays.asList(options));
9796
if (config != null && !config.isEmpty()) {
9897
commandAsList.add("--config");
@@ -103,7 +102,7 @@ public void execute(SensorContext context) {
103102
long timeOut = context.config().getLong(SENSORS_TIMEOUT_PROPERTY)
104103
.orElse(Long.valueOf(SENSORS_TIMEOUT_PROPERTY_DEFAULT));
105104

106-
CommandStreamConsumer stdOut = this.leiningenRunner.run(timeOut, COMMAND_RUN, command);
105+
CommandStreamConsumer stdOut = this.leiningenRunner.run(timeOut, command);
107106

108107
List<Finding> issues = KondoIssueParser.parse(stdOut);
109108
LOG.info("Saving issues " + issues.size());

src/test/java/org/sonar/plugins/clojure/sensors/LeiningenRunnerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ public void shouldLogStdoutStderrAndCommandInDebugMode() {
5959
stderr.consumeLine("line in stderr");
6060

6161
leiningenRunner.run(
62-
"eastwood",
6362
stdout,
6463
stderr,
6564
300L,
6665
"Linux",
66+
"eastwood",
6767
"argument1",
6868
"argument2"
6969
);
@@ -79,11 +79,11 @@ public void shouldLogErrorForReturnCodeDifferentThanZero() {
7979
CommandStreamConsumer dummyStreamConsumer = new CommandStreamConsumer();
8080

8181
leiningenRunner.run(
82-
"eastwood",
8382
dummyStreamConsumer,
8483
dummyStreamConsumer,
8584
300L,
8685
"Linux",
86+
"eastwood",
8787
"argument1",
8888
"argument2"
8989
);
@@ -98,7 +98,7 @@ public void shouldUseBatFileWhenOperatingSystemIsWindows() {
9898
CommandStreamConsumer stderr = new CommandStreamConsumer();
9999
when(commandExecutor.execute(any(),any(),any(),anyLong())).thenReturn(0);
100100

101-
leiningenRunner.run("eastwood", stdout, stderr, 300L, "windows");
101+
leiningenRunner.run(stdout, stderr, 300L, "windows", "eastwood");
102102

103103
ArgumentCaptor<Command> commandCaptor = ArgumentCaptor.forClass(Command.class);
104104
verify(commandExecutor).execute(commandCaptor.capture(), any(CommandStreamConsumer.class), any(CommandStreamConsumer.class), anyLong());

src/test/java/org/sonar/plugins/clojure/sensors/kondo/KondoSensorTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import org.junit.Before;
44
import org.junit.Test;
5+
import org.junit.runner.RunWith;
56
import org.mockito.Mock;
7+
import org.mockito.junit.MockitoJUnitRunner;
68
import org.sonar.api.batch.fs.internal.DefaultInputFile;
79
import org.sonar.api.batch.fs.internal.TestInputFileBuilder;
810
import org.sonar.api.batch.sensor.internal.DefaultSensorDescriptor;
@@ -20,12 +22,12 @@
2022
import java.util.List;
2123

2224
import static org.hamcrest.CoreMatchers.is;
23-
import static org.junit.Assert.assertThat;
24-
import static org.junit.Assert.assertTrue;
25+
import static org.hamcrest.MatcherAssert.assertThat;
2526
import static org.mockito.Mockito.when;
2627
import static org.mockito.MockitoAnnotations.initMocks;
2728
import static org.sonar.plugins.clojure.settings.KondoProperties.*;
2829

30+
@RunWith(MockitoJUnitRunner.class)
2931
public class KondoSensorTest {
3032

3133
@Mock
@@ -35,7 +37,6 @@ public class KondoSensorTest {
3537

3638
@Before
3739
public void setUp() {
38-
initMocks(this);
3940
kondoSensor = new KondoSensor(commandRunner);
4041
}
4142

@@ -44,7 +45,7 @@ public void shouldConfigureSensor() {
4445
DefaultSensorDescriptor descriptor = new DefaultSensorDescriptor();
4546
kondoSensor.describe(descriptor);
4647
assertThat(descriptor.name(), is("clj-kondo"));
47-
assertTrue(descriptor.languages().contains("clj"));
48+
assertThat(descriptor.languages().contains("clj"), is(true));
4849
assertThat(descriptor.languages().size(), is(1));
4950
}
5051

0 commit comments

Comments
 (0)