Skip to content

Commit 3710689

Browse files
Default inspector adds a summary of error/warning/info/ignore counts as workspace properties.
1 parent 768ea22 commit 3710689

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
- structurizr-dsl: Adds support for removing relationships between software system instance/container instances, with a view to redefining them via infrastructure nodes.
1515
- structurizr-dsl: Adds support for a `jump` property on relationship styles.
1616
- structurizr-inspection: Adds a way to disable inspections via a workspace property named `structurizr.inspection` (`false` to disable).
17+
- structurizr-inspection: Default inspector adds a summary of error/warning/info/ignore counts as workspace properties.
1718

1819
## v4.1.0 (28th May 2025)
1920

structurizr-inspection/src/main/java/com/structurizr/inspection/DefaultInspector.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,28 @@
1010
import com.structurizr.model.*;
1111
import com.structurizr.view.*;
1212

13+
import java.util.List;
14+
1315
public class DefaultInspector extends Inspector {
1416

17+
private static final String INSPECTION_SUMMARY_NUMBER_OF_ERROR = "structurizr.inspection.error";
18+
private static final String INSPECTION_SUMMARY_NUMBER_OF_WARNING = "structurizr.inspection.warning";
19+
private static final String INSPECTION_SUMMARY_NUMBER_OF_INFO = "structurizr.inspection.info";
20+
private static final String INSPECTION_SUMMARY_NUMBER_OF_IGNORE = "structurizr.inspection.ignore";
21+
1522
public DefaultInspector(Workspace workspace) {
1623
super(workspace);
1724

1825
if (!"false".equalsIgnoreCase(workspace.getProperties().get("structurizr.inspection"))) {
1926
runWorkspaceInspections();
2027
runModelInspections();
2128
runViewInspections();
29+
30+
List<Violation> violations = getViolations();
31+
workspace.addProperty(INSPECTION_SUMMARY_NUMBER_OF_ERROR, "" + violations.stream().filter(r -> r.getSeverity() == Severity.ERROR).count());
32+
workspace.addProperty(INSPECTION_SUMMARY_NUMBER_OF_WARNING, "" + violations.stream().filter(r -> r.getSeverity() == Severity.WARNING).count());
33+
workspace.addProperty(INSPECTION_SUMMARY_NUMBER_OF_INFO, "" + violations.stream().filter(r -> r.getSeverity() == Severity.INFO).count());
34+
workspace.addProperty(INSPECTION_SUMMARY_NUMBER_OF_IGNORE, "" + violations.stream().filter(r -> r.getSeverity() == Severity.IGNORE).count());
2235
}
2336
}
2437

structurizr-inspection/src/test/java/com/structurizr/inspection/DefaultInspectorTests.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@
99
import java.util.List;
1010

1111
import static org.junit.jupiter.api.Assertions.assertEquals;
12+
import static org.junit.jupiter.api.Assertions.assertNull;
1213

1314
public class DefaultInspectorTests {
1415

1516
@Test
1617
void test_EmptyWorkspace() {
17-
DefaultInspector inspector = new DefaultInspector(new Workspace("Name", "Description"));
18+
Workspace workspace = new Workspace("Name", "Description");
19+
DefaultInspector inspector = new DefaultInspector(workspace);
1820
List<Violation> violations = inspector.getViolations();
1921

2022
assertEquals(9, inspector.getNumberOfInspections());
@@ -34,6 +36,11 @@ void test_EmptyWorkspace() {
3436
assertEquals(Severity.ERROR, violation.getSeverity());
3537
assertEquals("views.empty", violation.getType());
3638
assertEquals("This workspace has no views.", violation.getMessage());
39+
40+
assertEquals("3", workspace.getProperties().get("structurizr.inspection.error"));
41+
assertEquals("0", workspace.getProperties().get("structurizr.inspection.warning"));
42+
assertEquals("0", workspace.getProperties().get("structurizr.inspection.info"));
43+
assertEquals("0", workspace.getProperties().get("structurizr.inspection.ignore"));
3744
}
3845

3946
@Test
@@ -46,6 +53,10 @@ void test_EmptyWorkspace_WhenInspectionsAreDisabled() {
4653

4754
assertEquals(0, inspector.getNumberOfInspections());
4855
assertEquals(0, violations.size());
56+
assertNull(workspace.getProperties().get("structurizr.inspection.error"));
57+
assertNull(workspace.getProperties().get("structurizr.inspection.warning"));
58+
assertNull(workspace.getProperties().get("structurizr.inspection.info"));
59+
assertNull(workspace.getProperties().get("structurizr.inspection.ignore"));
4960
}
5061

5162
@Test

0 commit comments

Comments
 (0)