Skip to content

Commit edb42f9

Browse files
scmacdonrlhagerm
authored andcommitted
updated Scenario
1 parent 9851edd commit edb42f9

3 files changed

Lines changed: 29 additions & 25 deletions

File tree

javav2/example_code/inspector/src/main/java/com/java/inspector/InspectorActions.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -437,9 +437,10 @@ public CompletableFuture<String> createLowSeverityFilterAsync(
437437
/**
438438
* Lists all AWS Inspector findings of LOW severity asynchronously.
439439
*
440-
* @return CompletableFuture containing either "No findings found." or the ARNs of all LOW findings.
440+
* @return CompletableFuture containing a List of finding ARNs.
441+
* Returns an empty list if no LOW severity findings are found.
441442
*/
442-
public CompletableFuture<String> listLowSeverityFindingsAsync() {
443+
public CompletableFuture<ArrayList<String>> listLowSeverityFindingsAsync() {
443444
logger.info("Starting async LOW severity findings paginator…");
444445

445446
// Build a filter criteria for LOW severity.
@@ -471,13 +472,7 @@ public CompletableFuture<String> listLowSeverityFindingsAsync() {
471472
}
472473
})
473474
.thenRun(() -> logger.info("Successfully listed all LOW severity findings."))
474-
.thenApply(v -> {
475-
if (allArns.isEmpty()) {
476-
return "No LOW severity findings found.";
477-
} else {
478-
return String.join("\n", allArns);
479-
}
480-
})
475+
.thenApply(v -> new ArrayList<>(allArns)) // Return list instead of a formatted string
481476
.exceptionally(ex -> {
482477
Throwable cause = ex.getCause() != null ? ex.getCause() : ex;
483478
if (cause instanceof ValidationException ve) {
@@ -489,6 +484,7 @@ public CompletableFuture<String> listLowSeverityFindingsAsync() {
489484
throw new RuntimeException("Failed to list LOW severity findings", ex);
490485
});
491486
}
487+
492488
// snippet-end:[inspector.java2.list_findings.main]
493489

494490
// snippet-start:[inspector.java2.list_coverage.main]

javav2/example_code/inspector/src/main/java/com/java/inspector/InspectorScenario.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
import org.slf4j.Logger;
77
import org.slf4j.LoggerFactory;
8+
9+
import java.util.List;
810
import java.util.Scanner;
911

1012
// snippet-start:[inspector.java2_scenario.main]
@@ -95,19 +97,20 @@ public static void runScenario(InspectorActions actions) {
9597

9698
// Step 3
9799
logger.info(DASHES);
98-
logger.info("Step 3: Listing findings...");
99-
String allFindings = actions.listLowSeverityFindingsAsync().join();
100+
logger.info("Step 3: Listing LOW severity findings...");
100101

101-
if (!allFindings.equals("No findings found.")) {
102-
String[] arns = allFindings.split("\\r?\\n");
103-
String lastArn = arns[arns.length - 1];
102+
// Call the service method
103+
List<String> allFindings = actions.listLowSeverityFindingsAsync().join();
104104

105+
if (!allFindings.isEmpty()) {
106+
// Only proceed if there are findings
107+
String lastArn = allFindings.get(allFindings.size() - 1);
105108
logger.info("Look up details on: {}", lastArn);
106109
waitForInputToContinue();
107110
String details = actions.getFindingDetailsAsync(lastArn).join();
108111
logger.info(details);
109112
} else {
110-
logger.info("No findings found.");
113+
logger.info("No LOW severity findings found.");
111114
}
112115

113116
waitForInputToContinue();

javav2/example_code/inspector/src/test/java/InspectorTests.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.io.InputStream;
2222
import java.io.PrintStream;
2323
import java.util.Collections;
24+
import java.util.List;
2425

2526
import static org.junit.jupiter.api.Assertions.*;
2627

@@ -72,19 +73,23 @@ public void testInspectorActionsIntegration() {
7273

7374
inspectorActions.enableInspectorAsync(null).join();
7475

75-
String allFindings = inspectorActions.listLowSeverityFindingsAsync().join();
76-
// Check if any findings were returned
77-
if (allFindings == null || allFindings.startsWith("No LOW severity findings")) {
78-
logger.info("No LOW severity findings available. Skipping details lookup.");
76+
List<String> allFindings = inspectorActions.listLowSeverityFindingsAsync().join();
77+
78+
if (allFindings.isEmpty()) {
79+
logger.info("No LOW severity findings found.");
7980
} else {
80-
String[] arns = allFindings.split("\\r?\\n");
81-
String lastArn = arns[arns.length - 1];
81+
logger.info("Found {} LOW severity findings.", allFindings.size());
8282

83-
// Fetch details safely
84-
String details = inspectorActions.getFindingDetailsAsync(lastArn).join();
85-
logger.info("Details for last LOW severity finding:\n{}", details);
86-
}
83+
// Optionally, iterate over all findings to test getFindingDetailsAsync
84+
for (String arn : allFindings) {
85+
logger.info("Fetching details for finding ARN: {}", arn);
86+
String details = inspectorActions.getFindingDetailsAsync(arn).join();
8787

88+
// Check details are not empty/null
89+
assertNotNull(details, "Finding details should not be null");
90+
assertFalse(details.isEmpty(), "Finding details should not be empty");
91+
}
92+
}
8893

8994
maxResults = 5;
9095
inspectorActions.listCoverageAsync(maxResults).join();

0 commit comments

Comments
 (0)