Skip to content

Commit a5a020b

Browse files
committed
chore: Add unit test for ExplainCommand
1 parent 4457e2f commit a5a020b

File tree

2 files changed

+69
-5
lines changed

2 files changed

+69
-5
lines changed

src/main/java/com/endava/cats/command/ExplainCommand.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public class ExplainCommand implements Runnable {
3939

4040
@CommandLine.Option(names = {"-t", "--type"},
4141
description = "Output to console in JSON format.", required = true)
42-
private Type type;
42+
Type type;
4343

4444
@CommandLine.Parameters(index = "0",
4545
paramLabel = "<info>",
@@ -63,28 +63,28 @@ public void run() {
6363
}
6464
}
6565

66-
private void displayErrorReason() {
66+
void displayErrorReason() {
6767
Arrays.stream(CatsResultFactory.Reason.values()).filter(reason -> reason.name()
6868
.toLowerCase(Locale.ROOT).contains(info.toLowerCase(Locale.ROOT)))
6969
.sorted()
7070
.forEach(reason -> logger.noFormat("* Reason {} - {}", reason.value(), reason.description()));
7171
}
7272

73-
private void displayFuzzerInfo() {
73+
void displayFuzzerInfo() {
7474
fuzzers.stream().filter(fuzzer -> fuzzer.getClass().getSimpleName()
7575
.toLowerCase(Locale.ROOT).contains(info.toLowerCase(Locale.ROOT)))
7676
.sorted(Comparator.comparing(fuzzer -> fuzzer.getClass().getSimpleName()))
7777
.forEach(fuzzer -> logger.noFormat("* Fuzzer {} - {}", fuzzer.getClass().getSimpleName(), fuzzer.description()));
7878
}
7979

80-
private void displayMutatorInfo() {
80+
void displayMutatorInfo() {
8181
mutators.stream().filter(mutator -> mutator.getClass().getSimpleName()
8282
.toLowerCase(Locale.ROOT).contains(info.toLowerCase(Locale.ROOT)))
8383
.sorted()
8484
.forEach(mutator -> logger.noFormat("* Mutator {} - {}", mutator.getClass().getSimpleName(), mutator.description()));
8585
}
8686

87-
private void displayResponseCodeInfo() {
87+
void displayResponseCodeInfo() {
8888
Arrays.stream(CatsResponse.ExceptionalResponse.values())
8989
.map(CatsResponse.ExceptionalResponse::asString)
9090
.filter(response -> response.toLowerCase(Locale.ROOT).contains(info.toLowerCase(Locale.ROOT)))
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.endava.cats.command;
2+
3+
import io.quarkus.test.junit.QuarkusTest;
4+
import org.junit.jupiter.api.BeforeEach;
5+
import org.junit.jupiter.api.Test;
6+
7+
import static org.mockito.Mockito.doNothing;
8+
import static org.mockito.Mockito.never;
9+
import static org.mockito.Mockito.spy;
10+
import static org.mockito.Mockito.verify;
11+
12+
@QuarkusTest
13+
class ExplainCommandTest {
14+
private ExplainCommand explainCommand;
15+
16+
@BeforeEach
17+
void setup() {
18+
explainCommand = spy(new ExplainCommand());
19+
}
20+
21+
@Test
22+
void testRun_FuzzerType_CallsDisplayFuzzerInfo() {
23+
explainCommand.type = ExplainCommand.Type.FUZZER;
24+
doNothing().when(explainCommand).displayFuzzerInfo();
25+
explainCommand.run();
26+
verify(explainCommand).displayFuzzerInfo();
27+
verify(explainCommand, never()).displayMutatorInfo();
28+
verify(explainCommand, never()).displayResponseCodeInfo();
29+
verify(explainCommand, never()).displayErrorReason();
30+
}
31+
32+
@Test
33+
void testRun_MutatorType_CallsDisplayMutatorInfo() {
34+
explainCommand.type = ExplainCommand.Type.MUTATOR;
35+
doNothing().when(explainCommand).displayMutatorInfo();
36+
explainCommand.run();
37+
verify(explainCommand).displayMutatorInfo();
38+
verify(explainCommand, never()).displayFuzzerInfo();
39+
verify(explainCommand, never()).displayResponseCodeInfo();
40+
verify(explainCommand, never()).displayErrorReason();
41+
}
42+
43+
@Test
44+
void testRun_ResponseCodeType_CallsDisplayResponseCodeInfo() {
45+
explainCommand.type = ExplainCommand.Type.RESPONSE_CODE;
46+
doNothing().when(explainCommand).displayResponseCodeInfo();
47+
explainCommand.run();
48+
verify(explainCommand).displayResponseCodeInfo();
49+
verify(explainCommand, never()).displayFuzzerInfo();
50+
verify(explainCommand, never()).displayMutatorInfo();
51+
verify(explainCommand, never()).displayErrorReason();
52+
}
53+
54+
@Test
55+
void testRun_ErrorReasonType_CallsDisplayErrorReason() {
56+
explainCommand.type = ExplainCommand.Type.ERROR_REASON;
57+
doNothing().when(explainCommand).displayErrorReason();
58+
explainCommand.run();
59+
verify(explainCommand).displayErrorReason();
60+
verify(explainCommand, never()).displayFuzzerInfo();
61+
verify(explainCommand, never()).displayMutatorInfo();
62+
verify(explainCommand, never()).displayResponseCodeInfo();
63+
}
64+
}

0 commit comments

Comments
 (0)