Skip to content

Commit 9e6a0a6

Browse files
authored
Don't let node command tests write into source directory (#23327)
The common node test wrote a node ID file into the source directory. (graylog2-server/node_id_file) Replace static config files with dynamically generated files that are written to a tmp directory.
1 parent 8716963 commit 9e6a0a6

File tree

4 files changed

+21
-33
lines changed

4 files changed

+21
-33
lines changed

graylog2-server/src/test/java/org/graylog2/commands/CommonNodeCommandTest.java

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@
2323
import org.graylog.testing.mongodb.MongoDBTestService;
2424
import org.graylog2.CommonNodeConfiguration;
2525
import org.graylog2.featureflag.FeatureFlags;
26-
import org.junit.jupiter.api.Assertions;
2726
import org.junit.jupiter.api.BeforeEach;
2827
import org.junit.jupiter.api.Test;
2928
import org.junit.jupiter.api.extension.ExtendWith;
29+
import org.junit.jupiter.api.io.TempDir;
3030
import org.mockito.junit.jupiter.MockitoExtension;
3131

32-
import java.net.URISyntaxException;
33-
import java.net.URL;
32+
import java.nio.file.Files;
33+
import java.nio.file.Path;
3434
import java.util.List;
3535

3636
import static org.mockito.Mockito.spy;
@@ -50,30 +50,27 @@ void setUp(MongoDBTestService mongodb) {
5050
}
5151

5252
@Test
53-
public void startCommonNode() {
54-
CommonNode node = spy(new CommonNode());
53+
public void startCommonNode(@TempDir Path tmpDir) throws Exception {
54+
final var configFile = tmpDir.resolve("common-node.conf");
55+
Files.write(configFile, List.of(
56+
"node_id_file = " + tmpDir.resolve("node-id").toAbsolutePath(),
57+
"password_secret = 1234567890123456"
58+
));
59+
CommonNode node = spy(new CommonNode(configFile));
5560
node.run();
5661
verify(node, times(1)).startCommand();
5762
}
5863

5964
static class CommonNode extends AbstractNodeCommand {
6065

61-
public CommonNode() {
66+
public CommonNode(Path configFile) {
6267
super(new CommonNodeConfiguration() {
6368
@Parameter("password_secret")
6469
String passwordSecret;
6570
@Parameter("node_id_file")
6671
String nodeIdFile;
6772
});
68-
URL resource = this.getClass().getResource("common-node.conf");
69-
if (resource == null) {
70-
Assertions.fail("Cannot read configuration file");
71-
}
72-
try {
73-
setConfigFile(resource.toURI().getPath());
74-
} catch (URISyntaxException e) {
75-
Assertions.fail("Cannot read configuration file");
76-
}
73+
setConfigFile(configFile.toString());
7774
}
7875

7976
@Override

graylog2-server/src/test/java/org/graylog2/commands/MinimalNodeCommandTest.java

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@
2222
import org.graylog2.GraylogNodeConfiguration;
2323
import org.graylog2.featureflag.FeatureFlags;
2424
import org.graylog2.plugin.ServerStatus;
25-
import org.junit.jupiter.api.Assertions;
2625
import org.junit.jupiter.api.Test;
2726
import org.junit.jupiter.api.extension.ExtendWith;
27+
import org.junit.jupiter.api.io.TempDir;
2828
import org.mockito.junit.jupiter.MockitoExtension;
2929

30-
import java.net.URISyntaxException;
31-
import java.net.URL;
30+
import java.nio.file.Files;
31+
import java.nio.file.Path;
3232
import java.util.List;
3333
import java.util.Set;
3434

@@ -40,25 +40,19 @@
4040
public class MinimalNodeCommandTest {
4141

4242
@Test
43-
public void startMinimalNode() {
44-
MinimalNode node = spy(new MinimalNode());
43+
public void startMinimalNode(@TempDir Path tmpDir) throws Exception {
44+
final var configFile = tmpDir.resolve("minimal-node.conf");
45+
Files.write(configFile, List.of("password_secret = 1234567890123456"));
46+
MinimalNode node = spy(new MinimalNode(configFile));
4547
node.run();
4648
verify(node, times(1)).startCommand();
4749
}
4850

4951
static class MinimalNode extends AbstractNodeCommand {
5052

51-
public MinimalNode() {
53+
public MinimalNode(Path configFile) {
5254
super(new MinimalNodeConfiguration());
53-
URL resource = this.getClass().getResource("minimal-node.conf");
54-
if (resource == null) {
55-
Assertions.fail("Cannot read configuration file");
56-
}
57-
try {
58-
setConfigFile(resource.toURI().getPath());
59-
} catch (URISyntaxException e) {
60-
Assertions.fail("Cannot read configuration file");
61-
}
55+
setConfigFile(configFile.toString());
6256
}
6357

6458
@Override

graylog2-server/src/test/resources/org/graylog2/commands/common-node.conf

Lines changed: 0 additions & 2 deletions
This file was deleted.

graylog2-server/src/test/resources/org/graylog2/commands/minimal-node.conf

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)