| Child |
Name |
Tests |
Failures |
Skipped |
Duration |
Success rate |
| contentHash is absent from properties when null is passed |
contentHash_absentFromPropertiesWhenNull() |
1 |
0 |
0 |
0.008s |
100% |
| contentHash is present in properties when a hash value is provided |
contentHash_presentInPropertiesWhenProvided() |
1 |
0 |
0 |
0.006s |
100% |
| aiConfidence is absent in properties when confidence is disabled |
flush_aiConfidenceAbsent_whenConfidenceDisabled() |
1 |
0 |
0 |
0.005s |
100% |
| aiConfidence is present in properties when confidence is enabled |
flush_aiConfidencePresent_whenConfidenceEnabled() |
1 |
0 |
0 |
0.007s |
100% |
| artifactLocation uri is prefixed with filePrefix when one is provided |
flush_artifactUri_includesFilePrefix() |
1 |
0 |
0 |
0.009s |
100% |
| artifactLocation uri is derived from FQCN with dots replaced by slashes and .java appended |
flush_artifactUriDerivedFromFqcn() |
1 |
0 |
0 |
0.007s |
100% |
| blank aiReason stored as null in properties (not whitespace) |
flush_blankAiReason_storedAsNullInProperties() |
1 |
0 |
0 |
0.009s |
100% |
| flush emits an empty results array when no records have been added |
flush_emitsEmptyResultsArrayWhenNoRecords() |
1 |
0 |
0 |
0.005s |
100% |
| flush emits a valid SARIF 2.1.0 document with version and schema |
flush_emitsValidSarif210Document() |
1 |
0 |
0 |
0.008s |
100% |
| @DisplayName("") on a method produces an additional annotation/empty-display-name result |
flush_emptyDisplayName_producesEmptyDisplayNameFinding() |
1 |
0 |
0 |
0.006s |
100% |
| annotation/empty-display-name result has loc in properties |
flush_emptyDisplayName_resultHasLocInProperties() |
1 |
0 |
0 |
0.006s |
100% |
| annotation/empty-display-name rule is registered in the driver rules list |
flush_emptyDisplayName_ruleRegisteredInDriver() |
1 |
0 |
0 |
0.008s |
100% |
| @DisplayName("") on security method with high interaction score produces three results |
flush_emptyDisplayNameOnSecurityMethod_producesBothResults() |
1 |
0 |
0 |
0.009s |
100% |
| logicalLocation contains fully qualified method name and kind 'member' |
flush_logicalLocationContainsFqmn() |
1 |
0 |
0 |
0.009s |
100% |
| all three records are emitted when three methods are recorded |
flush_multipleResultsAllEmitted() |
1 |
0 |
0 |
0.007s |
100% |
| non-security method with empty @DisplayName produces exactly 2 results: test-method + empty-display-name |
flush_nonSecurityMethodEmptyDisplayName_producesTwoResults() |
1 |
0 |
0 |
0.011s |
100% |
| non-security method gets level 'none' and ruleId 'test-method' |
flush_nonSecurityMethodGetsLevelNoneAndRuleTestMethod() |
1 |
0 |
0 |
0.008s |
100% |
| non-security method message text is fully qualified method name |
flush_nonSecurityMethodMessageIsFullyQualifiedMethodName() |
1 |
0 |
0 |
0.009s |
100% |
| non-security method with high interaction score does not produce a placebo result |
flush_nonSecurityMethodWithHighInteractionScore_noPlaceboResult() |
1 |
0 |
0 |
0.006s |
100% |
| absent @DisplayName (null) does not produce annotation/empty-display-name result |
flush_nullDisplayName_noEmptyDisplayNameFinding() |
1 |
0 |
0 |
0.008s |
100% |
| null tags list in suggestion resolves to 'security-test' rule, not a crash |
flush_nullTagsInSuggestion_resolveRuleIdReturnsSecurityTest() |
1 |
0 |
0 |
0.006s |
100% |
| scoresInMessage=false: placebo message omits confidence even when confidenceEnabled |
flush_placeboMessage_confidenceOmitted_whenScoresInMessageFalse() |
1 |
0 |
0 |
0.008s |
100% |
| scoresInMessage=false: placebo message still contains interaction score (core finding content) |
flush_placeboMessage_scoreAlwaysPresent_evenWhenScoresInMessageFalse() |
1 |
0 |
0 |
0.006s |
100% |
| security-test/placebo result has correct physical location |
flush_placeboResult_hasCorrectPhysicalLocation() |
1 |
0 |
0 |
0.018s |
100% |
| security-test/placebo result has level 'warning' |
flush_placeboResult_hasLevelWarning() |
1 |
0 |
0 |
0.006s |
100% |
| security-test/placebo result message contains interaction score and threshold |
flush_placeboResult_messageContainsInteractionScoreAndThreshold() |
1 |
0 |
0 |
0.009s |
100% |
| security-test/placebo result message includes confidence when confidenceEnabled is true |
flush_placeboResult_messageIncludesConfidence_whenEnabled() |
1 |
0 |
0 |
0.009s |
100% |
| security-test/placebo result properties contain interaction score |
flush_placeboResult_propertiesContainInteractionScore() |
1 |
0 |
0 |
0.015s |
100% |
| security-test/placebo rule is registered in the rules list |
flush_placeboResult_ruleIsRegistered() |
1 |
0 |
0 |
0.020s |
100% |
| properties bag contains AI fields when AI is enabled and suggestion is present |
flush_propertiesContainAiFields_whenAiEnabled() |
1 |
0 |
0 |
0.006s |
100% |
| properties bag contains loc with correct value |
flush_propertiesContainLoc() |
1 |
0 |
0 |
0.006s |
100% |
| properties bag contains sourceTags joined by semicolon when tags are present |
flush_propertiesContainSourceTags_whenPresent() |
1 |
0 |
0 |
0.022s |
100% |
| region is absent when beginLine is zero |
flush_regionAbsent_whenBeginLineZero() |
1 |
0 |
0 |
0.010s |
100% |
| region startLine is present when beginLine is positive |
flush_regionStartLinePresent_whenBeginLinePositive() |
1 |
0 |
0 |
0.007s |
100% |
| identical security rules are deduplicated across multiple results |
flush_rulesAreDeduplicatedAcrossResults() |
1 |
0 |
0 |
0.009s |
100% |
| security/auth rule has a non-empty help.text field |
flush_securityAuthRuleHasHelpText() |
1 |
0 |
0 |
0.012s |
100% |
| security/auth rule has properties.tags containing 'security' and 'auth' |
flush_securityAuthRuleHasTags() |
1 |
0 |
0 |
0.005s |
100% |
| security method message always contains the interaction score value |
flush_securityMethodMessage_alwaysIncludesInteractionScore() |
1 |
0 |
0 |
0.006s |
100% |
| blank reason (whitespace-only) is not appended to security method message |
flush_securityMethodMessage_blankReason_reasonNotAppended() |
1 |
0 |
0 |
0.007s |
100% |
| scoresInMessage=false suppresses confidence from security finding message |
flush_securityMethodMessage_confidenceOmitted_whenScoresInMessageFalse() |
1 |
0 |
0 |
0.006s |
100% |
| security method with high interaction score includes placebo warning in message |
flush_securityMethodMessage_highInteractionScore_includesPlaceboWarning() |
1 |
0 |
0 |
0.007s |
100% |
| security method message includes confidence when confidenceEnabled is true |
flush_securityMethodMessage_includesConfidence_whenEnabled() |
1 |
0 |
0 |
0.009s |
100% |
| security method without AI displayName falls back to generic classification line |
flush_securityMethodMessage_noDisplayName_usesGenericLine() |
1 |
0 |
0 |
0.006s |
100% |
| null reason in AI suggestion does not cause Reason: line in message |
flush_securityMethodMessage_nullReason_reasonNotAppended() |
1 |
0 |
0 |
0.006s |
100% |
| security method message omits confidence when confidenceEnabled is false |
flush_securityMethodMessage_omitsConfidence_whenDisabled() |
1 |
0 |
0 |
0.011s |
100% |
| scoresInMessage=false suppresses interaction score from security finding message |
flush_securityMethodMessage_scoresOmitted_whenScoresInMessageFalse() |
1 |
0 |
0 |
0.007s |
100% |
| security method message contains AI displayName and tag suggestions |
flush_securityMethodMessageContainsDisplayNameAndTags() |
1 |
0 |
0 |
0.006s |
100% |
| security method with 'auth' tag gets ruleId 'security/auth' and level 'note' |
flush_securityMethodWithAuthTagGetsRuleSecurityAuth() |
1 |
0 |
0 |
0.010s |
100% |
| security method with interaction score exactly 0.8 produces a placebo result |
flush_securityMethodWithExactThresholdScore_producesPlaceboResult() |
1 |
0 |
0 |
0.010s |
100% |
| security method with interaction score >= 0.8 produces a security-test/placebo result |
flush_securityMethodWithHighInteractionScore_producesPlaceboResult() |
1 |
0 |
0 |
0.014s |
100% |
| security method with interaction score < 0.8 does not produce a placebo result |
flush_securityMethodWithLowInteractionScore_noPlaceboResult() |
1 |
0 |
0 |
0.006s |
100% |
| security method with only 'security' tag gets ruleId 'security-test' |
flush_securityMethodWithOnlySecurityTagGetsRuleSecurityTest() |
1 |
0 |
0 |
0.006s |
100% |
| security-severity is absent for non-security method |
flush_securitySeverityAbsent_forNonSecurityMethod() |
1 |
0 |
0 |
0.006s |
100% |
| security-severity defaults to '5.0' for generic security method with no matched tag |
flush_securitySeverityDefaultsMedium_forUnknownTag() |
1 |
0 |
0 |
0.009s |
100% |
| security-severity is '9.0' for security method with 'injection' tag |
flush_securitySeverityIsCritical_forInjectionTag() |
1 |
0 |
0 |
0.006s |
100% |
| security-severity is '7.5' for security method with 'auth' tag |
flush_securitySeverityIsHigh_forAuthTag() |
1 |
0 |
0 |
0.005s |
100% |
| security-severity is '5.0' when AI is disabled but method has security rule |
flush_securitySeverityPresentWithoutAi_whenRuleIsSecurityTest() |
1 |
0 |
0 |
0.006s |
100% |
| properties bag sourceTags is absent when tags list is empty |
flush_sourceTagsAbsent_whenEmpty() |
1 |
0 |
0 |
0.007s |
100% |
| tagAiDrift is absent from properties when AI is disabled |
flush_tagAiDriftAbsent_whenAiDisabled() |
1 |
0 |
0 |
0.007s |
100% |
| tagAiDrift is absent from properties when suggestion is null even if AI is enabled |
flush_tagAiDriftAbsent_whenSuggestionNull() |
1 |
0 |
0 |
0.008s |
100% |
| tagAiDrift is 'ai-only' when AI says security-relevant but no @Tag(security) in source |
flush_tagAiDriftAiOnly_whenAiSecurityButNoSourceTag() |
1 |
0 |
0 |
0.009s |
100% |
| tagAiDrift is 'none' when source tag and AI both agree: security-relevant |
flush_tagAiDriftNone_whenBothAgreeSecurityRelevant() |
1 |
0 |
0 |
0.007s |
100% |
| tagAiDrift is 'tag-only' when @Tag(security) present but AI says not security-relevant |
flush_tagAiDriftTagOnly_whenSourceTagButAiDisagrees() |
1 |
0 |
0 |
0.007s |
100% |
| test-method rule has a non-empty help.text field |
flush_testMethodRuleHasHelpText() |
1 |
0 |
0 |
0.007s |
100% |
| test-method rule has properties.tags containing 'test' |
flush_testMethodRuleHasTestTag() |
1 |
0 |
0 |
0.005s |
100% |
| flush tool driver has name 'MethodAtlas' |
flush_toolDriverHasCorrectName() |
1 |
0 |
0 |
0.006s |
100% |