Verification

This section documents the test cases and their traceability to requirements. It is automatically generated from the source code.

Test Case: AuthorizeErrorBodyFollowsOAuth2Format TEST_AuthHandlersAuthorizeTest_AuthorizeErrorBodyFollowsOAuth2Format
status: verified
verifies: REQ_INTEROP_086

Verify that error responses follow RFC 6749 OAuth2 error format

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L182 (Test: AuthorizeErrorBodyFollowsOAuth2Format)

Test Case: ReturnsBadRequestForEmptyClientId TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForEmptyClientId
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L140 (Test: ReturnsBadRequestForEmptyClientId)

Test Case: ReturnsBadRequestForEmptyClientSecret TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForEmptyClientSecret
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L168 (Test: ReturnsBadRequestForEmptyClientSecret)

Test Case: ReturnsBadRequestForMissingClientId TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForMissingClientId
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L126 (Test: ReturnsBadRequestForMissingClientId)

Test Case: ReturnsBadRequestForMissingClientSecret TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForMissingClientSecret
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L154 (Test: ReturnsBadRequestForMissingClientSecret)

Test Case: ReturnsBadRequestForWrongGrantType TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForWrongGrantType
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L112 (Test: ReturnsBadRequestForWrongGrantType)

Test Case: AuthorizeErrorBodyContainsErrorCode TEST_AuthHandlersDisabledTest_AuthorizeErrorBodyContainsErrorCode
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L70 (Test: AuthorizeErrorBodyContainsErrorCode)

Test Case: AuthorizeReturns404WhenAuthDisabled TEST_AuthHandlersDisabledTest_AuthorizeReturns404WhenAuthDisabled
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L62 (Test: AuthorizeReturns404WhenAuthDisabled)

Test Case: RevokeReturns404WhenAuthDisabled TEST_AuthHandlersDisabledTest_RevokeReturns404WhenAuthDisabled
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L88 (Test: RevokeReturns404WhenAuthDisabled)

Test Case: TokenReturns404WhenAuthDisabled TEST_AuthHandlersDisabledTest_TokenReturns404WhenAuthDisabled
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L80 (Test: TokenReturns404WhenAuthDisabled)

Test Case: ReturnsBadRequestForInvalidJson TEST_AuthHandlersRevokeTest_ReturnsBadRequestForInvalidJson
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L269 (Test: ReturnsBadRequestForInvalidJson)

Test Case: ReturnsBadRequestForMissingTokenField TEST_AuthHandlersRevokeTest_ReturnsBadRequestForMissingTokenField
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L284 (Test: ReturnsBadRequestForMissingTokenField)

Test Case: ReturnsBadRequestForNonStringToken TEST_AuthHandlersRevokeTest_ReturnsBadRequestForNonStringToken
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L298 (Test: ReturnsBadRequestForNonStringToken)

Test Case: ReturnsBadRequestForEmptyRefreshToken TEST_AuthHandlersTokenTest_ReturnsBadRequestForEmptyRefreshToken
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L240 (Test: ReturnsBadRequestForEmptyRefreshToken)

Test Case: ReturnsBadRequestForMissingRefreshToken TEST_AuthHandlersTokenTest_ReturnsBadRequestForMissingRefreshToken
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L226 (Test: ReturnsBadRequestForMissingRefreshToken)

Test Case: ReturnsBadRequestForWrongGrantType TEST_AuthHandlersTokenTest_ReturnsBadRequestForWrongGrantType
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L212 (Test: ReturnsBadRequestForWrongGrantType)

Test Case: AuthorizeReturnsTokensForValidCredentials TEST_AuthHandlersWithManagerTest_AuthorizeReturnsTokensForValidCredentials
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L349 (Test: AuthorizeReturnsTokensForValidCredentials)

Test Case: AuthorizeReturnsUnauthorizedForInvalidCredentials TEST_AuthHandlersWithManagerTest_AuthorizeReturnsUnauthorizedForInvalidCredentials
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L361 (Test: AuthorizeReturnsUnauthorizedForInvalidCredentials)

Test Case: RevokeRevokesRefreshTokenForSubsequentTokenRequest TEST_AuthHandlersWithManagerTest_RevokeRevokesRefreshTokenForSubsequentTokenRequest
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L401 (Test: RevokeRevokesRefreshTokenForSubsequentTokenRequest)

Test Case: TokenReturnsNewAccessTokenForValidRefreshToken TEST_AuthHandlersWithManagerTest_TokenReturnsNewAccessTokenForValidRefreshToken
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L373 (Test: TokenReturnsNewAccessTokenForValidRefreshToken)

Test Case: TokenReturnsUnauthorizedForInvalidRefreshToken TEST_AuthHandlersWithManagerTest_TokenReturnsUnauthorizedForInvalidRefreshToken
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L390 (Test: TokenReturnsUnauthorizedForInvalidRefreshToken)

Test Case: RS256WithMissingPrivateKeyThrows TEST_AuthManagerRS256Test_RS256WithMissingPrivateKeyThrows
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L470 (Test: RS256WithMissingPrivateKeyThrows)

Test Case: AuthenticateValidCredentials TEST_AuthManagerTest_AuthenticateValidCredentials
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L167 (Test: AuthenticateValidCredentials)

Test Case: AuthorizeViewerCanRead TEST_AuthManagerTest_AuthorizeViewerCanRead
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L340 (Test: AuthorizeViewerCanRead)

Test Case: DisabledClientTokenBecomesInvalid TEST_AuthManagerTest_DisabledClientTokenBecomesInvalid
status: verified
verifies: REQ_INTEROP_087

Authenticate first

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L516 (Test: DisabledClientTokenBecomesInvalid)

Test Case: RefreshAccessToken TEST_AuthManagerTest_RefreshAccessToken
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L277 (Test: RefreshAccessToken)

Test Case: RefreshRevocationPropagatestoAccessToken TEST_AuthManagerTest_RefreshRevocationPropagatestoAccessToken
status: verified
verifies: REQ_INTEROP_087

Get tokens

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L320 (Test: RefreshRevocationPropagatestoAccessToken)

Test Case: RefreshWithAccessTokenFails TEST_AuthManagerTest_RefreshWithAccessTokenFails
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L264 (Test: RefreshWithAccessTokenFails)

Test Case: ValidateTokenWithCorrectType TEST_AuthManagerTest_ValidateTokenWithCorrectType
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L230 (Test: ValidateTokenWithCorrectType)

Test Case: ValidateTokenWithWrongTypeRejectsToken TEST_AuthManagerTest_ValidateTokenWithWrongTypeRejectsToken
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L247 (Test: ValidateTokenWithWrongTypeRejectsToken)

Test Case: ValidateValidToken TEST_AuthManagerTest_ValidateValidToken
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L194 (Test: ValidateValidToken)

Test Case: AuthEndpointsNeverRequireAuth TEST_AuthMiddlewareTest_AuthEndpointsNeverRequireAuth
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L970 (Test: AuthEndpointsNeverRequireAuth)

Test Case: DisabledMiddlewareAllowsAll TEST_AuthMiddlewareTest_DisabledMiddlewareAllowsAll
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L981 (Test: DisabledMiddlewareAllowsAll)

Test Case: ExtractBearerToken_CaseInsensitive TEST_AuthMiddlewareTest_ExtractBearerToken_CaseInsensitive
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L876 (Test: ExtractBearerToken_CaseInsensitive)

Test Case: ExtractBearerToken_EmptyHeader TEST_AuthMiddlewareTest_ExtractBearerToken_EmptyHeader
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L883 (Test: ExtractBearerToken_EmptyHeader)

Test Case: ExtractBearerToken_EmptyToken TEST_AuthMiddlewareTest_ExtractBearerToken_EmptyToken
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L895 (Test: ExtractBearerToken_EmptyToken)

Test Case: ExtractBearerToken_InvalidPrefix TEST_AuthMiddlewareTest_ExtractBearerToken_InvalidPrefix
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L889 (Test: ExtractBearerToken_InvalidPrefix)

Test Case: ExtractBearerToken_ValidToken TEST_AuthMiddlewareTest_ExtractBearerToken_ValidToken
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L869 (Test: ExtractBearerToken_ValidToken)

Test Case: ProcessGetRequestWithoutAuth TEST_AuthMiddlewareTest_ProcessGetRequestWithoutAuth
status: verified
verifies: REQ_INTEROP_086

GET requests don’t require auth when require_auth_for=WRITE

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L901 (Test: ProcessGetRequestWithoutAuth)

Test Case: ProcessWriteRequestWithInsufficientPermissions TEST_AuthMiddlewareTest_ProcessWriteRequestWithInsufficientPermissions
status: verified
verifies: REQ_INTEROP_086

Authenticate as viewer

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L953 (Test: ProcessWriteRequestWithInsufficientPermissions)

Test Case: ProcessWriteRequestWithInvalidToken TEST_AuthMiddlewareTest_ProcessWriteRequestWithInvalidToken
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L940 (Test: ProcessWriteRequestWithInvalidToken)

Test Case: ProcessWriteRequestWithValidToken TEST_AuthMiddlewareTest_ProcessWriteRequestWithValidToken
status: verified

Authenticate first to get a valid token

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L924 (Test: ProcessWriteRequestWithValidToken)

Test Case: ProcessWriteRequestWithoutAuth TEST_AuthMiddlewareTest_ProcessWriteRequestWithoutAuth
status: verified
verifies: REQ_INTEROP_086

POST requests require auth when require_auth_for=WRITE

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L912 (Test: ProcessWriteRequestWithoutAuth)

Test Case: AllAuthPolicyAlwaysRequiresAuth TEST_AuthRequirementPolicyTest_AllAuthPolicyAlwaysRequiresAuth
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1027 (Test: AllAuthPolicyAlwaysRequiresAuth)

Test Case: ConfigurablePolicyExactMatch TEST_AuthRequirementPolicyTest_ConfigurablePolicyExactMatch
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1060 (Test: ConfigurablePolicyExactMatch)

Test Case: ConfigurablePolicyLongestMatchWins TEST_AuthRequirementPolicyTest_ConfigurablePolicyLongestMatchWins
status: verified
verifies: REQ_INTEROP_086

Create a policy where /api/v1/public is public, but /api/v1/public/secret/* requires auth

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1101 (Test: ConfigurablePolicyLongestMatchWins)

Test Case: ConfigurablePolicyMultipleWildcards TEST_AuthRequirementPolicyTest_ConfigurablePolicyMultipleWildcards
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1083 (Test: ConfigurablePolicyMultipleWildcards)

Test Case: ConfigurablePolicyUnknownPathsRequireAuth TEST_AuthRequirementPolicyTest_ConfigurablePolicyUnknownPathsRequireAuth
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1092 (Test: ConfigurablePolicyUnknownPathsRequireAuth)

Test Case: ConfigurablePolicyWildcardMatch TEST_AuthRequirementPolicyTest_ConfigurablePolicyWildcardMatch
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1070 (Test: ConfigurablePolicyWildcardMatch)

Test Case: FactoryCreatesAllAuthFromConfig TEST_AuthRequirementPolicyTest_FactoryCreatesAllAuthFromConfig
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1144 (Test: FactoryCreatesAllAuthFromConfig)

Test Case: FactoryCreatesNoAuthPolicy TEST_AuthRequirementPolicyTest_FactoryCreatesNoAuthPolicy
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1118 (Test: FactoryCreatesNoAuthPolicy)

Test Case: FactoryCreatesWriteOnlyFromConfig TEST_AuthRequirementPolicyTest_FactoryCreatesWriteOnlyFromConfig
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1130 (Test: FactoryCreatesWriteOnlyFromConfig)

Test Case: NoAuthPolicyNeverRequiresAuth TEST_AuthRequirementPolicyTest_NoAuthPolicyNeverRequiresAuth
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1017 (Test: NoAuthPolicyNeverRequiresAuth)

status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1158 (Test: PolicyDescriptions)

Test Case: WriteOnlyPolicyForGetRequests TEST_AuthRequirementPolicyTest_WriteOnlyPolicyForGetRequests
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1037 (Test: WriteOnlyPolicyForGetRequests)

Test Case: WriteOnlyPolicyForWriteRequests TEST_AuthRequirementPolicyTest_WriteOnlyPolicyForWriteRequests
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1049 (Test: WriteOnlyPolicyForWriteRequests)

Test Case: ParseRequestFormUrlEncoded TEST_AuthorizeRequestTest_ParseRequestFormUrlEncoded
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L799 (Test: ParseRequestFormUrlEncoded)

Test Case: ParseRequestInvalidContentType TEST_AuthorizeRequestTest_ParseRequestInvalidContentType
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L811 (Test: ParseRequestInvalidContentType)

Test Case: ParseRequestInvalidJson TEST_AuthorizeRequestTest_ParseRequestInvalidJson
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L821 (Test: ParseRequestInvalidJson)

Test Case: ParseRequestJson TEST_AuthorizeRequestTest_ParseRequestJson
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L787 (Test: ParseRequestJson)

Test Case: ParseRequestJsonWithCharset TEST_AuthorizeRequestTest_ParseRequestJsonWithCharset
status: verified
verifies: REQ_INTEROP_086

Content-Type may include charset

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L831 (Test: ParseRequestJsonWithCharset)

Test Case: DescriptorToJsonConversion TEST_BulkDataHandlersTest_DescriptorToJsonConversion
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L105 (Test: DescriptorToJsonConversion)

Test Case: DescriptorToJsonWithMetadata TEST_BulkDataHandlersTest_DescriptorToJsonWithMetadata
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L132 (Test: DescriptorToJsonWithMetadata)

Test Case: DescriptorToJsonWithoutDescription TEST_BulkDataHandlersTest_DescriptorToJsonWithoutDescription
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L158 (Test: DescriptorToJsonWithoutDescription)

Test Case: FormatTimestampNsEpoch TEST_BulkDataHandlersTest_FormatTimestampNsEpoch
status: verified
verifies: REQ_INTEROP_071

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L81 (Test: FormatTimestampNsEpoch)

Test Case: FormatTimestampNsNegativeFallback TEST_BulkDataHandlersTest_FormatTimestampNsNegativeFallback
status: verified
verifies: REQ_INTEROP_071

Negative timestamps should return fallback

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L95 (Test: FormatTimestampNsNegativeFallback)

Test Case: FormatTimestampNsValidTimestamp TEST_BulkDataHandlersTest_FormatTimestampNsValidTimestamp
status: verified
verifies: REQ_INTEROP_071

2026-02-08T00:00:00.000Z

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L71 (Test: FormatTimestampNsValidTimestamp)

Test Case: FormatTimestampNsWithMilliseconds TEST_BulkDataHandlersTest_FormatTimestampNsWithMilliseconds
status: verified
verifies: REQ_INTEROP_071

1 second + 123 ms

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L87 (Test: FormatTimestampNsWithMilliseconds)

Test Case: GetRosbagMimetypeCasesSensitive TEST_BulkDataHandlersTest_GetRosbagMimetypeCasesSensitive
status: verified
verifies: REQ_INTEROP_071

MCAP should not match mcap (case sensitive)

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L62 (Test: GetRosbagMimetypeCasesSensitive)

Test Case: GetRosbagMimetypeDb3 TEST_BulkDataHandlersTest_GetRosbagMimetypeDb3
status: verified
verifies: REQ_INTEROP_071

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L47 (Test: GetRosbagMimetypeDb3)

Test Case: GetRosbagMimetypeEmpty TEST_BulkDataHandlersTest_GetRosbagMimetypeEmpty
status: verified
verifies: REQ_INTEROP_071

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L57 (Test: GetRosbagMimetypeEmpty)

Test Case: GetRosbagMimetypeMcap TEST_BulkDataHandlersTest_GetRosbagMimetypeMcap
status: verified
verifies: REQ_INTEROP_071

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L37 (Test: GetRosbagMimetypeMcap)

Test Case: GetRosbagMimetypeSqlite3 TEST_BulkDataHandlersTest_GetRosbagMimetypeSqlite3
status: verified
verifies: REQ_INTEROP_071

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L42 (Test: GetRosbagMimetypeSqlite3)

Test Case: GetRosbagMimetypeUnknown TEST_BulkDataHandlersTest_GetRosbagMimetypeUnknown
status: verified
verifies: REQ_INTEROP_071

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L52 (Test: GetRosbagMimetypeUnknown)

Test Case: PayloadTooLargeErrorCodeDefined TEST_BulkDataHandlersTest_PayloadTooLargeErrorCodeDefined
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L188 (Test: PayloadTooLargeErrorCodeDefined)

Test Case: EmptyCategories TEST_BulkDataStoreTest_EmptyCategories
status: verified
verifies: REQ_INTEROP_071

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L221 (Test: EmptyCategories)

Test Case: GenerateUniqueIds TEST_BulkDataStoreTest_GenerateUniqueIds
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L185 (Test: GenerateUniqueIds)

Test Case: GetFilePath TEST_BulkDataStoreTest_GetFilePath
status: verified
verifies: REQ_INTEROP_073

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L168 (Test: GetFilePath)

Test Case: GetFilePathNonexistent TEST_BulkDataStoreTest_GetFilePathNonexistent
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L340 (Test: GetFilePathNonexistent)

Test Case: IdFormatIsReadable TEST_BulkDataStoreTest_IdFormatIsReadable
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L327 (Test: IdFormatIsReadable)

Test Case: ListCategories TEST_BulkDataStoreTest_ListCategories
status: verified
verifies: REQ_INTEROP_071

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L123 (Test: ListCategories)

Test Case: ListItemsEmptyCategory TEST_BulkDataStoreTest_ListItemsEmptyCategory
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L271 (Test: ListItemsEmptyCategory)

Test Case: ListItemsInCategory TEST_BulkDataStoreTest_ListItemsInCategory
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L104 (Test: ListItemsInCategory)

Test Case: ListItemsWrongEntity TEST_BulkDataStoreTest_ListItemsWrongEntity
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L279 (Test: ListItemsWrongEntity)

Test Case: MaxUploadSizeEnforced TEST_BulkDataStoreTest_MaxUploadSizeEnforced
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L198 (Test: MaxUploadSizeEnforced)

Test Case: MaxUploadZeroMeansUnlimited TEST_BulkDataStoreTest_MaxUploadZeroMeansUnlimited
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L348 (Test: MaxUploadZeroMeansUnlimited)

Test Case: PathTraversalRejected TEST_BulkDataStoreTest_PathTraversalRejected
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L229 (Test: PathTraversalRejected)

Test Case: RemoveItem TEST_BulkDataStoreTest_RemoveItem
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L136 (Test: RemoveItem)

Test Case: RemoveNonexistent TEST_BulkDataStoreTest_RemoveNonexistent
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L159 (Test: RemoveNonexistent)

Test Case: RemoveThenListDoesNotInclude TEST_BulkDataStoreTest_RemoveThenListDoesNotInclude
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L311 (Test: RemoveThenListDoesNotInclude)

Test Case: StoreAndRetrieve TEST_BulkDataStoreTest_StoreAndRetrieve
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L48 (Test: StoreAndRetrieve)

Test Case: StoreAtomicWriteDescriptorExists TEST_BulkDataStoreTest_StoreAtomicWriteDescriptorExists
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L248 (Test: StoreAtomicWriteDescriptorExists)

Test Case: StoreCreatesDirectoryStructure TEST_BulkDataStoreTest_StoreCreatesDirectoryStructure
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L71 (Test: StoreCreatesDirectoryStructure)

Test Case: StoreEmptyFile TEST_BulkDataStoreTest_StoreEmptyFile
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L289 (Test: StoreEmptyFile)

Test Case: StoreEmptyFilename TEST_BulkDataStoreTest_StoreEmptyFilename
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L302 (Test: StoreEmptyFilename)

Test Case: StoreLargeFile TEST_BulkDataStoreTest_StoreLargeFile
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L356 (Test: StoreLargeFile)

Test Case: StoreUnknownCategoryRejected TEST_BulkDataStoreTest_StoreUnknownCategoryRejected
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L262 (Test: StoreUnknownCategoryRejected)

Test Case: StoreWithMetadata TEST_BulkDataStoreTest_StoreWithMetadata
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L84 (Test: StoreWithMetadata)

Test Case: UnknownCategory TEST_BulkDataStoreTest_UnknownCategory
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L212 (Test: UnknownCategory)

Test Case: EntityCollectionDetailPathHasParameters TEST_CapabilityGeneratorTest_EntityCollectionDetailPathHasParameters
status: verified
verifies: REQ_INTEROP_002

Entity collection specs use template paths (/apps/{app_id}), so they should include path parameters for the entity ID

Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L392 (Test: EntityCollectionDetailPathHasParameters)

Test Case: GenerateEntityCollectionReturnsSpec TEST_CapabilityGeneratorTest_GenerateEntityCollectionReturnsSpec
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L261 (Test: GenerateEntityCollectionReturnsSpec)

Test Case: GenerateInvalidPathReturnsNullopt TEST_CapabilityGeneratorTest_GenerateInvalidPathReturnsNullopt
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L241 (Test: GenerateInvalidPathReturnsNullopt)

Test Case: GenerateRootContainsEntityCollections TEST_CapabilityGeneratorTest_GenerateRootContainsEntityCollections
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L175 (Test: GenerateRootContainsEntityCollections)

Test Case: GenerateRootContainsEntityDetailPaths TEST_CapabilityGeneratorTest_GenerateRootContainsEntityDetailPaths
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L188 (Test: GenerateRootContainsEntityDetailPaths)

Test Case: GenerateRootContainsGlobalFaults TEST_CapabilityGeneratorTest_GenerateRootContainsGlobalFaults
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L201 (Test: GenerateRootContainsGlobalFaults)

Test Case: GenerateRootContainsHealthEndpoint TEST_CapabilityGeneratorTest_GenerateRootContainsHealthEndpoint
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L153 (Test: GenerateRootContainsHealthEndpoint)

Test Case: GenerateRootContainsVersionInfo TEST_CapabilityGeneratorTest_GenerateRootContainsVersionInfo
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L164 (Test: GenerateRootContainsVersionInfo)

Test Case: GenerateRootReturnsValidOpenApiSpec TEST_CapabilityGeneratorTest_GenerateRootReturnsValidOpenApiSpec
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L125 (Test: GenerateRootReturnsValidOpenApiSpec)

Test Case: CgroupV1FormatNotSupported TEST_CgroupReader_CgroupV1FormatNotSupported
status: verified
verifies: REQ_INTEROP_003

cgroup v1 uses “hierarchy-ID:controller-list:cgroup-path” format. Our reader only supports cgroup v2 (“0::<path>”). This test documents the intentional limitation.

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L223 (Test: CgroupV1FormatNotSupported)

Test Case: ExtractContainerdContainerId TEST_CgroupReader_ExtractContainerdContainerId
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L42 (Test: ExtractContainerdContainerId)

Test Case: ExtractDockerContainerId TEST_CgroupReader_ExtractDockerContainerId
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L24 (Test: ExtractDockerContainerId)

Test Case: ExtractDockerOldStyleContainerId TEST_CgroupReader_ExtractDockerOldStyleContainerId
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L216 (Test: ExtractDockerOldStyleContainerId)

Test Case: ExtractNoContainerId TEST_CgroupReader_ExtractNoContainerId
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L51 (Test: ExtractNoContainerId)

Test Case: ExtractPodmanContainerId TEST_CgroupReader_ExtractPodmanContainerId
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L33 (Test: ExtractPodmanContainerId)

Test Case: IsContainerizedSyntheticProc TEST_CgroupReader_IsContainerizedSyntheticProc
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L65 (Test: IsContainerizedSyntheticProc)

Test Case: ReadCgroupInfoMissingCgroupFile TEST_CgroupReader_ReadCgroupInfoMissingCgroupFile
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L203 (Test: ReadCgroupInfoMissingCgroupFile)

Test Case: ReadCgroupInfoMissingResourceFiles TEST_CgroupReader_ReadCgroupInfoMissingResourceFiles
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L179 (Test: ReadCgroupInfoMissingResourceFiles)

Test Case: ReadCgroupInfoUnlimitedResources TEST_CgroupReader_ReadCgroupInfoUnlimitedResources
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L136 (Test: ReadCgroupInfoUnlimitedResources)

Test Case: ReadCgroupInfoWithResourceLimits TEST_CgroupReader_ReadCgroupInfoWithResourceLimits
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L91 (Test: ReadCgroupInfoWithResourceLimits)

Test Case: EnterRange_NonNumericReturnsFalse TEST_ConditionEvaluator_EnterRange_NonNumericReturnsFalse
status: verified
verifies: REQ_INTEROP_097

Implementation: src/ros2_medkit_gateway/test/test_condition_evaluator.cpp#L239 (Test: EnterRange_NonNumericReturnsFalse)

Test Case: LeaveRange_NonNumericReturnsFalse TEST_ConditionEvaluator_LeaveRange_NonNumericReturnsFalse
status: verified
verifies: REQ_INTEROP_097

Implementation: src/ros2_medkit_gateway/test/test_condition_evaluator.cpp#L329 (Test: LeaveRange_NonNumericReturnsFalse)

Test Case: OnChangeTo_ValidateParams_MissingTarget TEST_ConditionEvaluator_OnChangeTo_ValidateParams_MissingTarget
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_condition_evaluator.cpp#L123 (Test: OnChangeTo_ValidateParams_MissingTarget)

Test Case: OnChangeTo_ValidateParams_Valid TEST_ConditionEvaluator_OnChangeTo_ValidateParams_Valid
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_condition_evaluator.cpp#L131 (Test: OnChangeTo_ValidateParams_Valid)

Test Case: OnChange_ValidateParams TEST_ConditionEvaluator_OnChange_ValidateParams
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_condition_evaluator.cpp#L64 (Test: OnChange_ValidateParams)

Test Case: CgroupInfoToJsonAllFields TEST_ContainerPlugin_CgroupInfoToJsonAllFields
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_container_plugin.cpp#L21 (Test: CgroupInfoToJsonAllFields)

Test Case: CgroupInfoToJsonMissingOptionals TEST_ContainerPlugin_CgroupInfoToJsonMissingOptionals
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_container_plugin.cpp#L38 (Test: CgroupInfoToJsonMissingOptionals)

Test Case: NotContainerizedSkipped TEST_ContainerPlugin_NotContainerizedSkipped
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_container_plugin.cpp#L53 (Test: NotContainerizedSkipped)

Test Case: ContainsAllRequiredFields TEST_CyclicSubscriptionJsonTest_ContainsAllRequiredFields
status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_gateway/test/test_cyclic_subscription_handlers.cpp#L173 (Test: ContainsAllRequiredFields)

Test Case: ServerLevelUpdateResource TEST_CyclicSubscriptionJsonTest_ServerLevelUpdateResource
status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_gateway/test/test_cyclic_subscription_handlers.cpp#L207 (Test: ServerLevelUpdateResource)

Test Case: DataCategoriesErrorBodyContainsFeatureParameter TEST_DataHandlersTest_DataCategoriesErrorBodyContainsFeatureParameter
status: verified
verifies: REQ_INTEROP_016

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L85 (Test: DataCategoriesErrorBodyContainsFeatureParameter)

Test Case: DataCategoriesErrorBodyContainsMessage TEST_DataHandlersTest_DataCategoriesErrorBodyContainsMessage
status: verified
verifies: REQ_INTEROP_016

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L76 (Test: DataCategoriesErrorBodyContainsMessage)

Test Case: DataCategoriesErrorCodeIsNotImplemented TEST_DataHandlersTest_DataCategoriesErrorCodeIsNotImplemented
status: verified
verifies: REQ_INTEROP_016

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L66 (Test: DataCategoriesErrorCodeIsNotImplemented)

Test Case: DataCategoriesResponseBodyIsValidJson TEST_DataHandlersTest_DataCategoriesResponseBodyIsValidJson
status: verified
verifies: REQ_INTEROP_016

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L58 (Test: DataCategoriesResponseBodyIsValidJson)

Test Case: DataCategoriesReturns501 TEST_DataHandlersTest_DataCategoriesReturns501
status: verified
verifies: REQ_INTEROP_016

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L50 (Test: DataCategoriesReturns501)

Test Case: DataGroupsErrorBodyContainsFeatureParameter TEST_DataHandlersTest_DataGroupsErrorBodyContainsFeatureParameter
status: verified
verifies: REQ_INTEROP_017

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L134 (Test: DataGroupsErrorBodyContainsFeatureParameter)

Test Case: DataGroupsErrorBodyContainsMessage TEST_DataHandlersTest_DataGroupsErrorBodyContainsMessage
status: verified
verifies: REQ_INTEROP_017

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L125 (Test: DataGroupsErrorBodyContainsMessage)

Test Case: DataGroupsErrorCodeIsNotImplemented TEST_DataHandlersTest_DataGroupsErrorCodeIsNotImplemented
status: verified
verifies: REQ_INTEROP_017

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L115 (Test: DataGroupsErrorCodeIsNotImplemented)

Test Case: DataGroupsResponseBodyIsValidJson TEST_DataHandlersTest_DataGroupsResponseBodyIsValidJson
status: verified
verifies: REQ_INTEROP_017

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L107 (Test: DataGroupsResponseBodyIsValidJson)

Test Case: DataGroupsReturns501 TEST_DataHandlersTest_DataGroupsReturns501
status: verified
verifies: REQ_INTEROP_017

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L99 (Test: DataGroupsReturns501)

Test Case: GetDataItemBadRequestBodyContainsInvalidRequestErrorCode TEST_DataHandlersTest_GetDataItemBadRequestBodyContainsInvalidRequestErrorCode
status: verified
verifies: REQ_INTEROP_019

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L179 (Test: GetDataItemBadRequestBodyContainsInvalidRequestErrorCode)

Test Case: GetDataItemReturnsBadRequestWhenMatchesMissing TEST_DataHandlersTest_GetDataItemReturnsBadRequestWhenMatchesMissing
status: verified
verifies: REQ_INTEROP_019

Default-constructed req has empty matches (size 0 < 3)

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L170 (Test: GetDataItemReturnsBadRequestWhenMatchesMissing)

Test Case: ListDataBadRequestBodyContainsErrorCode TEST_DataHandlersTest_ListDataBadRequestBodyContainsErrorCode
status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L157 (Test: ListDataBadRequestBodyContainsErrorCode)

Test Case: ListDataReturnsBadRequestWhenMatchesMissing TEST_DataHandlersTest_ListDataReturnsBadRequestWhenMatchesMissing
status: verified
verifies: REQ_INTEROP_018

Default-constructed req has empty matches (size 0 < 2)

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L148 (Test: ListDataReturnsBadRequestWhenMatchesMissing)

Test Case: PutDataItemBadRequestBodyContainsInvalidRequestErrorCode TEST_DataHandlersTest_PutDataItemBadRequestBodyContainsInvalidRequestErrorCode
status: verified
verifies: REQ_INTEROP_020

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L202 (Test: PutDataItemBadRequestBodyContainsInvalidRequestErrorCode)

Test Case: PutDataItemReturnsBadRequestWhenMatchesMissing TEST_DataHandlersTest_PutDataItemReturnsBadRequestWhenMatchesMissing
status: verified
verifies: REQ_INTEROP_020

Default-constructed req has empty matches (size 0 < 3)

Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L193 (Test: PutDataItemReturnsBadRequestWhenMatchesMissing)

status: verified
verifies: REQ_INTEROP_044

Create a script that sleeps briefly

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L724 (Test: ConcurrencyLimit)

Test Case: ControlCompletedExecutionReturnsNotRunning TEST_DefaultScriptProviderTest_ControlCompletedExecutionReturnsNotRunning
status: verified
verifies: REQ_INTEROP_047

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L1014 (Test: ControlCompletedExecutionReturnsNotRunning)

status: verified
verifies: REQ_INTEROP_047

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L843 (Test: ControlStopExecution)

Test Case: CrossEntityExecutionAccessRejected TEST_DefaultScriptProviderTest_CrossEntityExecutionAccessRejected
status: verified
verifies: REQ_INTEROP_046

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L911 (Test: CrossEntityExecutionAccessRejected)

Test Case: DeleteManifestScriptFails TEST_DefaultScriptProviderTest_DeleteManifestScriptFails
status: verified
verifies: REQ_INTEROP_043

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L283 (Test: DeleteManifestScriptFails)

Test Case: DeleteNonexistentScriptFails TEST_DefaultScriptProviderTest_DeleteNonexistentScriptFails
status: verified
verifies: REQ_INTEROP_043

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L405 (Test: DeleteNonexistentScriptFails)

Test Case: DeleteScriptWithRunningExecutionBlocked TEST_DefaultScriptProviderTest_DeleteScriptWithRunningExecutionBlocked
status: verified
verifies: REQ_INTEROP_043

Create a long-running sleep script on the filesystem (uploaded, not manifest)

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L954 (Test: DeleteScriptWithRunningExecutionBlocked)

status: verified
verifies: REQ_INTEROP_043

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L256 (Test: DeleteUploadedScript)

status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L675 (Test: EnvVars)

status: verified
verifies: REQ_INTEROP_046

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L779 (Test: ExecutionNotFound)

status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L642 (Test: FlagArgs)

status: verified
verifies: REQ_INTEROP_042

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L222 (Test: GetManifestScript)

status: verified
verifies: REQ_INTEROP_042

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L295 (Test: GetNonexistentScript)

status: verified
verifies: REQ_INTEROP_042

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L237 (Test: GetUploadedScript)

Test Case: ListMergesManifestAndUploaded TEST_DefaultScriptProviderTest_ListMergesManifestAndUploaded
status: verified
verifies: REQ_INTEROP_041

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L189 (Test: ListMergesManifestAndUploaded)

Test Case: ManifestScriptWithParametersSchema TEST_DefaultScriptProviderTest_ManifestScriptWithParametersSchema
status: verified
verifies: REQ_INTEROP_042

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L415 (Test: ManifestScriptWithParametersSchema)

status: verified
verifies: REQ_INTEROP_041

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L124 (Test: ManifestScriptsLoaded)

status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L609 (Test: NamedArgs)

status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L580 (Test: PositionalArgs)

Test Case: ScriptNotFoundExecution TEST_DefaultScriptProviderTest_ScriptNotFoundExecution
status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L874 (Test: ScriptNotFoundExecution)

status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L699 (Test: StdinJsonFallback)

Test Case: SubprocessExecutionBash TEST_DefaultScriptProviderTest_SubprocessExecutionBash
status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L483 (Test: SubprocessExecutionBash)

Test Case: SubprocessExecutionPython TEST_DefaultScriptProviderTest_SubprocessExecutionPython
status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L459 (Test: SubprocessExecutionPython)

status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L500 (Test: SubprocessExecutionSh)

status: verified
verifies: REQ_INTEROP_044

Create a script that exits with code 1

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L517 (Test: SubprocessFailure)

status: verified
verifies: REQ_INTEROP_044

Create a script that sleeps for a long time

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L549 (Test: SubprocessTimeout)

Test Case: UnsupportedExecutionType TEST_DefaultScriptProviderTest_UnsupportedExecutionType
status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L767 (Test: UnsupportedExecutionType)

Test Case: UploadDisabledReturnsError TEST_DefaultScriptProviderTest_UploadDisabledReturnsError
status: verified
verifies: REQ_INTEROP_040

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L1001 (Test: UploadDisabledReturnsError)

Test Case: UploadExceedingFileSizeRejected TEST_DefaultScriptProviderTest_UploadExceedingFileSizeRejected
status: verified
verifies: REQ_INTEROP_040

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L989 (Test: UploadExceedingFileSizeRejected)

status: verified
verifies: REQ_INTEROP_040

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L156 (Test: UploadToFilesystem)

Test Case: UploadWithParametersSchema TEST_DefaultScriptProviderTest_UploadWithParametersSchema
status: verified
verifies: REQ_INTEROP_040

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L337 (Test: UploadWithParametersSchema)

status: verified
verifies: REQ_INTEROP_040

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L354 (Test: UploadWithoutMetadata)

Test Case: UploadedScriptsIsolatedByEntity TEST_DefaultScriptProviderTest_UploadedScriptsIsolatedByEntity
status: verified
verifies: REQ_INTEROP_041

Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L429 (Test: UploadedScriptsIsolatedByEntity)

Test Case: AppDependsOnReturnsResolvedAndMissingDependencies TEST_DiscoveryHandlersFixtureTest_AppDependsOnReturnsResolvedAndMissingDependencies
status: verified
verifies: REQ_INTEROP_009

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L689 (Test: AppDependsOnReturnsResolvedAndMissingDependencies)

Test Case: AppDependsOnUnknownAppReturns404 TEST_DiscoveryHandlersFixtureTest_AppDependsOnUnknownAppReturns404
status: verified
verifies: REQ_INTEROP_009

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L716 (Test: AppDependsOnUnknownAppReturns404)

Test Case: AppIsLocatedOnReturnsEmptyWhenAppHasNoComponent TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnReturnsEmptyWhenAppHasNoComponent
status: verified
verifies: REQ_INTEROP_105

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L625 (Test: AppIsLocatedOnReturnsEmptyWhenAppHasNoComponent)

Test Case: AppIsLocatedOnReturnsMissingItemWhenHostComponentUnresolved TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnReturnsMissingItemWhenHostComponentUnresolved
status: verified
verifies: REQ_INTEROP_105

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L639 (Test: AppIsLocatedOnReturnsMissingItemWhenHostComponentUnresolved)

Test Case: AppIsLocatedOnReturnsParentComponent TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnReturnsParentComponent
status: verified
verifies: REQ_INTEROP_105

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L608 (Test: AppIsLocatedOnReturnsParentComponent)

Test Case: AppIsLocatedOnUnknownAppReturns404 TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnUnknownAppReturns404
status: verified
verifies: REQ_INTEROP_105

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L679 (Test: AppIsLocatedOnUnknownAppReturns404)

Test Case: AreaComponentsReturnsMatchingComponentsOnly TEST_DiscoveryHandlersFixtureTest_AreaComponentsReturnsMatchingComponentsOnly
status: verified
verifies: REQ_INTEROP_006

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L312 (Test: AreaComponentsReturnsMatchingComponentsOnly)

Test Case: AreaComponentsUnknownAreaReturns404 TEST_DiscoveryHandlersFixtureTest_AreaComponentsUnknownAreaReturns404
status: verified
verifies: REQ_INTEROP_006

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L334 (Test: AreaComponentsUnknownAreaReturns404)

Test Case: ComponentDependsOnReturnsResolvedAndMissingDependencies TEST_DiscoveryHandlersFixtureTest_ComponentDependsOnReturnsResolvedAndMissingDependencies
status: verified
verifies: REQ_INTEROP_008

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L519 (Test: ComponentDependsOnReturnsResolvedAndMissingDependencies)

Test Case: ComponentDependsOnUnknownComponentReturns404 TEST_DiscoveryHandlersFixtureTest_ComponentDependsOnUnknownComponentReturns404
status: verified
verifies: REQ_INTEROP_008

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L544 (Test: ComponentDependsOnUnknownComponentReturns404)

Test Case: FunctionHostsReturnsHostingApps TEST_DiscoveryHandlersFixtureTest_FunctionHostsReturnsHostingApps
status: verified
verifies: REQ_INTEROP_007

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L793 (Test: FunctionHostsReturnsHostingApps)

Test Case: FunctionHostsUnknownFunctionReturns404 TEST_DiscoveryHandlersFixtureTest_FunctionHostsUnknownFunctionReturns404
status: verified
verifies: REQ_INTEROP_007

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L783 (Test: FunctionHostsUnknownFunctionReturns404)

Test Case: GetAppReturnsLinksAndCapabilities TEST_DiscoveryHandlersFixtureTest_GetAppReturnsLinksAndCapabilities
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L590 (Test: GetAppReturnsLinksAndCapabilities)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L580 (Test: GetAppUnknownIdReturns404)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L288 (Test: GetAreaUnknownIdReturns404)

Test Case: GetComponentReturnsRelationshipsAndCapabilities TEST_DiscoveryHandlersFixtureTest_GetComponentReturnsRelationshipsAndCapabilities
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L435 (Test: GetComponentReturnsRelationshipsAndCapabilities)

Test Case: GetContainsReturnsAreaComponents TEST_DiscoveryHandlersFixtureTest_GetContainsReturnsAreaComponents
status: verified
verifies: REQ_INTEROP_006

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L377 (Test: GetContainsReturnsAreaComponents)

Test Case: GetContainsUnknownAreaReturns404 TEST_DiscoveryHandlersFixtureTest_GetContainsUnknownAreaReturns404
status: verified
verifies: REQ_INTEROP_006

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L401 (Test: GetContainsUnknownAreaReturns404)

Test Case: GetFunctionUnknownIdReturns404 TEST_DiscoveryHandlersFixtureTest_GetFunctionUnknownIdReturns404
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L749 (Test: GetFunctionUnknownIdReturns404)

status: verified
verifies: REQ_INTEROP_007

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L485 (Test: GetHostsReturnsHostedApps)

Test Case: GetHostsUnknownComponentReturns404 TEST_DiscoveryHandlersFixtureTest_GetHostsUnknownComponentReturns404
status: verified
verifies: REQ_INTEROP_007

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L509 (Test: GetHostsUnknownComponentReturns404)

status: verified
verifies: REQ_INTEROP_004

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L344 (Test: GetSubareasReturnsChildAreas)

Test Case: GetSubareasUnknownAreaReturns404 TEST_DiscoveryHandlersFixtureTest_GetSubareasUnknownAreaReturns404
status: verified
verifies: REQ_INTEROP_004

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L367 (Test: GetSubareasUnknownAreaReturns404)

Test Case: GetSubcomponentsReturnsChildren TEST_DiscoveryHandlersFixtureTest_GetSubcomponentsReturnsChildren
status: verified
verifies: REQ_INTEROP_005

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L450 (Test: GetSubcomponentsReturnsChildren)

Test Case: GetSubcomponentsUnknownComponentReturns404 TEST_DiscoveryHandlersFixtureTest_GetSubcomponentsUnknownComponentReturns404
status: verified
verifies: REQ_INTEROP_005

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L474 (Test: GetSubcomponentsUnknownComponentReturns404)

Test Case: ListAppsReturnsSeededMetadata TEST_DiscoveryHandlersFixtureTest_ListAppsReturnsSeededMetadata
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L565 (Test: ListAppsReturnsSeededMetadata)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L265 (Test: ListAreasReturnsSeededItems)

Test Case: ListComponentsReturnsMetadata TEST_DiscoveryHandlersFixtureTest_ListComponentsReturnsMetadata
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L411 (Test: ListComponentsReturnsMetadata)

Test Case: ListFunctionsReturnsSeededFunctions TEST_DiscoveryHandlersFixtureTest_ListFunctionsReturnsSeededFunctions
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L736 (Test: ListFunctionsReturnsSeededFunctions)

status: verified
verifies: REQ_INTEROP_009

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L706 (Test: AppDependsOnInvalidIdReturns400)

status: verified
verifies: REQ_INTEROP_105

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L669 (Test: AppIsLocatedOnInvalidIdReturns400)

status: verified
verifies: REQ_INTEROP_006

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L324 (Test: AreaComponentsInvalidIdReturns400)

Test Case: ComponentDependsOnInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_ComponentDependsOnInvalidIdReturns400
status: verified
verifies: REQ_INTEROP_008

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L534 (Test: ComponentDependsOnInvalidIdReturns400)

status: verified
verifies: REQ_INTEROP_007

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L773 (Test: FunctionHostsInvalidIdReturns400)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L555 (Test: GetAppInvalidIdReturns400)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L278 (Test: GetAreaInvalidIdReturns400)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L179 (Test: GetAreaMissingMatchesReturns400)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L425 (Test: GetComponentInvalidIdReturns400)

status: verified
verifies: REQ_INTEROP_006

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L391 (Test: GetContainsInvalidIdReturns400)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L726 (Test: GetFunctionInvalidIdReturns400)

status: verified
verifies: REQ_INTEROP_007

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L499 (Test: GetHostsInvalidIdReturns400)

status: verified
verifies: REQ_INTEROP_004

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L357 (Test: GetSubareasInvalidIdReturns400)

Test Case: GetSubcomponentsInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_GetSubcomponentsInvalidIdReturns400
status: verified
verifies: REQ_INTEROP_005

Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L463 (Test: GetSubcomponentsInvalidIdReturns400)

Test Case: DocsAnyPathReturns200ForEntityCollection TEST_DocsHandlersTest_DocsAnyPathReturns200ForEntityCollection
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_docs_handlers.cpp#L143 (Test: DocsAnyPathReturns200ForEntityCollection)

Test Case: DocsAnyPathReturns404ForInvalidPath TEST_DocsHandlersTest_DocsAnyPathReturns404ForInvalidPath
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_docs_handlers.cpp#L177 (Test: DocsAnyPathReturns404ForInvalidPath)

Test Case: DocsDisabledReturns501 TEST_DocsHandlersTest_DocsDisabledReturns501
status: verified
verifies: REQ_INTEROP_002

Override docs.enabled to false (GatewayNode already declares it as true by default)

Implementation: src/ros2_medkit_gateway/test/test_docs_handlers.cpp#L93 (Test: DocsDisabledReturns501)

Test Case: DocsRootReturnsValidJson TEST_DocsHandlersTest_DocsRootReturnsValidJson
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_docs_handlers.cpp#L115 (Test: DocsRootReturnsValidJson)

Test Case: ListFaultsForEntityEmptyResult TEST_FaultEventPublishingTest_ListFaultsForEntityEmptyResult
status: verified
verifies: REQ_INTEROP_012

Report faults from a different entity

Implementation: src/ros2_medkit_fault_manager/test/test_fault_manager.cpp#L1042 (Test: ListFaultsForEntityEmptyResult)

Test Case: ListFaultsForEntitySuccess TEST_FaultEventPublishingTest_ListFaultsForEntitySuccess
status: verified
verifies: REQ_INTEROP_012

Report faults from different sources

Implementation: src/ros2_medkit_fault_manager/test/test_fault_manager.cpp#L1018 (Test: ListFaultsForEntitySuccess)

Test Case: ListFaultsForEntityWithEmptyId TEST_FaultEventPublishingTest_ListFaultsForEntityWithEmptyId
status: verified
verifies: REQ_INTEROP_012

Implementation: src/ros2_medkit_fault_manager/test/test_fault_manager.cpp#L1055 (Test: ListFaultsForEntityWithEmptyId)

Test Case: BuildSovdFaultResponseBasicFields TEST_FaultHandlersTest_BuildSovdFaultResponseBasicFields
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L37 (Test: BuildSovdFaultResponseBasicFields)

Test Case: BuildSovdFaultResponseExtendedDataRecords TEST_FaultHandlersTest_BuildSovdFaultResponseExtendedDataRecords
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L241 (Test: BuildSovdFaultResponseExtendedDataRecords)

Test Case: BuildSovdFaultResponseMixedSnapshots TEST_FaultHandlersTest_BuildSovdFaultResponseMixedSnapshots
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L315 (Test: BuildSovdFaultResponseMixedSnapshots)

Test Case: BuildSovdFaultResponseMultipleSources TEST_FaultHandlersTest_BuildSovdFaultResponseMultipleSources
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L298 (Test: BuildSovdFaultResponseMultipleSources)

Test Case: BuildSovdFaultResponseNestedEntityPath TEST_FaultHandlersTest_BuildSovdFaultResponseNestedEntityPath
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L123 (Test: BuildSovdFaultResponseNestedEntityPath)

Test Case: BuildSovdFaultResponsePrimaryValueExtraction TEST_FaultHandlersTest_BuildSovdFaultResponsePrimaryValueExtraction
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L263 (Test: BuildSovdFaultResponsePrimaryValueExtraction)

Test Case: BuildSovdFaultResponseSeverityLabels TEST_FaultHandlersTest_BuildSovdFaultResponseSeverityLabels
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L172 (Test: BuildSovdFaultResponseSeverityLabels)

Test Case: BuildSovdFaultResponseStatusCleared TEST_FaultHandlersTest_BuildSovdFaultResponseStatusCleared
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L140 (Test: BuildSovdFaultResponseStatusCleared)

Test Case: BuildSovdFaultResponseStatusPassive TEST_FaultHandlersTest_BuildSovdFaultResponseStatusPassive
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L157 (Test: BuildSovdFaultResponseStatusPassive)

Test Case: BuildSovdFaultResponseWithFreezeFrame TEST_FaultHandlersTest_BuildSovdFaultResponseWithFreezeFrame
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L72 (Test: BuildSovdFaultResponseWithFreezeFrame)

Test Case: BuildSovdFaultResponseWithInvalidJson TEST_FaultHandlersTest_BuildSovdFaultResponseWithInvalidJson
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L220 (Test: BuildSovdFaultResponseWithInvalidJson)

Test Case: BuildSovdFaultResponseWithRosbag TEST_FaultHandlersTest_BuildSovdFaultResponseWithRosbag
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L98 (Test: BuildSovdFaultResponseWithRosbag)

Test Case: GetRosbagNotFound TEST_FaultManagerTest_GetRosbagNotFound
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L559 (Test: GetRosbagNotFound)

Test Case: GetRosbagServiceNotAvailable TEST_FaultManagerTest_GetRosbagServiceNotAvailable
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L300 (Test: GetRosbagServiceNotAvailable)

Test Case: GetRosbagSuccess TEST_FaultManagerTest_GetRosbagSuccess
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L314 (Test: GetRosbagSuccess)

Test Case: GetRosbagUsesConfiguredFaultManagerNamespace TEST_FaultManagerTest_GetRosbagUsesConfiguredFaultManagerNamespace
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L339 (Test: GetRosbagUsesConfiguredFaultManagerNamespace)

Test Case: GetSnapshotsEmptyResponse TEST_FaultManagerTest_GetSnapshotsEmptyResponse
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L279 (Test: GetSnapshotsEmptyResponse)

Test Case: GetSnapshotsErrorResponse TEST_FaultManagerTest_GetSnapshotsErrorResponse
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L241 (Test: GetSnapshotsErrorResponse)

Test Case: GetSnapshotsInvalidJsonFallback TEST_FaultManagerTest_GetSnapshotsInvalidJsonFallback
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L259 (Test: GetSnapshotsInvalidJsonFallback)

Test Case: GetSnapshotsServiceNotAvailable TEST_FaultManagerTest_GetSnapshotsServiceNotAvailable
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L120 (Test: GetSnapshotsServiceNotAvailable)

Test Case: GetSnapshotsSuccessWithTopicFilter TEST_FaultManagerTest_GetSnapshotsSuccessWithTopicFilter
status: verified
verifies: REQ_INTEROP_088

Create mock service that verifies topic filter is passed

Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L221 (Test: GetSnapshotsSuccessWithTopicFilter)

Test Case: GetSnapshotsSuccessWithValidJson TEST_FaultManagerTest_GetSnapshotsSuccessWithValidJson
status: verified
verifies: REQ_INTEROP_088

Create mock service

Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L134 (Test: GetSnapshotsSuccessWithValidJson)

Test Case: GetSnapshotsUsesConfiguredFaultManagerNamespace TEST_FaultManagerTest_GetSnapshotsUsesConfiguredFaultManagerNamespace
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L163 (Test: GetSnapshotsUsesConfiguredFaultManagerNamespace)

Test Case: DefaultAllowsAll TEST_GapFillConfigTest_DefaultAllowsAll
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L533 (Test: DefaultAllowsAll)

Test Case: NamespaceBlacklistFiltersAreas TEST_GapFillConfigTest_NamespaceBlacklistFiltersAreas
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L969 (Test: NamespaceBlacklistFiltersAreas)

Test Case: NamespaceWhitelistFiltersAreas TEST_GapFillConfigTest_NamespaceWhitelistFiltersAreas
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L954 (Test: NamespaceWhitelistFiltersAreas)

Test Case: RegistersFunctionCapabilityOnContext TEST_GraphProviderPluginRouteTest_RegistersFunctionCapabilityOnContext
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_plugins/ros2_medkit_graph_provider/test/test_graph_provider_plugin.cpp#L616 (Test: RegistersFunctionCapabilityOnContext)

Test Case: RegistersSamplerForCyclicSubscriptions TEST_GraphProviderPluginRouteTest_RegistersSamplerForCyclicSubscriptions
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_plugins/ros2_medkit_graph_provider/test/test_graph_provider_plugin.cpp#L689 (Test: RegistersSamplerForCyclicSubscriptions)

Test Case: ServesFunctionGraphFromCachedSnapshot TEST_GraphProviderPluginRouteTest_ServesFunctionGraphFromCachedSnapshot
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_plugins/ros2_medkit_graph_provider/test/test_graph_provider_plugin.cpp#L579 (Test: ServesFunctionGraphFromCachedSnapshot)

Test Case: HandleRootAuthDisabledNoAuthEndpoints TEST_HealthHandlersTest_HandleRootAuthDisabledNoAuthEndpoints
status: verified
verifies: REQ_INTEROP_010

With auth disabled (default), auth endpoints must not appear in the list

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L189 (Test: HandleRootAuthDisabledNoAuthEndpoints)

Test Case: HandleRootAuthEnabledAddsAuthEndpoints TEST_HealthHandlersTest_HandleRootAuthEnabledAddsAuthEndpoints
status: verified
verifies: REQ_INTEROP_010

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L215 (Test: HandleRootAuthEnabledAddsAuthEndpoints)

Test Case: HandleRootAuthEnabledIncludesAuthMetadataBlock TEST_HealthHandlersTest_HandleRootAuthEnabledIncludesAuthMetadataBlock
status: verified
verifies: REQ_INTEROP_010

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L244 (Test: HandleRootAuthEnabledIncludesAuthMetadataBlock)

Test Case: HandleRootCapabilitiesAuthDisabled TEST_HealthHandlersTest_HandleRootCapabilitiesAuthDisabled
status: verified
verifies: REQ_INTEROP_010

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L200 (Test: HandleRootCapabilitiesAuthDisabled)

Test Case: HandleRootCapabilitiesContainsDiscovery TEST_HealthHandlersTest_HandleRootCapabilitiesContainsDiscovery
status: verified
verifies: REQ_INTEROP_010

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L180 (Test: HandleRootCapabilitiesContainsDiscovery)

Test Case: HandleRootCapabilitiesTlsDisabled TEST_HealthHandlersTest_HandleRootCapabilitiesTlsDisabled
status: verified
verifies: REQ_INTEROP_010

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L207 (Test: HandleRootCapabilitiesTlsDisabled)

Test Case: HandleRootEndpointsIsNonEmptyArray TEST_HealthHandlersTest_HandleRootEndpointsIsNonEmptyArray
status: verified
verifies: REQ_INTEROP_010

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L172 (Test: HandleRootEndpointsIsNonEmptyArray)

Test Case: HandleRootResponseContainsRequiredTopLevelFields TEST_HealthHandlersTest_HandleRootResponseContainsRequiredTopLevelFields
status: verified
verifies: REQ_INTEROP_010

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L158 (Test: HandleRootResponseContainsRequiredTopLevelFields)

Test Case: HandleRootTlsEnabledIncludesTlsMetadataBlock TEST_HealthHandlersTest_HandleRootTlsEnabledIncludesTlsMetadataBlock
status: verified
verifies: REQ_INTEROP_010

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L262 (Test: HandleRootTlsEnabledIncludesTlsMetadataBlock)

Test Case: HandleVersionInfoContainsItemsArray TEST_HealthHandlersTest_HandleVersionInfoContainsItemsArray
status: verified
verifies: REQ_INTEROP_001

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L119 (Test: HandleVersionInfoContainsItemsArray)

Test Case: HandleVersionInfoItemsEntryHasBaseUri TEST_HealthHandlersTest_HandleVersionInfoItemsEntryHasBaseUri
status: verified
verifies: REQ_INTEROP_001

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L138 (Test: HandleVersionInfoItemsEntryHasBaseUri)

Test Case: HandleVersionInfoItemsEntryHasVendorInfo TEST_HealthHandlersTest_HandleVersionInfoItemsEntryHasVendorInfo
status: verified
verifies: REQ_INTEROP_001

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L146 (Test: HandleVersionInfoItemsEntryHasVendorInfo)

Test Case: HandleVersionInfoItemsEntryHasVersionField TEST_HealthHandlersTest_HandleVersionInfoItemsEntryHasVersionField
status: verified
verifies: REQ_INTEROP_001

Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L128 (Test: HandleVersionInfoItemsEntryHasVersionField)

Test Case: ParsesValidIntervals TEST_IntervalParsingTest_ParsesValidIntervals
status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_gateway/test/test_subscription_manager.cpp#L28 (Test: ParsesValidIntervals)

Test Case: ExpiredTriggerMarkedTerminatedOnLoad TEST_LoadPersistentTriggers_ExpiredTriggerMarkedTerminatedOnLoad
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L885 (Test: ExpiredTriggerMarkedTerminatedOnLoad)

Test Case: NewTriggerIdIsHigherThanRestoredId TEST_LoadPersistentTriggers_NewTriggerIdIsHigherThanRestoredId
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L921 (Test: NewTriggerIdIsHigherThanRestoredId)

Test Case: ResetBehaviorDoesNotRestoreTriggers TEST_LoadPersistentTriggers_ResetBehaviorDoesNotRestoreTriggers
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L860 (Test: ResetBehaviorDoesNotRestoreTriggers)

Test Case: RestoreBehaviorLoadsActiveTrigger TEST_LoadPersistentTriggers_RestoreBehaviorLoadsActiveTrigger
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L829 (Test: RestoreBehaviorLoadsActiveTrigger)

Test Case: test_acquire_already_locked TEST_LockManagerTest_test_acquire_already_locked
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L123 (Test: test_acquire_already_locked)

Test Case: test_acquire_break_lock TEST_LockManagerTest_test_acquire_break_lock
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L138 (Test: test_acquire_break_lock)

Test Case: test_acquire_break_lock_not_breakable TEST_LockManagerTest_test_acquire_break_lock_not_breakable
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L158 (Test: test_acquire_break_lock_not_breakable)

Test Case: test_acquire_invalid_expiration TEST_LockManagerTest_test_acquire_invalid_expiration
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L183 (Test: test_acquire_invalid_expiration)

Test Case: test_acquire_invalid_scope TEST_LockManagerTest_test_acquire_invalid_scope
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L173 (Test: test_acquire_invalid_scope)

Test Case: test_acquire_lock_basic TEST_LockManagerTest_test_acquire_lock_basic
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L84 (Test: test_acquire_lock_basic)

Test Case: test_acquire_lock_full TEST_LockManagerTest_test_acquire_lock_full
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L112 (Test: test_acquire_lock_full)

Test Case: test_acquire_lock_scoped TEST_LockManagerTest_test_acquire_lock_scoped
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L100 (Test: test_acquire_lock_scoped)

Test Case: test_check_access_area_propagation TEST_LockManagerTest_test_check_access_area_propagation
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L415 (Test: test_check_access_area_propagation)

Test Case: test_check_access_not_owner TEST_LockManagerTest_test_check_access_not_owner
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L352 (Test: test_check_access_not_owner)

Test Case: test_check_access_owner TEST_LockManagerTest_test_check_access_owner
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L342 (Test: test_check_access_owner)

Test Case: test_check_access_parent_propagation TEST_LockManagerTest_test_check_access_parent_propagation
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L393 (Test: test_check_access_parent_propagation)

Test Case: test_check_access_partial_scope_propagation TEST_LockManagerTest_test_check_access_partial_scope_propagation
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L438 (Test: test_check_access_partial_scope_propagation)

Test Case: test_check_access_scoped_match TEST_LockManagerTest_test_check_access_scoped_match
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L365 (Test: test_check_access_scoped_match)

Test Case: test_check_access_scoped_no_match TEST_LockManagerTest_test_check_access_scoped_no_match
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L381 (Test: test_check_access_scoped_no_match)

Test Case: test_check_access_unlocked TEST_LockManagerTest_test_check_access_unlocked
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L333 (Test: test_check_access_unlocked)

Test Case: test_cleanup_expired TEST_LockManagerTest_test_cleanup_expired
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L458 (Test: test_cleanup_expired)

Test Case: test_cleanup_not_expired TEST_LockManagerTest_test_cleanup_not_expired
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L481 (Test: test_cleanup_not_expired)

Test Case: test_config_disabled TEST_LockManagerTest_test_config_disabled
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L544 (Test: test_config_disabled)

Test Case: test_extend_lock TEST_LockManagerTest_test_extend_lock
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L252 (Test: test_extend_lock)

Test Case: test_extend_not_found TEST_LockManagerTest_test_extend_not_found
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L283 (Test: test_extend_not_found)

Test Case: test_extend_not_owner TEST_LockManagerTest_test_extend_not_owner
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L271 (Test: test_extend_not_owner)

Test Case: test_get_lock TEST_LockManagerTest_test_get_lock
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L297 (Test: test_get_lock)

Test Case: test_get_lock_by_id TEST_LockManagerTest_test_get_lock_by_id
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L313 (Test: test_get_lock_by_id)

Test Case: test_lock_required_different_collection_not_blocked TEST_LockManagerTest_test_lock_required_different_collection_not_blocked
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L527 (Test: test_lock_required_different_collection_not_blocked)

Test Case: test_lock_required_has_lock TEST_LockManagerTest_test_lock_required_has_lock
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L512 (Test: test_lock_required_has_lock)

Test Case: test_lock_required_no_lock_held TEST_LockManagerTest_test_lock_required_no_lock_held
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L498 (Test: test_lock_required_no_lock_held)

Test Case: test_release_lock TEST_LockManagerTest_test_release_lock
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L208 (Test: test_release_lock)

Test Case: test_release_not_found TEST_LockManagerTest_test_release_not_found
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L238 (Test: test_release_not_found)

Test Case: test_release_not_owner TEST_LockManagerTest_test_release_not_owner
status: verified
verifies: REQ_INTEROP_100

Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L223 (Test: test_release_not_owner)

Test Case: GetLogsBadRequestBodyContainsInvalidRequestErrorCode TEST_LogHandlersTest_GetLogsBadRequestBodyContainsInvalidRequestErrorCode
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L64 (Test: GetLogsBadRequestBodyContainsInvalidRequestErrorCode)

Test Case: GetLogsBadRequestBodyIsValidJson TEST_LogHandlersTest_GetLogsBadRequestBodyIsValidJson
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L56 (Test: GetLogsBadRequestBodyIsValidJson)

Test Case: GetLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode TEST_LogHandlersTest_GetLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode
status: verified
verifies: REQ_INTEROP_063

Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L94 (Test: GetLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode)

Test Case: GetLogsConfigurationBadRequestBodyIsValidJson TEST_LogHandlersTest_GetLogsConfigurationBadRequestBodyIsValidJson
status: verified
verifies: REQ_INTEROP_063

Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L86 (Test: GetLogsConfigurationBadRequestBodyIsValidJson)

Test Case: GetLogsConfigurationReturnsBadRequestWhenMatchesMissing TEST_LogHandlersTest_GetLogsConfigurationReturnsBadRequestWhenMatchesMissing
status: verified
verifies: REQ_INTEROP_063

Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L78 (Test: GetLogsConfigurationReturnsBadRequestWhenMatchesMissing)

Test Case: GetLogsReturnsBadRequestWhenMatchesMissing TEST_LogHandlersTest_GetLogsReturnsBadRequestWhenMatchesMissing
status: verified
verifies: REQ_INTEROP_061

Default-constructed req has empty matches (size 0 < 2)

Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L47 (Test: GetLogsReturnsBadRequestWhenMatchesMissing)

Test Case: PutLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode TEST_LogHandlersTest_PutLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode
status: verified
verifies: REQ_INTEROP_064

Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L124 (Test: PutLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode)

Test Case: PutLogsConfigurationBadRequestBodyIsValidJson TEST_LogHandlersTest_PutLogsConfigurationBadRequestBodyIsValidJson
status: verified
verifies: REQ_INTEROP_064

Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L116 (Test: PutLogsConfigurationBadRequestBodyIsValidJson)

Test Case: PutLogsConfigurationReturnsBadRequestWhenMatchesMissing TEST_LogHandlersTest_PutLogsConfigurationReturnsBadRequestWhenMatchesMissing
status: verified
verifies: REQ_INTEROP_064

Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L108 (Test: PutLogsConfigurationReturnsBadRequestWhenMatchesMissing)

Test Case: AddLogEntry_EmptyMetadataNoSuffix TEST_LogManagerBufferTest_AddLogEntry_EmptyMetadataNoSuffix
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L364 (Test: AddLogEntry_EmptyMetadataNoSuffix)

Test Case: AddLogEntry_EntryRetrievable TEST_LogManagerBufferTest_AddLogEntry_EntryRetrievable
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L326 (Test: AddLogEntry_EntryRetrievable)

Test Case: AddLogEntry_InvalidSeverityFallsBackToInfo TEST_LogManagerBufferTest_AddLogEntry_InvalidSeverityFallsBackToInfo
status: verified
verifies: REQ_INTEROP_061

“verbose” is not a valid SOVD severity; implementation falls back to INFO (level 20)

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L338 (Test: AddLogEntry_InvalidSeverityFallsBackToInfo)

Test Case: AddLogEntry_MetadataAppendedToMessage TEST_LogManagerBufferTest_AddLogEntry_MetadataAppendedToMessage
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L350 (Test: AddLogEntry_MetadataAppendedToMessage)

Test Case: BufferCapDropsNewNodesWhenFull TEST_LogManagerBufferTest_BufferCapDropsNewNodesWhenFull
status: verified
verifies: REQ_INTEROP_061

LogManager was created with buffer size 3 in the fixture. Buffer cap = size * 10 = 30 distinct nodes. Create a fresh manager with buffer size 5 so cap = 50.

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L881 (Test: BufferCapDropsNewNodesWhenFull)

Test Case: ContextFilterMatchesSubstring TEST_LogManagerBufferTest_ContextFilterMatchesSubstring
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L281 (Test: ContextFilterMatchesSubstring)

Test Case: FqnWithLeadingSlashMatchesBuffer TEST_LogManagerBufferTest_FqnWithLeadingSlashMatchesBuffer
status: verified
verifies: REQ_INTEROP_061

Buffer stores entries under “my_ns/my_node” (no leading slash) Entity FQN from entity cache is “/my_ns/my_node” (with leading slash) get_logs() must normalize and still find the entries

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L213 (Test: FqnWithLeadingSlashMatchesBuffer)

Test Case: GetConfigReturnsDefaultsForUnknownEntity TEST_LogManagerBufferTest_GetConfigReturnsDefaultsForUnknownEntity
status: verified
verifies: REQ_INTEROP_063

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L387 (Test: GetConfigReturnsDefaultsForUnknownEntity)

Test Case: GetLogsMatchesDotNotationLoggerNames TEST_LogManagerBufferTest_GetLogsMatchesDotNotationLoggerNames
status: verified
verifies: REQ_INTEROP_061

ROS 2 rosout messages carry logger names using ‘.’ as separator (e.g. “powertrain.engine.temp_sensor”) while entity FQNs use ‘/’. get_logs() must match entries stored under dot-format keys.

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L294 (Test: GetLogsMatchesDotNotationLoggerNames)

Test Case: GetLogsPrefixMatchesDotNotationLoggerNames TEST_LogManagerBufferTest_GetLogsPrefixMatchesDotNotationLoggerNames
status: verified
verifies: REQ_INTEROP_061

Component namespace prefix matching must also work against dot-format logger names.

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L309 (Test: GetLogsPrefixMatchesDotNotationLoggerNames)

Test Case: MaxEntriesCapsMostRecentEntries TEST_LogManagerBufferTest_MaxEntriesCapsMostRecentEntries
status: verified
verifies: REQ_INTEROP_061

Inject 5 entries, set max_entries=2 via config

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L265 (Test: MaxEntriesCapsMostRecentEntries)

Test Case: PartialConfigUpdatePreservesOtherField TEST_LogManagerBufferTest_PartialConfigUpdatePreservesOtherField
status: verified
verifies: REQ_INTEROP_064

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L395 (Test: PartialConfigUpdatePreservesOtherField)

Test Case: PrefixMatchDoesNotFalsePositiveOnSubstring TEST_LogManagerBufferTest_PrefixMatchDoesNotFalsePositiveOnSubstring
status: verified
verifies: REQ_INTEROP_061

“engine” must NOT match “engine_control” (only full namespace segments)

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L255 (Test: PrefixMatchDoesNotFalsePositiveOnSubstring)

Test Case: PrefixMatchIncludesChildNamespaces TEST_LogManagerBufferTest_PrefixMatchIncludesChildNamespaces
status: verified
verifies: REQ_INTEROP_061

Component “engine” prefix-matches “engine/temp_sensor” and “engine/pressure” but NOT “engine_control/sensor” (different namespace)

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L240 (Test: PrefixMatchIncludesChildNamespaces)

Test Case: RingBufferEvictsOldestEntryWhenFull TEST_LogManagerBufferTest_RingBufferEvictsOldestEntryWhenFull
status: verified
verifies: REQ_INTEROP_061

Buffer size is 3; inject 4 entries for the same node

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L196 (Test: RingBufferEvictsOldestEntryWhenFull)

Test Case: SeverityFilterExcludesLowerLevels TEST_LogManagerBufferTest_SeverityFilterExcludesLowerLevels
status: verified
verifies: REQ_INTEROP_061

inject debug(10), info(20), warning(30)

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L226 (Test: SeverityFilterExcludesLowerLevels)

Test Case: UpdateConfigRejectsInvalidSeverity TEST_LogManagerBufferTest_UpdateConfigRejectsInvalidSeverity
status: verified
verifies: REQ_INTEROP_064

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L375 (Test: UpdateConfigRejectsInvalidSeverity)

Test Case: UpdateConfigRejectsZeroMaxEntries TEST_LogManagerBufferTest_UpdateConfigRejectsZeroMaxEntries
status: verified
verifies: REQ_INTEROP_064

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L381 (Test: UpdateConfigRejectsZeroMaxEntries)

status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L148 (Test: AllSeverityLevels)

status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L97 (Test: BasicFields)

Test Case: EmptyOptionalFieldsOmitted TEST_LogManagerEntryToJsonTest_EmptyOptionalFieldsOmitted
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L127 (Test: EmptyOptionalFieldsOmitted)

Test Case: NormalizeEmptyStringUnchanged TEST_LogManagerFqnTest_NormalizeEmptyStringUnchanged
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L92 (Test: NormalizeEmptyStringUnchanged)

Test Case: NormalizeNoLeadingSlashUnchanged TEST_LogManagerFqnTest_NormalizeNoLeadingSlashUnchanged
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L86 (Test: NormalizeNoLeadingSlashUnchanged)

Test Case: NormalizeStripsLeadingSlash TEST_LogManagerFqnTest_NormalizeStripsLeadingSlash
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L80 (Test: NormalizeStripsLeadingSlash)

Test Case: DefaultManagesIngestionPreservesCurrentBehavior TEST_LogManagerIngestionTest_DefaultManagesIngestionPreservesCurrentBehavior
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L661 (Test: DefaultManagesIngestionPreservesCurrentBehavior)

Test Case: ManagesIngestionDelegatesToPlugin TEST_LogManagerIngestionTest_ManagesIngestionDelegatesToPlugin
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L591 (Test: ManagesIngestionDelegatesToPlugin)

Test Case: ManagesIngestionGetConfigDelegatesToPlugin TEST_LogManagerIngestionTest_ManagesIngestionGetConfigDelegatesToPlugin
status: verified
verifies: REQ_INTEROP_063

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L623 (Test: ManagesIngestionGetConfigDelegatesToPlugin)

Test Case: ManagesIngestionLocalBufferBypassed TEST_LogManagerIngestionTest_ManagesIngestionLocalBufferBypassed
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L641 (Test: ManagesIngestionLocalBufferBypassed)

Test Case: ManagesIngestionStillValidatesBeforeDelegation TEST_LogManagerIngestionTest_ManagesIngestionStillValidatesBeforeDelegation
status: verified
verifies: REQ_INTEROP_064

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L694 (Test: ManagesIngestionStillValidatesBeforeDelegation)

Test Case: ManagesIngestionUpdateConfigDelegatesToPlugin TEST_LogManagerIngestionTest_ManagesIngestionUpdateConfigDelegatesToPlugin
status: verified
verifies: REQ_INTEROP_064

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L608 (Test: ManagesIngestionUpdateConfigDelegatesToPlugin)

Test Case: NoPluginPreservesDefaultBehavior TEST_LogManagerIngestionTest_NoPluginPreservesDefaultBehavior
status: verified
verifies: REQ_INTEROP_061

No plugin manager at all - ring buffer works as before

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L679 (Test: NoPluginPreservesDefaultBehavior)

Test Case: PluginGetConfigThrowReturnsError TEST_LogManagerIngestionTest_PluginGetConfigThrowReturnsError
status: verified
verifies: REQ_INTEROP_063

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L725 (Test: PluginGetConfigThrowReturnsError)

Test Case: PluginGetLogsThrowReturnsError TEST_LogManagerIngestionTest_PluginGetLogsThrowReturnsError
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L714 (Test: PluginGetLogsThrowReturnsError)

Test Case: ResolverMatchesBareNameReturnsEntityId TEST_LogManagerResolverTest_ResolverMatchesBareNameReturnsEntityId
status: verified
verifies: REQ_INTEROP_061

Resolver returns “my_app” when called with bare name (no leading slash)

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L841 (Test: ResolverMatchesBareNameReturnsEntityId)

Test Case: ResolverMatchesWithSlashPrefixReturnsEntityId TEST_LogManagerResolverTest_ResolverMatchesWithSlashPrefixReturnsEntityId
status: verified
verifies: REQ_INTEROP_061

Resolver returns “temp_sensor_app” when called with “/powertrain/temp_sensor”

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L820 (Test: ResolverMatchesWithSlashPrefixReturnsEntityId)

Test Case: ResolverReturnsEmptyFallsBackToLastSegment TEST_LogManagerResolverTest_ResolverReturnsEmptyFallsBackToLastSegment
status: verified
verifies: REQ_INTEROP_061

Resolver always returns empty -> on_rosout falls back to last path segment

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L860 (Test: ResolverReturnsEmptyFallsBackToLastSegment)

status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L66 (Test: IsValidSeverity)

Test Case: LevelToSeverityMapping TEST_LogManagerSeverityTest_LevelToSeverityMapping
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L40 (Test: LevelToSeverityMapping)

Test Case: SeverityToLevelMapping TEST_LogManagerSeverityTest_SeverityToLevelMapping
status: verified
verifies: REQ_INTEROP_061

Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L52 (Test: SeverityToLevelMapping)

Test Case: DefaultPolicies TEST_ManifestLayerTest_DefaultPolicies
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L347 (Test: DefaultPolicies)

Test Case: ParseScripts TEST_ManifestParserTest_ParseScripts
status: verified
verifies: REQ_INTEROP_041

Implementation: src/ros2_medkit_gateway/test/test_manifest_parser.cpp#L273 (Test: ParseScripts)

Test Case: ParseScriptsMissingFormat TEST_ManifestParserTest_ParseScriptsMissingFormat
status: verified
verifies: REQ_INTEROP_041

Implementation: src/ros2_medkit_gateway/test/test_manifest_parser.cpp#L427 (Test: ParseScriptsMissingFormat)

Test Case: ParseScriptsMissingId TEST_ManifestParserTest_ParseScriptsMissingId
status: verified
verifies: REQ_INTEROP_041

Implementation: src/ros2_medkit_gateway/test/test_manifest_parser.cpp#L403 (Test: ParseScriptsMissingId)

Test Case: ParseScriptsMissingPath TEST_ManifestParserTest_ParseScriptsMissingPath
status: verified
verifies: REQ_INTEROP_041

Implementation: src/ros2_medkit_gateway/test/test_manifest_parser.cpp#L415 (Test: ParseScriptsMissingPath)

Test Case: ParseScriptsTimeoutClampedToMinimum TEST_ManifestParserTest_ParseScriptsTimeoutClampedToMinimum
status: verified
verifies: REQ_INTEROP_041

Implementation: src/ros2_medkit_gateway/test/test_manifest_parser.cpp#L439 (Test: ParseScriptsTimeoutClampedToMinimum)

Test Case: AppStatusMerge_BoolOrSemantics TEST_MergePipelineTest_AppStatusMerge_BoolOrSemantics
status: verified
verifies: REQ_INTEROP_003

Two layers provide the same App with different is_online values

Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L859 (Test: AppStatusMerge_BoolOrSemantics)

Test Case: LayerExceptionDoesNotCrashPipeline TEST_MergePipelineTest_LayerExceptionDoesNotCrashPipeline
status: verified
verifies: REQ_INTEROP_003

A good layer followed by a throwing layer - good layer’s data should survive

Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L1001 (Test: LayerExceptionDoesNotCrashPipeline)

Test Case: PluginReceivesDiscoveryContext TEST_MergePipelineTest_PluginReceivesDiscoveryContext
status: verified
verifies: REQ_INTEROP_003

Manifest layer provides a component

Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L451 (Test: PluginReceivesDiscoveryContext)

Test Case: ThreeLayerMerge_PerFieldGroupOwnerTracking TEST_MergePipelineTest_ThreeLayerMerge_PerFieldGroupOwnerTracking
status: verified
verifies: REQ_INTEROP_003

Regression test: verify that when Runtime wins STATUS (AUTH) over Manifest (FALLBACK), a Plugin (ENRICH) cannot override Runtime’s authoritative STATUS. Previously, owner_layer_idx was fixed to first layer, so Plugin compared against Manifest’s FALLBACK policy instead of Runtime’s AUTH, incorrectly winning STATUS.

Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L885 (Test: ThreeLayerMerge_PerFieldGroupOwnerTracking)

Test Case: ThreeLayerMerge_PluginEnrichesManifestEntity TEST_MergePipelineTest_ThreeLayerMerge_PluginEnrichesManifestEntity
status: verified
verifies: REQ_INTEROP_003

Manifest: component “engine” with AUTHORITATIVE identity

Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L802 (Test: ThreeLayerMerge_PluginEnrichesManifestEntity)

Test Case: MergePolicyValues TEST_MergeTypesTest_MergePolicyValues
status: verified
verifies: REQ_INTEROP_003

Verify enum values exist and are distinct

Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L65 (Test: MergePolicyValues)

Test Case: AlwaysIncludesGenericErrorResponse TEST_OpenApiSpecBuilderTest_AlwaysIncludesGenericErrorResponse
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L189 (Test: AlwaysIncludesGenericErrorResponse)

Test Case: BuildContainsComponentsSchemas TEST_OpenApiSpecBuilderTest_BuildContainsComponentsSchemas
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L167 (Test: BuildContainsComponentsSchemas)

Test Case: BuildContainsInfoBlock TEST_OpenApiSpecBuilderTest_BuildContainsInfoBlock
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L39 (Test: BuildContainsInfoBlock)

Test Case: BuildContainsPathsObject TEST_OpenApiSpecBuilderTest_BuildContainsPathsObject
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L131 (Test: BuildContainsPathsObject)

Test Case: BuildContainsServersArray TEST_OpenApiSpecBuilderTest_BuildContainsServersArray
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L91 (Test: BuildContainsServersArray)

Test Case: BuildContainsSovdVersion TEST_OpenApiSpecBuilderTest_BuildContainsSovdVersion
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L47 (Test: BuildContainsSovdVersion)

Test Case: BuildProducesOpenApi310Version TEST_OpenApiSpecBuilderTest_BuildProducesOpenApi310Version
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L32 (Test: BuildProducesOpenApi310Version)

Test Case: FluentInterfaceChaining TEST_OpenApiSpecBuilderTest_FluentInterfaceChaining
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L265 (Test: FluentInterfaceChaining)

Test Case: GenericErrorSchemaAlwaysPresent TEST_OpenApiSpecBuilderTest_GenericErrorSchemaAlwaysPresent
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L331 (Test: GenericErrorSchemaAlwaysPresent)

Test Case: NonEmptySchemasArePresentInOutput TEST_OpenApiSpecBuilderTest_NonEmptySchemasArePresentInOutput
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L341 (Test: NonEmptySchemasArePresentInOutput)

Test Case: SecuritySchemeAddsToComponents TEST_OpenApiSpecBuilderTest_SecuritySchemeAddsToComponents
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L225 (Test: SecuritySchemeAddsToComponents)

Test Case: DataCollectionWithTopic TEST_ParseResourceUriTest_DataCollectionWithTopic
status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_gateway/test/test_cyclic_subscription_handlers.cpp#L31 (Test: DataCollectionWithTopic)

Test Case: UpdateStatusUri TEST_ParseResourceUriTest_UpdateStatusUri
status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_gateway/test/test_cyclic_subscription_handlers.cpp#L137 (Test: UpdateStatusUri)

Test Case: ActionOperationHasGetAndPost TEST_PathBuilderTest_ActionOperationHasGetAndPost
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L257 (Test: ActionOperationHasGetAndPost)

Test Case: BulkDataHasGet TEST_PathBuilderTest_BulkDataHasGet
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L374 (Test: BulkDataHasGet)

Test Case: ConfigurationsHasGetAndDelete TEST_PathBuilderTest_ConfigurationsHasGetAndDelete
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L288 (Test: ConfigurationsHasGetAndDelete)

Test Case: CyclicSubscriptionsHasGetAndPost TEST_PathBuilderTest_CyclicSubscriptionsHasGetAndPost
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L385 (Test: CyclicSubscriptionsHasGetAndPost)

Test Case: DataCollectionHasGet TEST_PathBuilderTest_DataCollectionHasGet
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L132 (Test: DataCollectionHasGet)

Test Case: DataItemGetAlwaysPresent TEST_PathBuilderTest_DataItemGetAlwaysPresent
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L152 (Test: DataItemGetAlwaysPresent)

Test Case: DataItemPutForSubscribeTopic TEST_PathBuilderTest_DataItemPutForSubscribeTopic
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L160 (Test: DataItemPutForSubscribeTopic)

Test Case: EntityCollectionHasGet TEST_PathBuilderTest_EntityCollectionHasGet
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L40 (Test: EntityCollectionHasGet)

Test Case: EntityDetailConcretePathOmitsParameters TEST_PathBuilderTest_EntityDetailConcretePathOmitsParameters
status: verified
verifies: REQ_INTEROP_002

When use_template=false (concrete entity path), no path parameters should be declared. OpenAPI 3.1.0 requires path params to match {placeholders} in the path key.

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L107 (Test: EntityDetailConcretePathOmitsParameters)

Test Case: EntityDetailHasGet TEST_PathBuilderTest_EntityDetailHasGet
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L90 (Test: EntityDetailHasGet)

Test Case: EntityDetailTemplatePathHasParameters TEST_PathBuilderTest_EntityDetailTemplatePathHasParameters
status: verified
verifies: REQ_INTEROP_002

Default (use_template=true) should still include path parameters

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L118 (Test: EntityDetailTemplatePathHasParameters)

Test Case: ErrorResponsesWithoutAuth TEST_PathBuilderTest_ErrorResponsesWithoutAuth
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L430 (Test: ErrorResponsesWithoutAuth)

Test Case: FaultsHasGetAndDelete TEST_PathBuilderTest_FaultsHasGetAndDelete
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L313 (Test: FaultsHasGetAndDelete)

Test Case: LogsHasGet TEST_PathBuilderTest_LogsHasGet
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L341 (Test: LogsHasGet)

Test Case: OperationsCollectionHasGet TEST_PathBuilderTest_OperationsCollectionHasGet
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L204 (Test: OperationsCollectionHasGet)

Test Case: ServiceOperationHasGetAndPost TEST_PathBuilderTest_ServiceOperationHasGetAndPost
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L226 (Test: ServiceOperationHasGetAndPost)

Test Case: SseEndpointHasGet TEST_PathBuilderTest_SseEndpointHasGet
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L408 (Test: SseEndpointHasGet)

Test Case: DeepNestedPath TEST_PathResolverTest_DeepNestedPath
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L73 (Test: DeepNestedPath)

Test Case: EntityCollection TEST_PathResolverTest_EntityCollection
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L37 (Test: EntityCollection)

Test Case: HostsIsResourceCollection TEST_PathResolverTest_HostsIsResourceCollection
status: verified
verifies: REQ_INTEROP_002

“hosts” is a sub-resource of components/functions, not a top-level entity type

Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L175 (Test: HostsIsResourceCollection)

Test Case: HostsUnderFunctionsIsResourceCollection TEST_PathResolverTest_HostsUnderFunctionsIsResourceCollection
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L185 (Test: HostsUnderFunctionsIsResourceCollection)

Test Case: MultiSegmentResourceId TEST_PathResolverTest_MultiSegmentResourceId
status: verified
verifies: REQ_INTEROP_002

Topic names like /sensors/temperature produce multi-segment resource IDs

Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L234 (Test: MultiSegmentResourceId)

Test Case: NestedEntityCollection TEST_PathResolverTest_NestedEntityCollection
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L87 (Test: NestedEntityCollection)

Test Case: ResourceCollection TEST_PathResolverTest_ResourceCollection
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L52 (Test: ResourceCollection)

Test Case: RootPath TEST_PathResolverTest_RootPath
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L26 (Test: RootPath)

Test Case: SpecificEntity TEST_PathResolverTest_SpecificEntity
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L44 (Test: SpecificEntity)

Test Case: SpecificResource TEST_PathResolverTest_SpecificResource
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L60 (Test: SpecificResource)

Test Case: BackwardCompatibleWithoutResolver TEST_PerEntityStorageTest_BackwardCompatibleWithoutResolver
status: verified
verifies: REQ_INTEROP_095

When no per-entity config is used, passing global config gives same behavior as before

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L356 (Test: BackwardCompatibleWithoutResolver)

Test Case: DifferentEntitiesSameFaultCode TEST_PerEntityStorageTest_DifferentEntitiesSameFaultCode
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L318 (Test: DifferentEntitiesSameFaultCode)

Test Case: LidarFaultConfirmsImmediately TEST_PerEntityStorageTest_LidarFaultConfirmsImmediately
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L269 (Test: LidarFaultConfirmsImmediately)

Test Case: LidarHealingWithThreshold1 TEST_PerEntityStorageTest_LidarHealingWithThreshold1
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L336 (Test: LidarHealingWithThreshold1)

Test Case: MotorFaultNeedsDebouncing TEST_PerEntityStorageTest_MotorFaultNeedsDebouncing
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L280 (Test: MotorFaultNeedsDebouncing)

Test Case: UnknownEntityUsesGlobalConfig TEST_PerEntityStorageTest_UnknownEntityUsesGlobalConfig
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L307 (Test: UnknownEntityUsesGlobalConfig)

Test Case: AutoRefreshOnTTLExpiry TEST_PidCacheTest_AutoRefreshOnTTLExpiry
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L83 (Test: AutoRefreshOnTTLExpiry)

Test Case: ConcurrentLookupDoesNotCrash TEST_PidCacheTest_ConcurrentLookupDoesNotCrash
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L167 (Test: ConcurrentLookupDoesNotCrash)

Test Case: LookupAfterRefresh TEST_PidCacheTest_LookupAfterRefresh
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L58 (Test: LookupAfterRefresh)

Test Case: LookupMissingNode TEST_PidCacheTest_LookupMissingNode
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L74 (Test: LookupMissingNode)

Test Case: LookupRootNamespaceNode TEST_PidCacheTest_LookupRootNamespaceNode
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L151 (Test: LookupRootNamespaceNode)

Test Case: NoRefreshWithinTTL TEST_PidCacheTest_NoRefreshWithinTTL
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L106 (Test: NoRefreshWithinTTL)

Test Case: NonexistentProcDir TEST_PidCacheTest_NonexistentProcDir
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L141 (Test: NonexistentProcDir)

Test Case: DefaultPolicies TEST_PluginLayerTest_DefaultPolicies
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L407 (Test: DefaultPolicies)

Test Case: ReadNonexistentPidFails TEST_ProcReader_ReadNonexistentPidFails
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L62 (Test: ReadNonexistentPidFails)

Test Case: ReadSelfProcess TEST_ProcReader_ReadSelfProcess
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L48 (Test: ReadSelfProcess)

Test Case: ReadSystemUptime TEST_ProcReader_ReadSystemUptime
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L77 (Test: ReadSystemUptime)

Test Case: ReadSystemUptimeMissingFile TEST_ProcReader_ReadSystemUptimeMissingFile
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L84 (Test: ReadSystemUptimeMissingFile)

Test Case: StateFieldPopulated TEST_ProcReader_StateFieldPopulated
status: verified
verifies: REQ_INTEROP_003

Read our own process - should have state “R” (running) or “S” (sleeping)

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L69 (Test: StateFieldPopulated)

Test Case: ProcessInfoToJsonAllFields TEST_ProcfsPlugin_ProcessInfoToJsonAllFields
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_procfs_plugin.cpp#L21 (Test: ProcessInfoToJsonAllFields)

Test Case: ProcessInfoToJsonNegativeUptimeClamped TEST_ProcfsPlugin_ProcessInfoToJsonNegativeUptimeClamped
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_procfs_plugin.cpp#L68 (Test: ProcessInfoToJsonNegativeUptimeClamped)

Test Case: ProcessInfoToJsonZeroUptime TEST_ProcfsPlugin_ProcessInfoToJsonZeroUptime
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_procfs_plugin.cpp#L58 (Test: ProcessInfoToJsonZeroUptime)

Test Case: EmptyResolverReturnsGlobal TEST_ResolverTest_EmptyResolverReturnsGlobal
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L50 (Test: EmptyResolverReturnsGlobal)

Test Case: ExactMatch TEST_ResolverTest_ExactMatch
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L59 (Test: ExactMatch)

Test Case: LongestPrefixWins TEST_ResolverTest_LongestPrefixWins
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L83 (Test: LongestPrefixWins)

Test Case: NoMatchReturnsGlobal TEST_ResolverTest_NoMatchReturnsGlobal
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L101 (Test: NoMatchReturnsGlobal)

Test Case: PartialOverrideMergesWithGlobal TEST_ResolverTest_PartialOverrideMergesWithGlobal
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L128 (Test: PartialOverrideMergesWithGlobal)

Test Case: PrefixMatch TEST_ResolverTest_PrefixMatch
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L72 (Test: PrefixMatch)

Test Case: PrefixMatchRequiresPathBoundary TEST_ResolverTest_PrefixMatchRequiresPathBoundary
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L112 (Test: PrefixMatchRequiresPathBoundary)

Test Case: SizeReturnsEntryCount TEST_ResolverTest_SizeReturnsEntryCount
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L142 (Test: SizeReturnsEntryCount)

Test Case: AsyncDispatchNonBlocking TEST_ResourceChangeNotifier_AsyncDispatchNonBlocking
status: verified
verifies: REQ_INTEROP_097

Implementation: src/ros2_medkit_gateway/test/test_resource_change_notifier.cpp#L218 (Test: AsyncDispatchNonBlocking)

Test Case: SubscribeAndNotify TEST_ResourceChangeNotifier_SubscribeAndNotify
status: verified
verifies: REQ_INTEROP_097

Implementation: src/ros2_medkit_gateway/test/test_resource_change_notifier.cpp#L34 (Test: SubscribeAndNotify)

Test Case: ConstructorAcceptsMcapFormat TEST_RosbagCaptureTest_ConstructorAcceptsMcapFormat
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L120 (Test: ConstructorAcceptsMcapFormat)

Test Case: ConstructorRequiresValidNode TEST_RosbagCaptureTest_ConstructorRequiresValidNode
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L84 (Test: ConstructorRequiresValidNode)

Test Case: ConstructorRequiresValidStorage TEST_RosbagCaptureTest_ConstructorRequiresValidStorage
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L91 (Test: ConstructorRequiresValidStorage)

Test Case: ConstructorSucceedsWithValidParams TEST_RosbagCaptureTest_ConstructorSucceedsWithValidParams
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L98 (Test: ConstructorSucceedsWithValidParams)

Test Case: ConstructorThrowsOnInvalidFormat TEST_RosbagCaptureTest_ConstructorThrowsOnInvalidFormat
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L112 (Test: ConstructorThrowsOnInvalidFormat)

Test Case: ConstructorWithDisabledRosbag TEST_RosbagCaptureTest_ConstructorWithDisabledRosbag
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L105 (Test: ConstructorWithDisabledRosbag)

Test Case: IsEnabledReturnsConfigState TEST_RosbagCaptureTest_IsEnabledReturnsConfigState
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L130 (Test: IsEnabledReturnsConfigState)

Test Case: EmptyBuilderProducesEmptyDescriptions TEST_RouteDescriptionsTest_EmptyBuilderProducesEmptyDescriptions
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_route_descriptions.cpp#L37 (Test: EmptyBuilderProducesEmptyDescriptions)

Test Case: MultipleEndpoints TEST_RouteDescriptionsTest_MultipleEndpoints
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_route_descriptions.cpp#L70 (Test: MultipleEndpoints)

Test Case: PostWithRequestBody TEST_RouteDescriptionsTest_PostWithRequestBody
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_route_descriptions.cpp#L82 (Test: PostWithRequestBody)

status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_route_descriptions.cpp#L98 (Test: SchemaTypes)

Test Case: SingleGetEndpoint TEST_RouteDescriptionsTest_SingleGetEndpoint
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_route_descriptions.cpp#L46 (Test: SingleGetEndpoint)

Test Case: AuthEnabledAdds401And403Responses TEST_RouteRegistryTest_AuthEnabledAdds401And403Responses
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L128 (Test: AuthEnabledAdds401And403Responses)

Test Case: ErrorResponsesUseGenericErrorRef TEST_RouteRegistryTest_ErrorResponsesUseGenericErrorRef
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L548 (Test: ErrorResponsesUseGenericErrorRef)

Test Case: OperationIdIsGenerated TEST_RouteRegistryTest_OperationIdIsGenerated
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L221 (Test: OperationIdIsGenerated)

Test Case: PathParamDescriptionsArePresent TEST_RouteRegistryTest_PathParamDescriptionsArePresent
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L264 (Test: PathParamDescriptionsArePresent)

Test Case: ToOpenapiPathsContainsRegisteredRoute TEST_RouteRegistryTest_ToOpenapiPathsContainsRegisteredRoute
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L44 (Test: ToOpenapiPathsContainsRegisteredRoute)

Test Case: ToOpenapiPathsMultipleMethodsSamePath TEST_RouteRegistryTest_ToOpenapiPathsMultipleMethodsSamePath
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L56 (Test: ToOpenapiPathsMultipleMethodsSamePath)

Test Case: ToRegexPathRootBecomesRootAnchored TEST_RouteRegistryTest_ToRegexPathRootBecomesRootAnchored
status: verified
verifies: REQ_INTEROP_002

Register the root path and verify the regex conversion via the handler registration (to_regex_path is private, test indirectly)

Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L72 (Test: ToRegexPathRootBecomesRootAnchored)

Test Case: DefaultPolicies TEST_RuntimeLayerTest_DefaultPolicies
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L374 (Test: DefaultPolicies)

Test Case: ExactMatch_NodeNameAndNamespace TEST_RuntimeLinkerTest_ExactMatch_NodeNameAndNamespace
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_runtime_linker.cpp#L77 (Test: ExactMatch_NodeNameAndNamespace)

Test Case: OrphanPolicy_IncludeAsOrphan_NoError TEST_RuntimeLinkerTest_OrphanPolicy_IncludeAsOrphan_NoError
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_runtime_linker.cpp#L307 (Test: OrphanPolicy_IncludeAsOrphan_NoError)

Test Case: OrphanPolicy_Warn_NoError TEST_RuntimeLinkerTest_OrphanPolicy_Warn_NoError
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_runtime_linker.cpp#L293 (Test: OrphanPolicy_Warn_NoError)

status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_schema_builder.cpp#L230 (Test: FromRosMsgKnownType)

Test Case: FromRosMsgUnknownType TEST_SchemaBuilderRuntimeTest_FromRosMsgUnknownType
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_gateway/test/test_schema_builder.cpp#L241 (Test: FromRosMsgUnknownType)

status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L427 (Test: AlreadyRunningMapsTo409)

status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L437 (Test: ConcurrencyLimitMapsTo429)

status: verified
verifies: REQ_INTEROP_043

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L537 (Test: DeleteReturns204)

status: verified
verifies: REQ_INTEROP_040

Upload handler needs multipart file field - use get_script with FileTooLarge instead since send_script_error is shared across all handlers

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L447 (Test: FileTooLargeMapsTo413)

status: verified
verifies: REQ_INTEROP_043

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L416 (Test: ManagedScriptMapsTo409)

status: verified
verifies: REQ_INTEROP_042

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L407 (Test: NotFoundMapsTo404)

Test Case: StartExecutionReturns202WithLocation TEST_ScriptHandlersErrorMappingTest_StartExecutionReturns202WithLocation
status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L518 (Test: StartExecutionReturns202WithLocation)

status: verified
verifies: REQ_INTEROP_040

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L497 (Test: UploadRejectsWrongContentType)

status: verified
verifies: REQ_INTEROP_040

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L471 (Test: UploadReturns201WithLocation)

Test Case: ControlExecutionReturns501WhenNoBackend TEST_ScriptHandlersNoBackendTest_ControlExecutionReturns501WhenNoBackend
status: verified
verifies: REQ_INTEROP_047

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L271 (Test: ControlExecutionReturns501WhenNoBackend)

Test Case: DeleteReturns501WhenNoBackend TEST_ScriptHandlersNoBackendTest_DeleteReturns501WhenNoBackend
status: verified
verifies: REQ_INTEROP_043

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L247 (Test: DeleteReturns501WhenNoBackend)

Test Case: GetExecutionReturns501WhenNoBackend TEST_ScriptHandlersNoBackendTest_GetExecutionReturns501WhenNoBackend
status: verified
verifies: REQ_INTEROP_046

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L263 (Test: GetExecutionReturns501WhenNoBackend)

status: verified
verifies: REQ_INTEROP_042

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L239 (Test: GetReturns501WhenNoBackend)

Test Case: ListReturns501WhenNoBackend TEST_ScriptHandlersNoBackendTest_ListReturns501WhenNoBackend
status: verified
verifies: REQ_INTEROP_041

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L231 (Test: ListReturns501WhenNoBackend)

Test Case: StartExecutionReturns501WhenNoBackend TEST_ScriptHandlersNoBackendTest_StartExecutionReturns501WhenNoBackend
status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L255 (Test: StartExecutionReturns501WhenNoBackend)

Test Case: UploadReturns501WhenNoBackend TEST_ScriptHandlersNoBackendTest_UploadReturns501WhenNoBackend
status: verified
verifies: REQ_INTEROP_040

Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L221 (Test: UploadReturns501WhenNoBackend)

Test Case: ControlExecution TEST_ScriptManagerTest_ControlExecution
status: verified
verifies: REQ_INTEROP_047

Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L232 (Test: ControlExecution)

Test Case: DeleteManifestScript TEST_ScriptManagerTest_DeleteManifestScript
status: verified
verifies: REQ_INTEROP_043

Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L208 (Test: DeleteManifestScript)

Test Case: DeleteScript TEST_ScriptManagerTest_DeleteScript
status: verified
verifies: REQ_INTEROP_043

Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L202 (Test: DeleteScript)

Test Case: GetExecution TEST_ScriptManagerTest_GetExecution
status: verified
verifies: REQ_INTEROP_046

Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L224 (Test: GetExecution)

Test Case: GetScript TEST_ScriptManagerTest_GetScript
status: verified
verifies: REQ_INTEROP_042

Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L181 (Test: GetScript)

Test Case: GetScriptNotFound TEST_ScriptManagerTest_GetScriptNotFound
status: verified
verifies: REQ_INTEROP_042

Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L188 (Test: GetScriptNotFound)

Test Case: ListScripts TEST_ScriptManagerTest_ListScripts
status: verified
verifies: REQ_INTEROP_041

Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L173 (Test: ListScripts)

Test Case: StartExecution TEST_ScriptManagerTest_StartExecution
status: verified
verifies: REQ_INTEROP_044

Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L215 (Test: StartExecution)

Test Case: UploadScript TEST_ScriptManagerTest_UploadScript
status: verified
verifies: REQ_INTEROP_040

Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L195 (Test: UploadScript)

Test Case: BackgroundCaptureInitializesSubscriptions TEST_SnapshotCaptureTest_BackgroundCaptureInitializesSubscriptions
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L201 (Test: BackgroundCaptureInitializesSubscriptions)

Test Case: ConfigAccessorReturnsCorrectValues TEST_SnapshotCaptureTest_ConfigAccessorReturnsCorrectValues
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L169 (Test: ConfigAccessorReturnsCorrectValues)

Test Case: ConstructorRequiresValidNode TEST_SnapshotCaptureTest_ConstructorRequiresValidNode
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L48 (Test: ConstructorRequiresValidNode)

Test Case: ConstructorRequiresValidStorage TEST_SnapshotCaptureTest_ConstructorRequiresValidStorage
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L54 (Test: ConstructorRequiresValidStorage)

Test Case: ConstructorSucceedsWithValidParams TEST_SnapshotCaptureTest_ConstructorSucceedsWithValidParams
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L60 (Test: ConstructorSucceedsWithValidParams)

Test Case: DisabledCaptureSkipsProcessing TEST_SnapshotCaptureTest_DisabledCaptureSkipsProcessing
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L67 (Test: DisabledCaptureSkipsProcessing)

Test Case: EmptyConfigurationHandledGracefully TEST_SnapshotCaptureTest_EmptyConfigurationHandledGracefully
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L186 (Test: EmptyConfigurationHandledGracefully)

Test Case: InvalidRegexPatternIsSkipped TEST_SnapshotCaptureTest_InvalidRegexPatternIsSkipped
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L145 (Test: InvalidRegexPatternIsSkipped)

Test Case: IsEnabledReturnsConfigState TEST_SnapshotCaptureTest_IsEnabledReturnsConfigState
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L81 (Test: IsEnabledReturnsConfigState)

Test Case: MultipleValidPatternsCompiled TEST_SnapshotCaptureTest_MultipleValidPatternsCompiled
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L156 (Test: MultipleValidPatternsCompiled)

Test Case: OnDemandCaptureHandlesNonExistentTopic TEST_SnapshotCaptureTest_OnDemandCaptureHandlesNonExistentTopic
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L213 (Test: OnDemandCaptureHandlesNonExistentTopic)

Test Case: ClearFaultDeletesAssociatedSnapshots TEST_SqliteFaultStorageTest_ClearFaultDeletesAssociatedSnapshots
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L683 (Test: ClearFaultDeletesAssociatedSnapshots)

Test Case: FilterSnapshotsByTopic TEST_SqliteFaultStorageTest_FilterSnapshotsByTopic
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L646 (Test: FilterSnapshotsByTopic)

Test Case: GetAllRosbagFilesReturnsSortedByCreatedAt TEST_SqliteFaultStorageTest_GetAllRosbagFilesReturnsSortedByCreatedAt
status: verified
verifies: REQ_INTEROP_073

Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L771 (Test: GetAllRosbagFilesReturnsSortedByCreatedAt)

Test Case: ListRosbagsForEntityFiltersCorrectly TEST_SqliteFaultStorageTest_ListRosbagsForEntityFiltersCorrectly
status: verified
verifies: REQ_INTEROP_071

Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L724 (Test: ListRosbagsForEntityFiltersCorrectly)

Test Case: MultipleSnapshotsForSameFault TEST_SqliteFaultStorageTest_MultipleSnapshotsForSameFault
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L616 (Test: MultipleSnapshotsForSameFault)

Test Case: NoSnapshotsForUnknownFault TEST_SqliteFaultStorageTest_NoSnapshotsForUnknownFault
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L677 (Test: NoSnapshotsForUnknownFault)

Test Case: StoreAndRetrieveSnapshot TEST_SqliteFaultStorageTest_StoreAndRetrieveSnapshot
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L586 (Test: StoreAndRetrieveSnapshot)

status: verified
verifies: REQ_INTEROP_090

Implementation: src/ros2_medkit_gateway/test/test_sse_transport_provider.cpp#L32 (Test: ProtocolReturnsSse)

Test Case: StartReturnsEventsUrl TEST_SseTransportProviderTest_StartReturnsEventsUrl
status: verified
verifies: REQ_INTEROP_090

Implementation: src/ros2_medkit_gateway/test/test_sse_transport_provider.cpp#L37 (Test: StartReturnsEventsUrl)

status: verified
verifies: REQ_INTEROP_090

Implementation: src/ros2_medkit_gateway/test/test_sse_transport_provider.cpp#L53 (Test: StopRemovesStream)

Test Case: FindPidForNodeInSyntheticProc TEST_SyntheticProcTest_FindPidForNodeInSyntheticProc
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L137 (Test: FindPidForNodeInSyntheticProc)

Test Case: MalformedStatMissingComm TEST_SyntheticProcTest_MalformedStatMissingComm
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L176 (Test: MalformedStatMissingComm)

Test Case: ReadSyntheticProc TEST_SyntheticProcTest_ReadSyntheticProc
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L94 (Test: ReadSyntheticProc)

Test Case: ReadSystemUptimeSynthetic TEST_SyntheticProcTest_ReadSystemUptimeSynthetic
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L165 (Test: ReadSystemUptimeSynthetic)

Test Case: TruncatedStatAfterComm TEST_SyntheticProcTest_TruncatedStatAfterComm
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L200 (Test: TruncatedStatAfterComm)

Test Case: ComponentEndpointEmptyUnitsArray TEST_SystemdUtils_ComponentEndpointEmptyUnitsArray
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L52 (Test: ComponentEndpointEmptyUnitsArray)

Test Case: EscapeAtSignInTemplateUnit TEST_SystemdUtils_EscapeAtSignInTemplateUnit
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L37 (Test: EscapeAtSignInTemplateUnit)

Test Case: EscapeDotInServiceExtension TEST_SystemdUtils_EscapeDotInServiceExtension
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L27 (Test: EscapeDotInServiceExtension)

Test Case: EscapeEmptyString TEST_SystemdUtils_EscapeEmptyString
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L47 (Test: EscapeEmptyString)

Test Case: EscapeHyphenInUnitName TEST_SystemdUtils_EscapeHyphenInUnitName
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L32 (Test: EscapeHyphenInUnitName)

Test Case: EscapeSimpleServiceName TEST_SystemdUtils_EscapeSimpleServiceName
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L22 (Test: EscapeSimpleServiceName)

Test Case: EscapeSlashInPath TEST_SystemdUtils_EscapeSlashInPath
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L42 (Test: EscapeSlashInPath)

Test Case: test_03_authenticate_valid_credentials TEST_TestAuthenticationIntegration_test_03_authenticate_valid_credentials
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_integration_tests/test/features/test_auth.test.py#L97 (Test: test_03_authenticate_valid_credentials)

Test Case: test_06_authenticate_form_urlencoded TEST_TestAuthenticationIntegration_test_06_authenticate_form_urlencoded
status: verified
verifies: REQ_INTEROP_086

Implementation: src/ros2_medkit_integration_tests/test/features/test_auth.test.py#L146 (Test: test_06_authenticate_form_urlencoded)

status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_integration_tests/test/features/test_auth.test.py#L158 (Test: test_07_refresh_token)

Test Case: test_bulk_data_download_not_found TEST_TestBulkDataApi_test_bulk_data_download_not_found
status: verified
verifies: REQ_INTEROP_073

Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L167 (Test: test_bulk_data_download_not_found)

Test Case: test_bulk_data_list_categories_all_entity_types TEST_TestBulkDataApi_test_bulk_data_list_categories_all_entity_types
status: verified
verifies: REQ_INTEROP_071

As a ros2_medkit extension, these entity types support bulk-data. Areas provide read-only aggregated access via their child entities. Functions also support bulk-data (tested separately with manifest).

Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L68 (Test: test_bulk_data_list_categories_all_entity_types)

Test Case: test_bulk_data_list_categories_entity_not_found TEST_TestBulkDataApi_test_bulk_data_list_categories_entity_not_found
status: verified
verifies: REQ_INTEROP_071

Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L94 (Test: test_bulk_data_list_categories_entity_not_found)

Test Case: test_bulk_data_list_categories_success TEST_TestBulkDataApi_test_bulk_data_list_categories_success
status: verified
verifies: REQ_INTEROP_071

Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L51 (Test: test_bulk_data_list_categories_success)

Test Case: test_bulk_data_list_descriptors_empty_result TEST_TestBulkDataApi_test_bulk_data_list_descriptors_empty_result
status: verified
verifies: REQ_INTEROP_072

Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L136 (Test: test_bulk_data_list_descriptors_empty_result)

Test Case: test_bulk_data_list_descriptors_structure TEST_TestBulkDataApi_test_bulk_data_list_descriptors_structure
status: verified
verifies: REQ_INTEROP_072

Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L108 (Test: test_bulk_data_list_descriptors_structure)

Test Case: test_bulk_data_nested_entity_path TEST_TestBulkDataApi_test_bulk_data_nested_entity_path
status: verified
verifies: REQ_INTEROP_071

Note: Areas do NOT support bulk-data per SOVD Table 8, so we test with a component that has a namespace path (nested entity).

Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L182 (Test: test_bulk_data_nested_entity_path)

Test Case: test_bulk_data_unknown_category_returns_404 TEST_TestBulkDataApi_test_bulk_data_unknown_category_returns_404
status: verified
verifies: REQ_INTEROP_072

Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L153 (Test: test_bulk_data_unknown_category_returns_404)

Test Case: test_01_list_configurations TEST_TestConfigurationApi_test_01_list_configurations
status: verified
verifies: REQ_INTEROP_048

Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L47 (Test: test_01_list_configurations)

Test Case: test_02_get_configuration TEST_TestConfigurationApi_test_02_get_configuration
status: verified
verifies: REQ_INTEROP_049

Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L80 (Test: test_02_get_configuration)

Test Case: test_03_set_configuration TEST_TestConfigurationApi_test_03_set_configuration
status: verified
verifies: REQ_INTEROP_050

This test modifies min_temp and resets it within the same test.

Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L110 (Test: test_03_set_configuration)

Test Case: test_04_delete_configuration_resets_to_default TEST_TestConfigurationApi_test_04_delete_configuration_resets_to_default
status: verified
verifies: REQ_INTEROP_052

The DELETE method resets the parameter to its default value. It first changes the value, then resets it, then verifies the reset.

Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L161 (Test: test_04_delete_configuration_resets_to_default)

Test Case: test_05_configurations_nonexistent_app TEST_TestConfigurationApi_test_05_configurations_nonexistent_app
status: verified
verifies: REQ_INTEROP_048

Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L202 (Test: test_05_configurations_nonexistent_app)

Test Case: test_06_configuration_nonexistent_parameter TEST_TestConfigurationApi_test_06_configuration_nonexistent_parameter
status: verified
verifies: REQ_INTEROP_049

Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L220 (Test: test_06_configuration_nonexistent_parameter)

Test Case: test_07_set_configuration_missing_value TEST_TestConfigurationApi_test_07_set_configuration_missing_value
status: verified
verifies: REQ_INTEROP_050

Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L236 (Test: test_07_set_configuration_missing_value)

Test Case: test_08_root_endpoint_includes_configurations TEST_TestConfigurationApi_test_08_root_endpoint_includes_configurations
status: verified
verifies: REQ_INTEROP_048

Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L253 (Test: test_08_root_endpoint_includes_configurations)

Test Case: test_all_apps_same_container TEST_TestContainerAppEndpoint_test_all_apps_same_container
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L195 (Test: test_all_apps_same_container)

Test Case: test_container_id_is_64_char_hex TEST_TestContainerAppEndpoint_test_container_id_is_64_char_hex
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L114 (Test: test_container_id_is_64_char_hex)

Test Case: test_cpu_quota_detected TEST_TestContainerAppEndpoint_test_cpu_quota_detected
status: verified
verifies: REQ_INTEROP_003

docker-compose.container.yml sets cpus: 1.0. For cgroup v2 with cpus=1.0, the quota is typically 100000us with a period of 100000us.

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L167 (Test: test_cpu_quota_detected)

Test Case: test_memory_limit_detected TEST_TestContainerAppEndpoint_test_memory_limit_detected
status: verified
verifies: REQ_INTEROP_003

docker-compose.container.yml sets 512MB = 536870912 bytes.

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L146 (Test: test_memory_limit_detected)

Test Case: test_returns_container_info TEST_TestContainerAppEndpoint_test_returns_container_info
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L99 (Test: test_returns_container_info)

Test Case: test_runtime_is_docker TEST_TestContainerAppEndpoint_test_runtime_is_docker
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L132 (Test: test_runtime_is_docker)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L233 (Test: test_containers_include_node_ids)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L249 (Test: test_containers_include_runtime)

Test Case: test_returns_containers_aggregation TEST_TestContainerComponentEndpoint_test_returns_containers_aggregation
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L218 (Test: test_returns_containers_aggregation)

Test Case: test_nonexistent_app_returns_404 TEST_TestContainerErrorHandling_test_nonexistent_app_returns_404
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L267 (Test: test_nonexistent_app_returns_404)

Test Case: test_nonexistent_component_returns_404 TEST_TestContainerErrorHandling_test_nonexistent_component_returns_404
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L278 (Test: test_nonexistent_component_returns_404)

Test Case: test_app_data_body_door TEST_TestDataRead_test_app_data_body_door
status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L100 (Test: test_app_data_body_door)

Test Case: test_app_data_chassis_brakes TEST_TestDataRead_test_app_data_chassis_brakes
status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L81 (Test: test_app_data_chassis_brakes)

Test Case: test_app_data_powertrain_engine TEST_TestDataRead_test_app_data_powertrain_engine
status: verified
verifies: REQ_INTEROP_018

Apps are ROS 2 nodes. The temp_sensor app publishes temperature data.

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L57 (Test: test_app_data_powertrain_engine)

Test Case: test_app_data_structure TEST_TestDataRead_test_app_data_structure
status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L119 (Test: test_app_data_structure)

Test Case: test_app_no_topics TEST_TestDataRead_test_app_no_topics
status: verified
verifies: REQ_INTEROP_018

The calibration app typically has only services, no topics. Uses poll_endpoint to avoid race conditions with service-only nodes that can transiently disappear from the ROS 2 graph between discovery cycles (observed on Jazzy).

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L156 (Test: test_app_no_topics)

Test Case: test_app_nonexistent_error TEST_TestDataRead_test_app_nonexistent_error
status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L142 (Test: test_app_nonexistent_error)

Test Case: test_component_nonexistent_topic_metadata_only TEST_TestDataRead_test_component_nonexistent_topic_metadata_only
status: verified
verifies: REQ_INTEROP_019

The gateway returns metadata about the topic even if no data is available. Uses synthetic ‘powertrain’ component.

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L287 (Test: test_component_nonexistent_topic_metadata_only)

Test Case: test_component_topic_data_structure TEST_TestDataRead_test_component_topic_data_structure
status: verified
verifies: REQ_INTEROP_019

Uses synthetic ‘powertrain’ component.

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L248 (Test: test_component_topic_data_structure)

Test Case: test_component_topic_nonexistent_component_error TEST_TestDataRead_test_component_topic_nonexistent_component_error
status: verified
verifies: REQ_INTEROP_019

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L310 (Test: test_component_topic_nonexistent_component_error)

Test Case: test_component_topic_pressure TEST_TestDataRead_test_component_topic_pressure
status: verified
verifies: REQ_INTEROP_019

Uses synthetic ‘chassis’ component.

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L224 (Test: test_component_topic_pressure)

Test Case: test_component_topic_rpm TEST_TestDataRead_test_component_topic_rpm
status: verified
verifies: REQ_INTEROP_019

Uses synthetic ‘powertrain’ component.

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L200 (Test: test_component_topic_rpm)

Test Case: test_component_topic_temperature TEST_TestDataRead_test_component_topic_temperature
status: verified
verifies: REQ_INTEROP_019

Uses synthetic ‘powertrain’ component which aggregates apps in that namespace.

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L174 (Test: test_component_topic_temperature)

Test Case: test_component_topic_valid_names TEST_TestDataRead_test_component_topic_valid_names
status: verified
verifies: REQ_INTEROP_019

Uses synthetic ‘powertrain’ component.

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L348 (Test: test_component_topic_valid_names)

Test Case: test_component_topic_with_slashes TEST_TestDataRead_test_component_topic_with_slashes
status: verified
verifies: REQ_INTEROP_019

Uses synthetic ‘powertrain’ component.

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L329 (Test: test_component_topic_with_slashes)

Test Case: test_list_area_data TEST_TestDataRead_test_list_area_data
status: verified
verifies: REQ_INTEROP_018

Areas aggregate data from all components and apps in their hierarchy. The powertrain area should include topics from engine sensors.

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L421 (Test: test_list_area_data)

Test Case: test_list_area_data_empty TEST_TestDataRead_test_list_area_data_empty
status: verified
verifies: REQ_INTEROP_018

Some areas may exist but have no direct topics - they should return 200 with empty items, not 404.

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L493 (Test: test_list_area_data_empty)

Test Case: test_list_area_data_nonexistent TEST_TestDataRead_test_list_area_data_nonexistent
status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L456 (Test: test_list_area_data_nonexistent)

Test Case: test_list_area_data_root TEST_TestDataRead_test_list_area_data_root
status: verified
verifies: REQ_INTEROP_018

The root area aggregates all entities in the system.

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L474 (Test: test_list_area_data_root)

Test Case: test_list_function_data_invalid_id TEST_TestDataRead_test_list_function_data_invalid_id
status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L539 (Test: test_list_function_data_invalid_id)

Test Case: test_list_function_data_nonexistent TEST_TestDataRead_test_list_function_data_nonexistent
status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L521 (Test: test_list_function_data_nonexistent)

Test Case: test_publish_brake_command TEST_TestDataWrite_test_publish_brake_command
status: verified
verifies: REQ_INTEROP_020

Uses synthetic ‘chassis’ component.

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_write.test.py#L47 (Test: test_publish_brake_command)

Test Case: test_publish_invalid_json_body TEST_TestDataWrite_test_publish_invalid_json_body
status: verified
verifies: REQ_INTEROP_020

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_write.test.py#L156 (Test: test_publish_invalid_json_body)

Test Case: test_publish_nonexistent_component TEST_TestDataWrite_test_publish_nonexistent_component
status: verified
verifies: REQ_INTEROP_020

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_write.test.py#L137 (Test: test_publish_nonexistent_component)

Test Case: test_publish_validation_invalid_type_format TEST_TestDataWrite_test_publish_validation_invalid_type_format
status: verified
verifies: REQ_INTEROP_020

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_write.test.py#L107 (Test: test_publish_validation_invalid_type_format)

Test Case: test_publish_validation_missing_data TEST_TestDataWrite_test_publish_validation_missing_data
status: verified
verifies: REQ_INTEROP_020

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_write.test.py#L90 (Test: test_publish_validation_missing_data)

Test Case: test_publish_validation_missing_type TEST_TestDataWrite_test_publish_validation_missing_type
status: verified
verifies: REQ_INTEROP_020

Implementation: src/ros2_medkit_integration_tests/test/features/test_data_write.test.py#L73 (Test: test_publish_validation_missing_type)

Test Case: test_apps_docs_returns_entity_collection_spec TEST_TestDocsEndpoint_test_apps_docs_returns_entity_collection_spec
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L80 (Test: test_apps_docs_returns_entity_collection_spec)

Test Case: test_areas_docs_returns_entity_collection_spec TEST_TestDocsEndpoint_test_areas_docs_returns_entity_collection_spec
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L114 (Test: test_areas_docs_returns_entity_collection_spec)

Test Case: test_components_docs_returns_entity_collection_spec TEST_TestDocsEndpoint_test_components_docs_returns_entity_collection_spec
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L97 (Test: test_components_docs_returns_entity_collection_spec)

Test Case: test_data_collection_docs TEST_TestDocsEndpoint_test_data_collection_docs
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L157 (Test: test_data_collection_docs)

Test Case: test_logs_configuration_schema_field_names TEST_TestDocsEndpoint_test_logs_configuration_schema_field_names
status: verified
verifies: REQ_INTEROP_002

The log configuration schema must use ‘severity_filter’ and ‘max_entries’, not ‘level’ (which was a bug in the initial implementation).

Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L197 (Test: test_logs_configuration_schema_field_names)

Test Case: test_nonexistent_entity_docs_returns_404 TEST_TestDocsEndpoint_test_nonexistent_entity_docs_returns_404
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L236 (Test: test_nonexistent_entity_docs_returns_404)

Test Case: test_nonexistent_path_docs_returns_404 TEST_TestDocsEndpoint_test_nonexistent_path_docs_returns_404
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L249 (Test: test_nonexistent_path_docs_returns_404)

Test Case: test_operations_collection_docs TEST_TestDocsEndpoint_test_operations_collection_docs
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L185 (Test: test_operations_collection_docs)

Test Case: test_root_docs_returns_openapi_spec TEST_TestDocsEndpoint_test_root_docs_returns_openapi_spec
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L56 (Test: test_root_docs_returns_openapi_spec)

Test Case: test_spec_contains_components TEST_TestDocsEndpoint_test_spec_contains_components
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L276 (Test: test_spec_contains_components)

Test Case: test_spec_contains_server_info TEST_TestDocsEndpoint_test_spec_contains_server_info
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L262 (Test: test_spec_contains_server_info)

Test Case: test_specific_app_docs TEST_TestDocsEndpoint_test_specific_app_docs
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L131 (Test: test_specific_app_docs)

Test Case: test_area_components_nonexistent_error TEST_TestEntityListing_test_area_components_nonexistent_error
status: verified
verifies: REQ_INTEROP_006

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L153 (Test: test_area_components_nonexistent_error)

Test Case: test_area_components_success TEST_TestEntityListing_test_area_components_success
status: verified
verifies: REQ_INTEROP_006

With synthetic components, the powertrain area contains the ‘powertrain’ synthetic component which aggregates all ROS 2 nodes in that namespace.

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L121 (Test: test_area_components_success)

Test Case: test_automotive_areas_discovery TEST_TestEntityListing_test_automotive_areas_discovery
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L64 (Test: test_automotive_areas_discovery)

Test Case: test_invalid_app_id_special_chars TEST_TestEntityListing_test_invalid_app_id_special_chars
status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L171 (Test: test_invalid_app_id_special_chars)

Test Case: test_invalid_area_id_special_chars TEST_TestEntityListing_test_invalid_area_id_special_chars
status: verified
verifies: REQ_INTEROP_006

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L203 (Test: test_invalid_area_id_special_chars)

Test Case: test_invalid_ids_with_special_chars TEST_TestEntityListing_test_invalid_ids_with_special_chars
status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L256 (Test: test_invalid_ids_with_special_chars)

Test Case: test_list_areas TEST_TestEntityListing_test_list_areas
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L51 (Test: test_list_areas)

Test Case: test_list_components TEST_TestEntityListing_test_list_components
status: verified
verifies: REQ_INTEROP_003

With heuristic discovery (default), components are synthetic groups created by namespace aggregation. ROS 2 nodes are exposed as Apps.

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L81 (Test: test_list_components)

Test Case: test_valid_ids_with_underscores TEST_TestEntityListing_test_valid_ids_with_underscores
status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L231 (Test: test_valid_ids_with_underscores)

Test Case: test_app_routes_work_with_app_id TEST_TestEntityRouting_test_app_routes_work_with_app_id
status: verified
verifies: REQ_INTEROP_003

Verify that while /components rejects app IDs, /apps accepts them.

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_routing.test.py#L173 (Test: test_app_routes_work_with_app_id)

Test Case: test_component_route_rejects_app_id_configurations TEST_TestEntityRouting_test_component_route_rejects_app_id_configurations
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_routing.test.py#L135 (Test: test_component_route_rejects_app_id_configurations)

Test Case: test_component_route_rejects_app_id_data TEST_TestEntityRouting_test_component_route_rejects_app_id_data
status: verified
verifies: REQ_INTEROP_003

In runtime-only discovery mode, /components/{id} should only accept synthetic component IDs, not individual ROS 2 node (app) IDs.

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_routing.test.py#L84 (Test: test_component_route_rejects_app_id_data)

Test Case: test_component_route_rejects_app_id_faults TEST_TestEntityRouting_test_component_route_rejects_app_id_faults
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_routing.test.py#L152 (Test: test_component_route_rejects_app_id_faults)

Test Case: test_component_route_rejects_app_id_operations TEST_TestEntityRouting_test_component_route_rejects_app_id_operations
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_routing.test.py#L118 (Test: test_component_route_rejects_app_id_operations)

Test Case: test_16_snapshot_capture_on_fault_confirmation TEST_TestFaultManagerIntegration_test_16_snapshot_capture_on_fault_confirmation
status: verified
verifies: REQ_INTEROP_088

Test that snapshot is captured when fault is confirmed.

Implementation: src/ros2_medkit_fault_manager/test/test_integration.test.py#L559 (Test: test_16_snapshot_capture_on_fault_confirmation)

Test Case: test_17_get_snapshots_nonexistent_fault TEST_TestFaultManagerIntegration_test_17_get_snapshots_nonexistent_fault
status: verified
verifies: REQ_INTEROP_088

Test GetSnapshots returns error for nonexistent fault.

Implementation: src/ros2_medkit_fault_manager/test/test_integration.test.py#L636 (Test: test_17_get_snapshots_nonexistent_fault)

Test Case: test_18_get_snapshots_empty_fault_code TEST_TestFaultManagerIntegration_test_18_get_snapshots_empty_fault_code
status: verified
verifies: REQ_INTEROP_088

Test GetSnapshots returns error for empty fault code.

Implementation: src/ros2_medkit_fault_manager/test/test_integration.test.py#L652 (Test: test_18_get_snapshots_empty_fault_code)

Test Case: test_19_snapshot_with_topic_filter TEST_TestFaultManagerIntegration_test_19_snapshot_with_topic_filter
status: verified
verifies: REQ_INTEROP_088

Test GetSnapshots with specific topic filter.

Implementation: src/ros2_medkit_fault_manager/test/test_integration.test.py#L668 (Test: test_19_snapshot_with_topic_filter)

Test Case: test_20_snapshot_config_loads_patterns TEST_TestFaultManagerIntegration_test_20_snapshot_config_loads_patterns
status: verified
verifies: REQ_INTEROP_088

Test that pattern-based config is loaded correctly.

Implementation: src/ros2_medkit_fault_manager/test/test_integration.test.py#L699 (Test: test_20_snapshot_config_loads_patterns)

Test Case: test_faults_nonexistent_component TEST_TestFaultsApi_test_faults_nonexistent_component
status: verified
verifies: REQ_INTEROP_012

Implementation: src/ros2_medkit_integration_tests/test/features/test_faults_api.test.py#L103 (Test: test_faults_nonexistent_component)

Test Case: test_get_nonexistent_fault TEST_TestFaultsApi_test_get_nonexistent_fault
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_integration_tests/test/features/test_faults_api.test.py#L121 (Test: test_get_nonexistent_fault)

Test Case: test_list_faults_response_structure TEST_TestFaultsApi_test_list_faults_response_structure
status: verified
verifies: REQ_INTEROP_012

In the heuristic discovery model, ROS nodes are Apps.

Implementation: src/ros2_medkit_integration_tests/test/features/test_faults_api.test.py#L79 (Test: test_list_faults_response_structure)

Test Case: test_root_endpoint_includes_faults TEST_TestFaultsApi_test_root_endpoint_includes_faults
status: verified
verifies: REQ_INTEROP_012

Implementation: src/ros2_medkit_integration_tests/test/features/test_faults_api.test.py#L48 (Test: test_root_endpoint_includes_faults)

Test Case: test_app_accessible_without_areas TEST_TestFlatEntityTree_test_app_accessible_without_areas
status: verified
verifies: REQ_INTEROP_003

Verifies that apps are accessible in a flat entity tree where no areas are defined.

Implementation: src/ros2_medkit_integration_tests/test/features/test_flat_entity_tree.test.py#L169 (Test: test_app_accessible_without_areas)

Test Case: test_apps_count TEST_TestFlatEntityTree_test_apps_count
status: verified
verifies: REQ_INTEROP_003

Expected: lidar-driver, turtlebot3-node, nav2-controller, robot-state-publisher.

Implementation: src/ros2_medkit_integration_tests/test/features/test_flat_entity_tree.test.py#L123 (Test: test_apps_count)

Test Case: test_areas_empty TEST_TestFlatEntityTree_test_areas_empty
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/features/test_flat_entity_tree.test.py#L68 (Test: test_areas_empty)

Test Case: test_components_count TEST_TestFlatEntityTree_test_components_count
status: verified
verifies: REQ_INTEROP_003

Expected: turtlebot3 (root) + raspberry-pi, opencr-board, lds-sensor (subcomponents).

Implementation: src/ros2_medkit_integration_tests/test/features/test_flat_entity_tree.test.py#L80 (Test: test_components_count)

Test Case: test_functions_count TEST_TestFlatEntityTree_test_functions_count
status: verified
verifies: REQ_INTEROP_003

Expected: autonomous-navigation, teleoperation.

Implementation: src/ros2_medkit_integration_tests/test/features/test_flat_entity_tree.test.py#L148 (Test: test_functions_count)

Test Case: test_subcomponents_count TEST_TestFlatEntityTree_test_subcomponents_count
status: verified
verifies: REQ_INTEROP_003

Expected: raspberry-pi, opencr-board, lds-sensor.

Implementation: src/ros2_medkit_integration_tests/test/features/test_flat_entity_tree.test.py#L102 (Test: test_subcomponents_count)

Test Case: test_app_is_located_on_endpoint TEST_TestGatewayNode_test_app_is_located_on_endpoint
status: verified
verifies: REQ_INTEROP_105

Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L871 (Test: test_app_is_located_on_endpoint)

Test Case: test_area_contains_nonexistent TEST_TestGatewayNode_test_area_contains_nonexistent
status: verified
verifies: REQ_INTEROP_006

Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L789 (Test: test_area_contains_nonexistent)

Test Case: test_component_hosts_nonexistent TEST_TestGatewayNode_test_component_hosts_nonexistent
status: verified
verifies: REQ_INTEROP_007

Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L799 (Test: test_component_hosts_nonexistent)

Test Case: test_execution_update_execution_not_found TEST_TestGatewayNode_test_execution_update_execution_not_found
status: verified
verifies: REQ_INTEROP_038

Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L695 (Test: test_execution_update_execution_not_found)

Test Case: test_execution_update_invalid_component_id TEST_TestGatewayNode_test_execution_update_invalid_component_id
status: verified
verifies: REQ_INTEROP_038

Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L655 (Test: test_execution_update_invalid_component_id)

Test Case: test_execution_update_missing_capability TEST_TestGatewayNode_test_execution_update_missing_capability
status: verified
verifies: REQ_INTEROP_038

Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L668 (Test: test_execution_update_missing_capability)

Test Case: test_execution_update_unsupported_capability TEST_TestGatewayNode_test_execution_update_unsupported_capability
status: verified
verifies: REQ_INTEROP_038

Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L681 (Test: test_execution_update_unsupported_capability)

Test Case: test_list_areas_endpoint TEST_TestGatewayNode_test_list_areas_endpoint
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L292 (Test: test_list_areas_endpoint)

Test Case: test_list_components_endpoint TEST_TestGatewayNode_test_list_components_endpoint
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L308 (Test: test_list_components_endpoint)

Test Case: test_root_endpoint TEST_TestGatewayNode_test_root_endpoint
status: verified
verifies: REQ_INTEROP_010

Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L232 (Test: test_root_endpoint)

Test Case: test_version_info_endpoint TEST_TestGatewayNode_test_version_info_endpoint
status: verified
verifies: REQ_INTEROP_001

Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L267 (Test: test_version_info_endpoint)

Test Case: test_app_detail_has_capability_uris TEST_TestHateoas_test_app_detail_has_capability_uris
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L165 (Test: test_app_detail_has_capability_uris)

Test Case: test_apps_list_has_href TEST_TestHateoas_test_apps_list_has_href
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L90 (Test: test_apps_list_has_href)

Test Case: test_area_detail_has_capability_uris TEST_TestHateoas_test_area_detail_has_capability_uris
status: verified
verifies: REQ_INTEROP_003

ros2_medkit extension: areas support resource collections beyond SOVD spec (which only defines them for apps/components).

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L188 (Test: test_area_detail_has_capability_uris)

Test Case: test_areas_list_has_href TEST_TestHateoas_test_areas_list_has_href
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L110 (Test: test_areas_list_has_href)

Test Case: test_component_detail_has_capability_uris TEST_TestHateoas_test_component_detail_has_capability_uris
status: verified
verifies: REQ_INTEROP_003

SOVD requires entity details to have flat capability URIs.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L134 (Test: test_component_detail_has_capability_uris)

Test Case: test_components_list_has_href TEST_TestHateoas_test_components_list_has_href
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L70 (Test: test_components_list_has_href)

Test Case: test_contains_list_has_href TEST_TestHateoas_test_contains_list_has_href
status: verified
verifies: REQ_INTEROP_006

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L292 (Test: test_contains_list_has_href)

Test Case: test_depends_on_apps_has_href TEST_TestHateoas_test_depends_on_apps_has_href
status: verified
verifies: REQ_INTEROP_009

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L375 (Test: test_depends_on_apps_has_href)

Test Case: test_depends_on_apps_nonexistent TEST_TestHateoas_test_depends_on_apps_nonexistent
status: verified
verifies: REQ_INTEROP_009

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L401 (Test: test_depends_on_apps_nonexistent)

Test Case: test_depends_on_components_has_href TEST_TestHateoas_test_depends_on_components_has_href
status: verified
verifies: REQ_INTEROP_008

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L348 (Test: test_depends_on_components_has_href)

Test Case: test_function_detail_has_capability_uris TEST_TestHateoas_test_function_detail_has_capability_uris
status: verified
verifies: REQ_INTEROP_003

Requires hybrid discovery mode with a manifest that defines functions.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L210 (Test: test_function_detail_has_capability_uris)

Test Case: test_functions_list_has_href TEST_TestHateoas_test_functions_list_has_href
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L464 (Test: test_functions_list_has_href)

Test Case: test_hosts_list_has_href TEST_TestHateoas_test_hosts_list_has_href
status: verified
verifies: REQ_INTEROP_007

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L318 (Test: test_hosts_list_has_href)

Test Case: test_is_located_on_apps_has_href TEST_TestHateoas_test_is_located_on_apps_has_href
status: verified
verifies: REQ_INTEROP_105

GET /apps/{id}/is-located-on returns 0-or-1 component hrefs.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L419 (Test: test_is_located_on_apps_has_href)

Test Case: test_is_located_on_apps_nonexistent TEST_TestHateoas_test_is_located_on_apps_nonexistent
status: verified
verifies: REQ_INTEROP_105

GET /apps/{id}/is-located-on returns 404 for unknown app.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L445 (Test: test_is_located_on_apps_nonexistent)

Test Case: test_subareas_list_has_href TEST_TestHateoas_test_subareas_list_has_href
status: verified
verifies: REQ_INTEROP_004

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L238 (Test: test_subareas_list_has_href)

Test Case: test_subcomponents_list_has_href TEST_TestHateoas_test_subcomponents_list_has_href
status: verified
verifies: REQ_INTEROP_005

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L261 (Test: test_subcomponents_list_has_href)

Test Case: test_x_medkit_extension_in_list_responses TEST_TestHateoas_test_x_medkit_extension_in_list_responses
status: verified
verifies: REQ_INTEROP_003

ROS2-specific data should be in x-medkit extension, not at top level.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L487 (Test: test_x_medkit_extension_in_list_responses)

Test Case: test_docs_endpoint TEST_TestHealth_test_docs_endpoint
status: verified
verifies: REQ_INTEROP_002

Implementation: src/ros2_medkit_integration_tests/test/features/test_health.test.py#L131 (Test: test_docs_endpoint)

Test Case: test_docs_spec_completeness TEST_TestHealth_test_docs_spec_completeness
status: verified
verifies: REQ_INTEROP_002

Validates that every endpoint has proper type contracts for client code generation - no bare “Successful response” without schema.

Implementation: src/ros2_medkit_integration_tests/test/features/test_health.test.py#L144 (Test: test_docs_spec_completeness)

Test Case: test_health_endpoint_returns_200 TEST_TestHealth_test_health_endpoint_returns_200
status: verified
verifies: REQ_INTEROP_010

Implementation: src/ros2_medkit_integration_tests/test/features/test_health.test.py#L47 (Test: test_health_endpoint_returns_200)

Test Case: test_root_endpoint_returns_api_info TEST_TestHealth_test_root_endpoint_returns_api_info
status: verified
verifies: REQ_INTEROP_010

Implementation: src/ros2_medkit_integration_tests/test/features/test_health.test.py#L55 (Test: test_root_endpoint_returns_api_info)

Test Case: test_root_includes_apps_endpoints TEST_TestHealth_test_root_includes_apps_endpoints
status: verified
verifies: REQ_INTEROP_010

Implementation: src/ros2_medkit_integration_tests/test/features/test_health.test.py#L114 (Test: test_root_includes_apps_endpoints)

Test Case: test_version_endpoint TEST_TestHealth_test_version_endpoint
status: verified
verifies: REQ_INTEROP_001

Implementation: src/ros2_medkit_integration_tests/test/features/test_health.test.py#L93 (Test: test_version_endpoint)

Test Case: test_exact_app_count TEST_TestHybridSuppression_test_exact_app_count
status: verified
verifies: REQ_INTEROP_003

App count must match manifest exactly - no underscored duplicates.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L156 (Test: test_exact_app_count)

Test Case: test_exact_area_count TEST_TestHybridSuppression_test_exact_area_count
status: verified
verifies: REQ_INTEROP_003

Area count must match manifest exactly - no synthetic extras.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L119 (Test: test_exact_area_count)

Test Case: test_exact_component_count TEST_TestHybridSuppression_test_exact_component_count
status: verified
verifies: REQ_INTEROP_003

Component count must match manifest exactly - no underscored duplicates.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L135 (Test: test_exact_component_count)

Test Case: test_exact_function_count TEST_TestHybridSuppression_test_exact_function_count
status: verified
verifies: REQ_INTEROP_003

Function count must match manifest exactly.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L172 (Test: test_exact_function_count)

Test Case: test_health_shows_hybrid_mode TEST_TestHybridSuppression_test_health_shows_hybrid_mode
status: verified
verifies: REQ_INTEROP_003

Health endpoint should confirm hybrid discovery mode.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L268 (Test: test_health_shows_hybrid_mode)

Test Case: test_manifest_apps_are_online TEST_TestHybridSuppression_test_manifest_apps_are_online
status: verified
verifies: REQ_INTEROP_003

Even with allow_heuristic_apps=false (gap-fill blocking runtime apps from the entity tree), the linker must still receive the unfiltered runtime apps so it can bind manifest apps to live nodes.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L244 (Test: test_manifest_apps_are_online)

Test Case: test_no_root_or_synthetic_areas TEST_TestHybridSuppression_test_no_root_or_synthetic_areas
status: verified
verifies: REQ_INTEROP_003

No ‘root’ or underscored synthetic areas should exist.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L230 (Test: test_no_root_or_synthetic_areas)

Test Case: test_no_underscored_app_duplicates TEST_TestHybridSuppression_test_no_underscored_app_duplicates
status: verified
verifies: REQ_INTEROP_003

In hybrid mode, runtime nodes matching manifest ros_bindings should be linked to the manifest app, not create separate entities like ‘powertrain_engine_temp_sensor’.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L193 (Test: test_no_underscored_app_duplicates)

Test Case: test_no_underscored_component_duplicates TEST_TestHybridSuppression_test_no_underscored_component_duplicates
status: verified
verifies: REQ_INTEROP_003

Synthetic components like ‘powertrain_engine’ should be suppressed when manifest already defines components for those namespaces.

Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L212 (Test: test_no_underscored_component_duplicates)

Test Case: test_global_clear_skips_locked_entity_faults TEST_TestLockingFaults_test_global_clear_skips_locked_entity_faults
status: verified
verifies: REQ_INTEROP_100

Lock an app, global DELETE /faults skips its faults, unlock and clear works.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking_faults.test.py#L53 (Test: test_global_clear_skips_locked_entity_faults)

Test Case: test_component_lock_allows_owner_on_child TEST_TestLockingPropagation_test_component_lock_allows_owner_on_child
status: verified
verifies: REQ_INTEROP_100

Lock owner can still access child app.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking_propagation.test.py#L107 (Test: test_component_lock_allows_owner_on_child)

Test Case: test_component_lock_blocks_child_app TEST_TestLockingPropagation_test_component_lock_blocks_child_app
status: verified
verifies: REQ_INTEROP_100

Lock on component blocks mutating operations on child app.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking_propagation.test.py#L78 (Test: test_component_lock_blocks_child_app)

Test Case: test_acquire_lock_on_app TEST_TestLocking_test_acquire_lock_on_app
status: verified
verifies: REQ_INTEROP_100

Acquire a lock on an app and verify the response.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L103 (Test: test_acquire_lock_on_app)

Test Case: test_acquire_lock_with_scopes TEST_TestLocking_test_acquire_lock_with_scopes
status: verified
verifies: REQ_INTEROP_100

Acquire a scoped lock.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L119 (Test: test_acquire_lock_with_scopes)

Test Case: test_acquire_without_client_id_returns_400 TEST_TestLocking_test_acquire_without_client_id_returns_400
status: verified
verifies: REQ_INTEROP_100

Acquire without X-Client-Id header returns 400.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L297 (Test: test_acquire_without_client_id_returns_400)

Test Case: test_acquire_without_expiration_returns_400 TEST_TestLocking_test_acquire_without_expiration_returns_400
status: verified
verifies: REQ_INTEROP_100

Acquire without lock_expiration returns 400.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L307 (Test: test_acquire_without_expiration_returns_400)

Test Case: test_already_locked_returns_409 TEST_TestLocking_test_already_locked_returns_409
status: verified
verifies: REQ_INTEROP_100

Second acquire by different client returns 409.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L313 (Test: test_already_locked_returns_409)

Test Case: test_break_lock TEST_TestLocking_test_break_lock
status: verified
verifies: REQ_INTEROP_100

Client B can break client A’s lock with break_lock=true.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L252 (Test: test_break_lock)

Test Case: test_extend_lock TEST_TestLocking_test_extend_lock
status: verified
verifies: REQ_INTEROP_103

Acquire then extend a lock’s expiration.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L174 (Test: test_extend_lock)

Test Case: test_get_lock_details TEST_TestLocking_test_get_lock_details
status: verified
verifies: REQ_INTEROP_102

Acquire then get lock details by lock ID.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L155 (Test: test_get_lock_details)

Test Case: test_list_locks TEST_TestLocking_test_list_locks
status: verified
verifies: REQ_INTEROP_101

Acquire then list locks.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L131 (Test: test_list_locks)

Test Case: test_list_locks_empty TEST_TestLocking_test_list_locks_empty
status: verified
verifies: REQ_INTEROP_101

List locks when none exist returns empty items.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L148 (Test: test_list_locks_empty)

Test Case: test_lock_blocks_other_client TEST_TestLocking_test_lock_blocks_other_client
status: verified
verifies: REQ_INTEROP_100

Lock by client A blocks data write by client B (409).

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L213 (Test: test_lock_blocks_other_client)

Test Case: test_lock_expires_automatically TEST_TestLocking_test_lock_expires_automatically
status: verified
verifies: REQ_INTEROP_100

Lock with short TTL expires and no longer blocks access.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L345 (Test: test_lock_expires_automatically)

Test Case: test_nonexistent_entity_returns_404 TEST_TestLocking_test_nonexistent_entity_returns_404
status: verified
verifies: REQ_INTEROP_100

Acquiring lock on nonexistent entity returns 404.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L371 (Test: test_nonexistent_entity_returns_404)

Test Case: test_owned_field_per_client TEST_TestLocking_test_owned_field_per_client
status: verified
verifies: REQ_INTEROP_101

The ‘owned’ field reflects the requesting client.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L272 (Test: test_owned_field_per_client)

Test Case: test_release_lock TEST_TestLocking_test_release_lock
status: verified
verifies: REQ_INTEROP_104

Acquire then release a lock, verify it’s gone.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L192 (Test: test_release_lock)

Test Case: test_release_not_owner_returns_403 TEST_TestLocking_test_release_not_owner_returns_403
status: verified
verifies: REQ_INTEROP_104

Releasing another client’s lock returns 403.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L328 (Test: test_release_not_owner_returns_403)

Test Case: test_scoped_lock_allows_other_collections TEST_TestLocking_test_scoped_lock_allows_other_collections
status: verified
verifies: REQ_INTEROP_100

Scoped lock on configurations does not block data writes.

Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L230 (Test: test_scoped_lock_allows_other_collections)

Test Case: test_configurations_subscription_create TEST_TestMultiCollectionSubscriptions_test_configurations_subscription_create
status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L178 (Test: test_configurations_subscription_create)

status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L142 (Test: test_data_subscription_create)

status: verified
verifies: REQ_INTEROP_028

Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L346 (Test: test_delete_subscription)

status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L161 (Test: test_faults_subscription_create)

status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L195 (Test: test_logs_subscription_create)

status: verified

Creates a cyclic subscription on /apps/{id}/logs, connects to the SSE events endpoint, and verifies that EventEnvelope payloads arrive with log entry items containing id, timestamp, severity, and message fields.

Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L212 (Test: test_logs_subscription_sse_stream)

status: verified
verifies: REQ_INTEROP_027

Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L325 (Test: test_update_subscription_interval)

Test Case: test_cancel_nonexistent_execution TEST_TestOperationsApi_test_cancel_nonexistent_execution
status: verified
verifies: REQ_INTEROP_039

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L462 (Test: test_cancel_nonexistent_execution)

Test Case: test_create_execution_for_service TEST_TestOperationsApi_test_create_execution_for_service
status: verified
verifies: REQ_INTEROP_035

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L426 (Test: test_create_execution_for_service)

Test Case: test_get_operation_details_for_apps TEST_TestOperationsApi_test_get_operation_details_for_apps
status: verified
verifies: REQ_INTEROP_034

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L331 (Test: test_get_operation_details_for_apps)

Test Case: test_get_operation_details_for_service TEST_TestOperationsApi_test_get_operation_details_for_service
status: verified
verifies: REQ_INTEROP_034

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L279 (Test: test_get_operation_details_for_service)

Test Case: test_get_operation_not_found TEST_TestOperationsApi_test_get_operation_not_found
status: verified
verifies: REQ_INTEROP_034

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L367 (Test: test_get_operation_not_found)

Test Case: test_list_executions_returns_items_array TEST_TestOperationsApi_test_list_executions_returns_items_array
status: verified
verifies: REQ_INTEROP_036

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L387 (Test: test_list_executions_returns_items_array)

Test Case: test_list_operations TEST_TestOperationsApi_test_list_operations
status: verified
verifies: REQ_INTEROP_033

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L481 (Test: test_list_operations)

Test Case: test_operation_call_calibrate_service TEST_TestOperationsApi_test_operation_call_calibrate_service
status: verified
verifies: REQ_INTEROP_035

Operations are exposed on Apps (ROS 2 nodes), not synthetic Components.

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L52 (Test: test_operation_call_calibrate_service)

Test Case: test_operation_call_invalid_entity_id TEST_TestOperationsApi_test_operation_call_invalid_entity_id
status: verified
verifies: REQ_INTEROP_035

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L113 (Test: test_operation_call_invalid_entity_id)

Test Case: test_operation_call_invalid_operation_name TEST_TestOperationsApi_test_operation_call_invalid_operation_name
status: verified
verifies: REQ_INTEROP_035

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L140 (Test: test_operation_call_invalid_operation_name)

Test Case: test_operation_call_nonexistent_entity TEST_TestOperationsApi_test_operation_call_nonexistent_entity
status: verified
verifies: REQ_INTEROP_035

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L97 (Test: test_operation_call_nonexistent_entity)

Test Case: test_operation_call_nonexistent_operation TEST_TestOperationsApi_test_operation_call_nonexistent_operation
status: verified
verifies: REQ_INTEROP_035

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L79 (Test: test_operation_call_nonexistent_operation)

Test Case: test_operation_call_with_invalid_json TEST_TestOperationsApi_test_operation_call_with_invalid_json
status: verified
verifies: REQ_INTEROP_035

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L167 (Test: test_operation_call_with_invalid_json)

Test Case: test_operations_listed_in_app_discovery TEST_TestOperationsApi_test_operations_listed_in_app_discovery
status: verified
verifies: REQ_INTEROP_033

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L188 (Test: test_operations_listed_in_app_discovery)

Test Case: test_root_endpoint_includes_operations TEST_TestOperationsApi_test_root_endpoint_includes_operations
status: verified
verifies: REQ_INTEROP_033

Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L222 (Test: test_root_endpoint_includes_operations)

Test Case: test_01_create_action_execution_and_poll_to_completion TEST_TestScenarioActionLifecycle_test_01_create_action_execution_and_poll_to_completion
status: verified
verifies: REQ_INTEROP_022

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L100 (Test: test_01_create_action_execution_and_poll_to_completion)

Test Case: test_02_cancel_action_execution TEST_TestScenarioActionLifecycle_test_02_cancel_action_execution
status: verified
verifies: REQ_INTEROP_022

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L118 (Test: test_02_cancel_action_execution)

Test Case: test_03_service_execution_returns_immediately TEST_TestScenarioActionLifecycle_test_03_service_execution_returns_immediately
status: verified
verifies: REQ_INTEROP_035

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L145 (Test: test_03_service_execution_returns_immediately)

Test Case: test_04_execution_appears_in_list TEST_TestScenarioActionLifecycle_test_04_execution_appears_in_list
status: verified
verifies: REQ_INTEROP_022

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L182 (Test: test_04_execution_appears_in_list)

Test Case: test_06_get_operation_details TEST_TestScenarioActionLifecycle_test_06_get_operation_details
status: verified
verifies: REQ_INTEROP_034

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L252 (Test: test_06_get_operation_details)

Test Case: test_07_get_execution_status TEST_TestScenarioActionLifecycle_test_07_get_execution_status
status: verified
verifies: REQ_INTEROP_037

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L297 (Test: test_07_get_execution_status)

Test Case: test_08_update_execution_not_implemented TEST_TestScenarioActionLifecycle_test_08_update_execution_not_implemented
status: verified
verifies: REQ_INTEROP_038

Each test creates its OWN execution, so there is no concurrent-goal issue that plagued the original test_101.

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L317 (Test: test_08_update_execution_not_implemented)

Test Case: test_01_download_rosbag_success TEST_TestScenarioBulkDataDownload_test_01_download_rosbag_success
status: verified
verifies: REQ_INTEROP_073

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_download.test.py#L61 (Test: test_01_download_rosbag_success)

Test Case: test_02_download_wrong_entity_returns_404 TEST_TestScenarioBulkDataDownload_test_02_download_wrong_entity_returns_404
status: verified
verifies: REQ_INTEROP_073

Security check: rosbag belonging to one entity should not be accessible via another entity’s bulk-data endpoint.

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_download.test.py#L100 (Test: test_02_download_wrong_entity_returns_404)

Test Case: test_03_verify_complete_rosbag_content TEST_TestScenarioBulkDataDownload_test_03_verify_complete_rosbag_content
status: verified
verifies: REQ_INTEROP_073

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_download.test.py#L121 (Test: test_03_verify_complete_rosbag_content)

Test Case: test_01_upload_small_file TEST_TestScenarioBulkDataUpload_test_01_upload_small_file
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L136 (Test: test_01_upload_small_file)

Test Case: test_02_upload_returns_location_header TEST_TestScenarioBulkDataUpload_test_02_upload_returns_location_header
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L152 (Test: test_02_upload_returns_location_header)

Test Case: test_03_upload_with_description TEST_TestScenarioBulkDataUpload_test_03_upload_with_description
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L170 (Test: test_03_upload_with_description)

Test Case: test_04_upload_with_metadata TEST_TestScenarioBulkDataUpload_test_04_upload_with_metadata
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L182 (Test: test_04_upload_with_metadata)

Test Case: test_05_upload_missing_file_field TEST_TestScenarioBulkDataUpload_test_05_upload_missing_file_field
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L196 (Test: test_05_upload_missing_file_field)

Test Case: test_06_upload_unknown_category TEST_TestScenarioBulkDataUpload_test_06_upload_unknown_category
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L207 (Test: test_06_upload_unknown_category)

Test Case: test_07_upload_rosbags_rejected TEST_TestScenarioBulkDataUpload_test_07_upload_rosbags_rejected
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L217 (Test: test_07_upload_rosbags_rejected)

Test Case: test_08_upload_nonexistent_entity TEST_TestScenarioBulkDataUpload_test_08_upload_nonexistent_entity
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L228 (Test: test_08_upload_nonexistent_entity)

Test Case: test_09_upload_to_areas_405 TEST_TestScenarioBulkDataUpload_test_09_upload_to_areas_405
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L238 (Test: test_09_upload_to_areas_405)

Test Case: test_10_upload_to_functions_405 TEST_TestScenarioBulkDataUpload_test_10_upload_to_functions_405
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L249 (Test: test_10_upload_to_functions_405)

Test Case: test_11_delete_uploaded_item TEST_TestScenarioBulkDataUpload_test_11_delete_uploaded_item
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L261 (Test: test_11_delete_uploaded_item)

Test Case: test_12_delete_nonexistent_item TEST_TestScenarioBulkDataUpload_test_12_delete_nonexistent_item
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L276 (Test: test_12_delete_nonexistent_item)

Test Case: test_13_delete_rosbags_rejected TEST_TestScenarioBulkDataUpload_test_13_delete_rosbags_rejected
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L285 (Test: test_13_delete_rosbags_rejected)

Test Case: test_14_delete_to_areas_405 TEST_TestScenarioBulkDataUpload_test_14_delete_to_areas_405
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L294 (Test: test_14_delete_to_areas_405)

Test Case: test_15_list_categories_includes_configured TEST_TestScenarioBulkDataUpload_test_15_list_categories_includes_configured
status: verified
verifies: REQ_INTEROP_071

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L306 (Test: test_15_list_categories_includes_configured)

Test Case: test_16_list_descriptors_after_upload TEST_TestScenarioBulkDataUpload_test_16_list_descriptors_after_upload
status: verified
verifies: REQ_INTEROP_072

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L319 (Test: test_16_list_descriptors_after_upload)

Test Case: test_17_download_uploaded_file TEST_TestScenarioBulkDataUpload_test_17_download_uploaded_file
status: verified
verifies: REQ_INTEROP_073

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L335 (Test: test_17_download_uploaded_file)

Test Case: test_18_download_nonexistent_returns_404 TEST_TestScenarioBulkDataUpload_test_18_download_nonexistent_returns_404
status: verified
verifies: REQ_INTEROP_073

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L354 (Test: test_18_download_nonexistent_returns_404)

Test Case: test_19_list_empty_after_delete TEST_TestScenarioBulkDataUpload_test_19_list_empty_after_delete
status: verified
verifies: REQ_INTEROP_074

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L363 (Test: test_19_list_empty_after_delete)

status: verified
verifies: REQ_INTEROP_048

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_config_management.test.py#L64 (Test: test_01_list_configurations)

Test Case: test_02_get_configuration_value TEST_TestScenarioConfigManagement_test_02_get_configuration_value
status: verified
verifies: REQ_INTEROP_049

Dynamically finds an app with configurations and tests a single config endpoint.

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_config_management.test.py#L72 (Test: test_02_get_configuration_value)

Test Case: test_03_set_and_verify_configuration TEST_TestScenarioConfigManagement_test_03_set_and_verify_configuration
status: verified
verifies: REQ_INTEROP_050

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_config_management.test.py#L104 (Test: test_03_set_and_verify_configuration)

Test Case: test_04_reset_all_configurations TEST_TestScenarioConfigManagement_test_04_reset_all_configurations
status: verified
verifies: REQ_INTEROP_051

Returns 204 on complete success, 207 if some parameters could not be reset.

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_config_management.test.py#L161 (Test: test_04_reset_all_configurations)

Test Case: test_05_reset_single_configuration TEST_TestScenarioConfigManagement_test_05_reset_single_configuration
status: verified
verifies: REQ_INTEROP_052

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_config_management.test.py#L182 (Test: test_05_reset_single_configuration)

status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_data_publish_verify.test.py#L63 (Test: test_01_read_sensor_data)

Test Case: test_02_publish_command_to_actuator TEST_TestScenarioDataPublishVerify_test_02_publish_command_to_actuator
status: verified
verifies: REQ_INTEROP_020

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_data_publish_verify.test.py#L87 (Test: test_02_publish_command_to_actuator)

status: verified
verifies: REQ_INTEROP_018

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_data_publish_verify.test.py#L112 (Test: test_03_read_actuator_feedback)

Test Case: test_01_areas_from_manifest TEST_TestScenarioDiscoveryHybrid_test_01_areas_from_manifest
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L112 (Test: test_01_areas_from_manifest)

Test Case: test_02_area_with_description TEST_TestScenarioDiscoveryHybrid_test_02_area_with_description
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L122 (Test: test_02_area_with_description)

Test Case: test_03_area_subareas_hierarchy TEST_TestScenarioDiscoveryHybrid_test_03_area_subareas_hierarchy
status: verified
verifies: REQ_INTEROP_004

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L132 (Test: test_03_area_subareas_hierarchy)

status: verified
verifies: REQ_INTEROP_004

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L142 (Test: test_04_nested_subareas)

Test Case: test_05_components_from_manifest TEST_TestScenarioDiscoveryHybrid_test_05_components_from_manifest
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L155 (Test: test_05_components_from_manifest)

Test Case: test_06_component_type_preserved TEST_TestScenarioDiscoveryHybrid_test_06_component_type_preserved
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L165 (Test: test_06_component_type_preserved)

Test Case: test_07_component_area_relationship TEST_TestScenarioDiscoveryHybrid_test_07_component_area_relationship
status: verified
verifies: REQ_INTEROP_006

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L173 (Test: test_07_component_area_relationship)

Test Case: test_08_component_subcomponents TEST_TestScenarioDiscoveryHybrid_test_08_component_subcomponents
status: verified
verifies: REQ_INTEROP_005

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L184 (Test: test_08_component_subcomponents)

Test Case: test_09_component_subcomponents_not_found TEST_TestScenarioDiscoveryHybrid_test_09_component_subcomponents_not_found
status: verified
verifies: REQ_INTEROP_005

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L193 (Test: test_09_component_subcomponents_not_found)

Test Case: test_10_component_depends_on_returns_items TEST_TestScenarioDiscoveryHybrid_test_10_component_depends_on_returns_items
status: verified
verifies: REQ_INTEROP_008

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L202 (Test: test_10_component_depends_on_returns_items)

Test Case: test_11_component_depends_on_empty TEST_TestScenarioDiscoveryHybrid_test_11_component_depends_on_empty
status: verified
verifies: REQ_INTEROP_008

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L219 (Test: test_11_component_depends_on_empty)

Test Case: test_12_component_depends_on_not_found TEST_TestScenarioDiscoveryHybrid_test_12_component_depends_on_not_found
status: verified
verifies: REQ_INTEROP_008

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L228 (Test: test_12_component_depends_on_not_found)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L254 (Test: test_14_apps_from_manifest)

Test Case: test_15_app_online_with_runtime_node TEST_TestScenarioDiscoveryHybrid_test_15_app_online_with_runtime_node
status: verified
verifies: REQ_INTEROP_003

Runtime linking happens asynchronously after nodes start, so poll until at least one app is online.

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L271 (Test: test_15_app_online_with_runtime_node)

Test Case: test_19_app_depends_on_relationship TEST_TestScenarioDiscoveryHybrid_test_19_app_depends_on_relationship
status: verified
verifies: REQ_INTEROP_009

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L333 (Test: test_19_app_depends_on_relationship)

Test Case: test_20_functions_from_manifest TEST_TestScenarioDiscoveryHybrid_test_20_functions_from_manifest
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L346 (Test: test_20_functions_from_manifest)

Test Case: test_21_function_hosts_relationship TEST_TestScenarioDiscoveryHybrid_test_21_function_hosts_relationship
status: verified
verifies: REQ_INTEROP_007

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L359 (Test: test_21_function_hosts_relationship)

status: verified
verifies: REQ_INTEROP_011

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L383 (Test: test_24_function_with_tags)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L128 (Test: test_02_get_area_details)

status: verified
verifies: REQ_INTEROP_004

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L143 (Test: test_04_area_subareas)

status: verified
verifies: REQ_INTEROP_006

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L153 (Test: test_05_area_components)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L165 (Test: test_06_list_components)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L178 (Test: test_07_get_component_details)

Test Case: test_09_component_subcomponents TEST_TestScenarioDiscoveryManifest_test_09_component_subcomponents
status: verified
verifies: REQ_INTEROP_005

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L194 (Test: test_09_component_subcomponents)

Test Case: test_10_component_subcomponents_not_found TEST_TestScenarioDiscoveryManifest_test_10_component_subcomponents_not_found
status: verified
verifies: REQ_INTEROP_005

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L203 (Test: test_10_component_subcomponents_not_found)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L232 (Test: test_12_get_app_details)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L263 (Test: test_15_app_data_endpoint)

Test Case: test_17_app_configurations_endpoint TEST_TestScenarioDiscoveryManifest_test_17_app_configurations_endpoint
status: verified
verifies: REQ_INTEROP_003

App is defined in manifest with bound_fqn. Configurations are retrieved from the ROS 2 parameter service on the node.

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L276 (Test: test_17_app_configurations_endpoint)

status: verified
verifies: REQ_INTEROP_003

In manifest_only mode, data items depend on runtime graph discovery via inherit_runtime_resources. The endpoint always works (200), but items may be empty when runtime linking has not enriched the app with topic information.

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L288 (Test: test_18_app_data_item_endpoint)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L312 (Test: test_19_list_functions)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L328 (Test: test_20_get_function_details)

status: verified
verifies: REQ_INTEROP_007

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L343 (Test: test_22_function_hosts)

Test Case: test_01_fault_response_structure TEST_TestScenarioFaultInspection_test_01_fault_response_structure
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_inspection.test.py#L89 (Test: test_01_fault_response_structure)

Test Case: test_02_fault_status_object_structure TEST_TestScenarioFaultInspection_test_02_fault_status_object_structure
status: verified
verifies: REQ_INTEROP_013

The gateway returns AUTOSAR DEM-style status fields: - aggregatedStatus: “active”, “passive”, or “cleared” - testFailed, confirmedDTC, pendingDTC: “0” or “1”

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_inspection.test.py#L103 (Test: test_02_fault_status_object_structure)

Test Case: test_03_fault_environment_data_structure TEST_TestScenarioFaultInspection_test_03_fault_environment_data_structure
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_inspection.test.py#L123 (Test: test_03_fault_environment_data_structure)

Test Case: test_04_fault_snapshot_freeze_frame TEST_TestScenarioFaultInspection_test_04_fault_snapshot_freeze_frame
status: verified
verifies: REQ_INTEROP_013

Snapshots are captured asynchronously by the fault manager after a fault is confirmed, so we poll until the freeze_frame is present.

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_inspection.test.py#L138 (Test: test_04_fault_snapshot_freeze_frame)

Test Case: test_05_fault_snapshot_rosbag_has_bulk_data_uri TEST_TestScenarioFaultInspection_test_05_fault_snapshot_rosbag_has_bulk_data_uri
status: verified
verifies: REQ_INTEROP_013

Rosbag snapshots are flushed asynchronously after fault confirmation, so we poll until the rosbag snapshot is present.

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_inspection.test.py#L157 (Test: test_05_fault_snapshot_rosbag_has_bulk_data_uri)

Test Case: test_06_fault_x_medkit_extensions TEST_TestScenarioFaultInspection_test_06_fault_x_medkit_extensions
status: verified
verifies: REQ_INTEROP_013

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_inspection.test.py#L174 (Test: test_06_fault_x_medkit_extensions)

Test Case: test_01_wait_for_faults_to_appear TEST_TestScenarioFaultLifecycle_test_01_wait_for_faults_to_appear
status: verified
verifies: REQ_INTEROP_012

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_lifecycle.test.py#L71 (Test: test_01_wait_for_faults_to_appear)

Test Case: test_02_delete_all_faults_for_component TEST_TestScenarioFaultLifecycle_test_02_delete_all_faults_for_component
status: verified
verifies: REQ_INTEROP_014

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_lifecycle.test.py#L88 (Test: test_02_delete_all_faults_for_component)

Test Case: test_03_delete_all_faults_for_app TEST_TestScenarioFaultLifecycle_test_03_delete_all_faults_for_app
status: verified
verifies: REQ_INTEROP_014

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_lifecycle.test.py#L103 (Test: test_03_delete_all_faults_for_app)

Test Case: test_04_delete_all_faults_nonexistent TEST_TestScenarioFaultLifecycle_test_04_delete_all_faults_nonexistent
status: verified
verifies: REQ_INTEROP_014

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_lifecycle.test.py#L117 (Test: test_04_delete_all_faults_nonexistent)

Test Case: test_05_delete_single_fault TEST_TestScenarioFaultLifecycle_test_05_delete_single_fault
status: verified
verifies: REQ_INTEROP_015

The lidar_sensor may immediately re-report the fault after deletion, so we only verify that DELETE returns 204 (success) or 404 (not found).

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_lifecycle.test.py#L133 (Test: test_05_delete_single_fault)

Test Case: test_01_create_subscription_returns_201_with_correct_schema TEST_TestScenarioSubscriptions_test_01_create_subscription_returns_201_with_correct_schema
status: verified
verifies: REQ_INTEROP_089

Verifies that POST returns 201 with all required fields: id, observed_resource, event_source, protocol, interval.

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L159 (Test: test_01_create_subscription_returns_201_with_correct_schema)

Test Case: test_02_list_subscriptions_returns_created_ones TEST_TestScenarioSubscriptions_test_02_list_subscriptions_returns_created_ones
status: verified
verifies: REQ_INTEROP_025

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L182 (Test: test_02_list_subscriptions_returns_created_ones)

Test Case: test_03_get_single_subscription TEST_TestScenarioSubscriptions_test_03_get_single_subscription
status: verified
verifies: REQ_INTEROP_026

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L212 (Test: test_03_get_single_subscription)

Test Case: test_04_update_subscription_interval TEST_TestScenarioSubscriptions_test_04_update_subscription_interval
status: verified
verifies: REQ_INTEROP_027

Dashboard user decides they need higher-frequency updates.

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L231 (Test: test_04_update_subscription_interval)

Test Case: test_05_update_subscription_duration TEST_TestScenarioSubscriptions_test_05_update_subscription_duration
status: verified
verifies: REQ_INTEROP_027

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L252 (Test: test_05_update_subscription_duration)

Test Case: test_06_delete_subscription_returns_204 TEST_TestScenarioSubscriptions_test_06_delete_subscription_returns_204
status: verified
verifies: REQ_INTEROP_028

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L267 (Test: test_06_delete_subscription_returns_204)

Test Case: test_07_empty_list_after_delete TEST_TestScenarioSubscriptions_test_07_empty_list_after_delete
status: verified
verifies: REQ_INTEROP_025

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L287 (Test: test_07_empty_list_after_delete)

Test Case: test_10_sse_stream_returns_correct_headers TEST_TestScenarioSubscriptions_test_10_sse_stream_returns_correct_headers
status: verified
verifies: REQ_INTEROP_090

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L307 (Test: test_10_sse_stream_returns_correct_headers)

Test Case: test_11_sse_stream_delivers_periodic_data TEST_TestScenarioSubscriptions_test_11_sse_stream_delivers_periodic_data
status: verified
verifies: REQ_INTEROP_090

Real use case: dashboard receives temperature readings every 500ms (slow). Each event has a timestamp and a payload with ReadValue format (id + data).

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L326 (Test: test_11_sse_stream_delivers_periodic_data)

Test Case: test_12_sse_stream_closes_on_subscription_delete TEST_TestScenarioSubscriptions_test_12_sse_stream_closes_on_subscription_delete
status: verified

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L378 (Test: test_12_sse_stream_closes_on_subscription_delete)

Test Case: test_20_create_with_invalid_interval_returns_400 TEST_TestScenarioSubscriptions_test_20_create_with_invalid_interval_returns_400
status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L427 (Test: test_20_create_with_invalid_interval_returns_400)

Test Case: test_21_create_with_zero_duration_returns_400 TEST_TestScenarioSubscriptions_test_21_create_with_zero_duration_returns_400
status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L445 (Test: test_21_create_with_zero_duration_returns_400)

Test Case: test_22_create_with_unsupported_protocol_returns_400 TEST_TestScenarioSubscriptions_test_22_create_with_unsupported_protocol_returns_400
status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L462 (Test: test_22_create_with_unsupported_protocol_returns_400)

Test Case: test_23_create_with_invalid_resource_uri_returns_400 TEST_TestScenarioSubscriptions_test_23_create_with_invalid_resource_uri_returns_400
status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L480 (Test: test_23_create_with_invalid_resource_uri_returns_400)

Test Case: test_24_get_nonexistent_subscription_returns_404 TEST_TestScenarioSubscriptions_test_24_get_nonexistent_subscription_returns_404
status: verified
verifies: REQ_INTEROP_026

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L497 (Test: test_24_get_nonexistent_subscription_returns_404)

Test Case: test_25_delete_nonexistent_subscription_returns_404 TEST_TestScenarioSubscriptions_test_25_delete_nonexistent_subscription_returns_404
status: verified
verifies: REQ_INTEROP_028

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L509 (Test: test_25_delete_nonexistent_subscription_returns_404)

Test Case: test_26_update_nonexistent_subscription_returns_404 TEST_TestScenarioSubscriptions_test_26_update_nonexistent_subscription_returns_404
status: verified
verifies: REQ_INTEROP_027

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L520 (Test: test_26_update_nonexistent_subscription_returns_404)

Test Case: test_27_create_for_nonexistent_entity_returns_404 TEST_TestScenarioSubscriptions_test_27_create_for_nonexistent_entity_returns_404
status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L532 (Test: test_27_create_for_nonexistent_entity_returns_404)

Test Case: test_28_sse_stream_for_nonexistent_subscription_returns_404 TEST_TestScenarioSubscriptions_test_28_sse_stream_for_nonexistent_subscription_returns_404
status: verified
verifies: REQ_INTEROP_090

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L549 (Test: test_28_sse_stream_for_nonexistent_subscription_returns_404)

Test Case: test_30_cyclic_subscriptions_work_on_components TEST_TestScenarioSubscriptions_test_30_cyclic_subscriptions_work_on_components
status: verified

Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L564 (Test: test_30_cyclic_subscriptions_work_on_components)

Test Case: test_01_list_scripts_empty TEST_TestScriptsCRUD_test_01_list_scripts_empty
status: verified
verifies: REQ_INTEROP_041

GET /apps/{app}/scripts returns empty items initially.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L218 (Test: test_01_list_scripts_empty)

Test Case: test_02_upload_and_list TEST_TestScriptsCRUD_test_02_upload_and_list
status: verified
verifies: REQ_INTEROP_040

Upload a script, verify it appears in the list.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L225 (Test: test_02_upload_and_list)

Test Case: test_03_get_script_metadata TEST_TestScriptsCRUD_test_03_get_script_metadata
status: verified
verifies: REQ_INTEROP_042

GET /apps/{app}/scripts/{id} returns full metadata.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L235 (Test: test_03_get_script_metadata)

Test Case: test_04_get_nonexistent_returns_404 TEST_TestScriptsCRUD_test_04_get_nonexistent_returns_404
status: verified
verifies: REQ_INTEROP_042

GET /apps/{app}/scripts/nonexistent returns 404.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L246 (Test: test_04_get_nonexistent_returns_404)

Test Case: test_05_delete_script TEST_TestScriptsCRUD_test_05_delete_script
status: verified
verifies: REQ_INTEROP_043

DELETE /apps/{app}/scripts/{id} removes it.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L255 (Test: test_05_delete_script)

Test Case: test_06_delete_nonexistent_returns_404 TEST_TestScriptsCRUD_test_06_delete_nonexistent_returns_404
status: verified
verifies: REQ_INTEROP_043

DELETE /apps/{app}/scripts/nonexistent returns 404.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L273 (Test: test_06_delete_nonexistent_returns_404)

Test Case: test_07_upload_missing_file_field TEST_TestScriptsCRUD_test_07_upload_missing_file_field
status: verified
verifies: REQ_INTEROP_040

POST without multipart file field returns 400.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L282 (Test: test_07_upload_missing_file_field)

Test Case: test_09_upload_with_metadata TEST_TestScriptsCRUD_test_09_upload_with_metadata
status: verified
verifies: REQ_INTEROP_040

Upload with metadata field sets custom name and description.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L301 (Test: test_09_upload_with_metadata)

Test Case: test_01_execute_python_script TEST_TestScriptsExecution_test_01_execute_python_script
status: verified
verifies: REQ_INTEROP_044

Upload Python script, execute, poll until completed.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L365 (Test: test_01_execute_python_script)

Test Case: test_02_execute_shell_script TEST_TestScriptsExecution_test_02_execute_shell_script
status: verified
verifies: REQ_INTEROP_044

Upload shell script, execute, poll until completed.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L388 (Test: test_02_execute_shell_script)

Test Case: test_03_terminate_running_execution TEST_TestScriptsExecution_test_03_terminate_running_execution
status: verified
verifies: REQ_INTEROP_047

Start long-running script, terminate it via control endpoint.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L407 (Test: test_03_terminate_running_execution)

Test Case: test_06_get_nonexistent_execution TEST_TestScriptsExecution_test_06_get_nonexistent_execution
status: verified
verifies: REQ_INTEROP_046

GET nonexistent execution returns 404.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L511 (Test: test_06_get_nonexistent_execution)

Test Case: test_07_start_execution_missing_type TEST_TestScriptsExecution_test_07_start_execution_missing_type
status: verified
verifies: REQ_INTEROP_044

POST without execution_type returns 400.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L522 (Test: test_07_start_execution_missing_type)

Test Case: test_08_start_execution_invalid_json TEST_TestScriptsExecution_test_08_start_execution_invalid_json
status: verified
verifies: REQ_INTEROP_044

POST with invalid JSON body returns 400.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L533 (Test: test_08_start_execution_invalid_json)

Test Case: test_09_execution_has_timestamps TEST_TestScriptsExecution_test_09_execution_has_timestamps
status: verified
verifies: REQ_INTEROP_046

Completed execution has started_at and completed_at timestamps.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L545 (Test: test_09_execution_has_timestamps)

Test Case: test_10_bash_script_execution TEST_TestScriptsExecution_test_10_bash_script_execution
status: verified
verifies: REQ_INTEROP_044

Upload and execute a .bash script.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L566 (Test: test_10_bash_script_execution)

Test Case: test_11_output_content_verified TEST_TestScriptsExecution_test_11_output_content_verified
status: verified
verifies: REQ_INTEROP_046

Verify executed script output is correctly returned in execution response.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L591 (Test: test_11_output_content_verified)

Test Case: test_12_parameters_via_stdin TEST_TestScriptsExecution_test_12_parameters_via_stdin
status: verified
verifies: REQ_INTEROP_044

Parameters sent in execution request are passed to script via stdin.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L623 (Test: test_12_parameters_via_stdin)

Test Case: test_13_failed_script_execution TEST_TestScriptsExecution_test_13_failed_script_execution
status: verified
verifies: REQ_INTEROP_046

Script that exits non-zero produces ‘failed’ status with error info.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L666 (Test: test_13_failed_script_execution)

Test Case: test_14_full_lifecycle TEST_TestScriptsExecution_test_14_full_lifecycle

Complete lifecycle: upload -> list -> get -> execute -> poll -> verify -> delete.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L703 (Test: test_14_full_lifecycle)

Test Case: test_01_list_scripts_returns_501 TEST_TestScriptsNotConfigured_test_01_list_scripts_returns_501
status: verified
verifies: REQ_INTEROP_041

GET /apps/{app}/scripts returns 501 without backend.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L117 (Test: test_01_list_scripts_returns_501)

Test Case: test_02_upload_script_returns_501 TEST_TestScriptsNotConfigured_test_02_upload_script_returns_501
status: verified
verifies: REQ_INTEROP_040

POST /apps/{app}/scripts returns 501 without backend.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L126 (Test: test_02_upload_script_returns_501)

Test Case: test_03_get_script_returns_501 TEST_TestScriptsNotConfigured_test_03_get_script_returns_501
status: verified
verifies: REQ_INTEROP_042

GET /apps/{app}/scripts/{id} returns 501 without backend.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L137 (Test: test_03_get_script_returns_501)

Test Case: test_04_delete_script_returns_501 TEST_TestScriptsNotConfigured_test_04_delete_script_returns_501
status: verified
verifies: REQ_INTEROP_043

DELETE /apps/{app}/scripts/{id} returns 501 without backend.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L145 (Test: test_04_delete_script_returns_501)

Test Case: test_05_start_execution_returns_501 TEST_TestScriptsNotConfigured_test_05_start_execution_returns_501
status: verified
verifies: REQ_INTEROP_044

POST /apps/{app}/scripts/{id}/executions returns 501.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L153 (Test: test_05_start_execution_returns_501)

Test Case: test_06_get_execution_returns_501 TEST_TestScriptsNotConfigured_test_06_get_execution_returns_501
status: verified
verifies: REQ_INTEROP_046

GET /apps/{app}/scripts/{id}/executions/{eid} returns 501.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L163 (Test: test_06_get_execution_returns_501)

Test Case: test_07_control_execution_returns_501 TEST_TestScriptsNotConfigured_test_07_control_execution_returns_501
status: verified
verifies: REQ_INTEROP_047

PUT /apps/{app}/scripts/{id}/executions/{eid} returns 501.

Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L172 (Test: test_07_control_execution_returns_501)

Test Case: test_root_endpoint_excludes_legacy_snapshots TEST_TestSnapshotsApi_test_root_endpoint_excludes_legacy_snapshots
status: verified
verifies: REQ_INTEROP_088

Legacy snapshot endpoints were removed in favor of inline snapshots in fault responses and bulk-data endpoints.

Implementation: src/ros2_medkit_integration_tests/test/features/test_snapshots_api.test.py#L49 (Test: test_root_endpoint_excludes_legacy_snapshots)

Test Case: test_returns_restart_count TEST_TestSystemdAppEndpoint_test_returns_restart_count
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L128 (Test: test_returns_restart_count)

Test Case: test_returns_unit_info TEST_TestSystemdAppEndpoint_test_returns_unit_info
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L98 (Test: test_returns_unit_info)

Test Case: test_returns_unit_type TEST_TestSystemdAppEndpoint_test_returns_unit_type
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L116 (Test: test_returns_unit_type)

Test Case: test_returns_watchdog_usec TEST_TestSystemdAppEndpoint_test_returns_watchdog_usec
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L142 (Test: test_returns_watchdog_usec)

Test Case: test_returns_units_aggregation TEST_TestSystemdComponentEndpoint_test_returns_units_aggregation
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L159 (Test: test_returns_units_aggregation)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L190 (Test: test_units_have_active_state)

status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L174 (Test: test_units_include_node_ids)

Test Case: test_nonexistent_app_returns_404 TEST_TestSystemdErrorHandling_test_nonexistent_app_returns_404
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L208 (Test: test_nonexistent_app_returns_404)

Test Case: test_nonexistent_component_returns_404 TEST_TestSystemdErrorHandling_test_nonexistent_component_returns_404
status: verified
verifies: REQ_INTEROP_003

Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L219 (Test: test_nonexistent_component_returns_404)

Test Case: test_01_create_trigger_returns_201_with_correct_schema TEST_TestTriggersData_test_01_create_trigger_returns_201_with_correct_schema
status: verified
verifies: REQ_INTEROP_029

POST creates trigger with correct schema response.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L128 (Test: test_01_create_trigger_returns_201_with_correct_schema)

Test Case: test_02_list_triggers_returns_created_trigger TEST_TestTriggersData_test_02_list_triggers_returns_created_trigger
status: verified
verifies: REQ_INTEROP_030

GET /triggers returns list with the created trigger.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L152 (Test: test_02_list_triggers_returns_created_trigger)

Test Case: test_03_get_single_trigger TEST_TestTriggersData_test_03_get_single_trigger
status: verified
verifies: REQ_INTEROP_096

GET /triggers/{id} returns the trigger details.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L169 (Test: test_03_get_single_trigger)

Test Case: test_04_update_trigger_lifetime TEST_TestTriggersData_test_04_update_trigger_lifetime
status: verified
verifies: REQ_INTEROP_031

PUT /triggers/{id} updates the lifetime.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L186 (Test: test_04_update_trigger_lifetime)

Test Case: test_05_delete_trigger_returns_204 TEST_TestTriggersData_test_05_delete_trigger_returns_204
status: verified
verifies: REQ_INTEROP_032

DELETE /triggers/{id} returns 204 and removes the trigger.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L200 (Test: test_05_delete_trigger_returns_204)

Test Case: test_10_sse_stream_returns_correct_headers TEST_TestTriggersData_test_10_sse_stream_returns_correct_headers
status: verified
verifies: REQ_INTEROP_097

The SSE events endpoint returns text/event-stream content type.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L235 (Test: test_10_sse_stream_returns_correct_headers)

Test Case: test_11_sse_stream_delivers_data_events TEST_TestTriggersData_test_11_sse_stream_delivers_data_events
status: verified
verifies: REQ_INTEROP_097

The temp_sensor publishes at ~1Hz (Float64), so OnChange triggers should fire on each new message.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L255 (Test: test_11_sse_stream_delivers_data_events)

Test Case: test_12_sse_stream_closes_on_trigger_delete TEST_TestTriggersData_test_12_sse_stream_closes_on_trigger_delete
status: verified

When a trigger is deleted, the SSE stream closes gracefully.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L305 (Test: test_12_sse_stream_closes_on_trigger_delete)

Test Case: test_27_events_for_nonexistent_trigger_returns_404 TEST_TestTriggersData_test_27_events_for_nonexistent_trigger_returns_404
status: verified
verifies: REQ_INTEROP_097

GET /events for a non-existent trigger returns 404.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L536 (Test: test_27_events_for_nonexistent_trigger_returns_404)

Test Case: test_01_create_fault_trigger_returns_201 TEST_TestTriggersFaults_test_01_create_fault_trigger_returns_201
status: verified
verifies: REQ_INTEROP_029

POST creates a trigger on faults collection with correct schema.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_faults.test.py#L91 (Test: test_01_create_fault_trigger_returns_201)

Test Case: test_02_list_fault_triggers TEST_TestTriggersFaults_test_02_list_fault_triggers
status: verified
verifies: REQ_INTEROP_030

GET /triggers lists fault triggers for the entity.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_faults.test.py#L109 (Test: test_02_list_fault_triggers)

Test Case: test_03_get_fault_trigger TEST_TestTriggersFaults_test_03_get_fault_trigger
status: verified
verifies: REQ_INTEROP_096

GET /triggers/{id} returns fault trigger details.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_faults.test.py#L125 (Test: test_03_get_fault_trigger)

Test Case: test_04_update_fault_trigger_lifetime TEST_TestTriggersFaults_test_04_update_fault_trigger_lifetime
status: verified
verifies: REQ_INTEROP_031

PUT /triggers/{id} updates fault trigger lifetime.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_faults.test.py#L140 (Test: test_04_update_fault_trigger_lifetime)

Test Case: test_05_delete_fault_trigger TEST_TestTriggersFaults_test_05_delete_fault_trigger
status: verified
verifies: REQ_INTEROP_032

DELETE /triggers/{id} removes the fault trigger.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_faults.test.py#L154 (Test: test_05_delete_fault_trigger)

Test Case: test_10_sse_endpoint_connects_and_streams TEST_TestTriggersFaults_test_10_sse_endpoint_connects_and_streams
status: verified
verifies: REQ_INTEROP_097

Verifies the SSE transport works for fault triggers - the connection is established and the server sends keepalive comments. Actual fault events depend on the fault subscriber’s entity_id matching the trigger’s entity_id, which requires correct reporting_source mapping.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_faults.test.py#L175 (Test: test_10_sse_endpoint_connects_and_streams)

Test Case: test_11_sse_fault_event_has_correct_headers TEST_TestTriggersFaults_test_11_sse_fault_event_has_correct_headers
status: verified
verifies: REQ_INTEROP_097

SSE events endpoint for faults returns correct headers.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_faults.test.py#L217 (Test: test_11_sse_fault_event_has_correct_headers)

Test Case: test_01_component_trigger_created_successfully TEST_TestTriggersHierarchy_test_01_component_trigger_created_successfully
status: verified
verifies: REQ_INTEROP_029

Create trigger on component that hosts apps.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_hierarchy.test.py#L111 (Test: test_01_component_trigger_created_successfully)

Test Case: test_05_list_triggers_on_area TEST_TestTriggersHierarchy_test_05_list_triggers_on_area
status: verified
verifies: REQ_INTEROP_030

GET /areas/{id}/triggers returns triggers for the area.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_hierarchy.test.py#L266 (Test: test_05_list_triggers_on_area)

Test Case: test_06_delete_trigger_on_function TEST_TestTriggersHierarchy_test_06_delete_trigger_on_function
status: verified
verifies: REQ_INTEROP_032

DELETE removes trigger from function entity.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_hierarchy.test.py#L297 (Test: test_06_delete_trigger_on_function)

Test Case: test_01_create_logs_trigger TEST_TestTriggersLogs_test_01_create_logs_trigger
status: verified
verifies: REQ_INTEROP_029

POST creates a trigger on logs collection.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L86 (Test: test_01_create_logs_trigger)

Test Case: test_02_list_logs_triggers TEST_TestTriggersLogs_test_02_list_logs_triggers
status: verified
verifies: REQ_INTEROP_030

GET /triggers lists log triggers for the entity.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L110 (Test: test_02_list_logs_triggers)

Test Case: test_03_get_logs_trigger TEST_TestTriggersLogs_test_03_get_logs_trigger
status: verified
verifies: REQ_INTEROP_096

GET /triggers/{id} returns log trigger details.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L126 (Test: test_03_get_logs_trigger)

Test Case: test_04_update_logs_trigger_lifetime TEST_TestTriggersLogs_test_04_update_logs_trigger_lifetime
status: verified
verifies: REQ_INTEROP_031

PUT /triggers/{id} updates log trigger lifetime.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L145 (Test: test_04_update_logs_trigger_lifetime)

Test Case: test_05_delete_logs_trigger TEST_TestTriggersLogs_test_05_delete_logs_trigger
status: verified
verifies: REQ_INTEROP_032

DELETE /triggers/{id} removes the log trigger.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L161 (Test: test_05_delete_logs_trigger)

Test Case: test_10_sse_endpoint_connects_for_log_trigger TEST_TestTriggersLogs_test_10_sse_endpoint_connects_for_log_trigger
status: verified
verifies: REQ_INTEROP_097

Verifies the SSE transport works for log-collection triggers. The LogManager currently only notifies ResourceChangeNotifier via the programmatic add_log_entry() path (used by trigger log_settings), not from /rosout ingestion. This test validates the SSE plumbing by verifying the connection is accepted and the stream is active.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L195 (Test: test_10_sse_endpoint_connects_for_log_trigger)

Test Case: test_11_sse_log_event_headers TEST_TestTriggersLogs_test_11_sse_log_event_headers
status: verified
verifies: REQ_INTEROP_097

SSE events endpoint for logs returns correct headers.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L234 (Test: test_11_sse_log_event_headers)

Test Case: test_01_create_persistent_trigger TEST_TestTriggersPersistent_test_01_create_persistent_trigger
status: verified
verifies: REQ_INTEROP_029

Creates the trigger that will later be verified on the secondary (restarted) gateway instance.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_persistent.test.py#L188 (Test: test_01_create_persistent_trigger)

Test Case: test_02_trigger_listed_on_primary TEST_TestTriggersPersistent_test_02_trigger_listed_on_primary
status: verified
verifies: REQ_INTEROP_030

Persistent trigger appears in the listing on the primary gateway.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_persistent.test.py#L223 (Test: test_02_trigger_listed_on_primary)

Test Case: test_04_restored_trigger_fields_match TEST_TestTriggersPersistent_test_04_restored_trigger_fields_match
status: verified
verifies: REQ_INTEROP_096

Fields of the restored trigger match what was originally created.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_persistent.test.py#L290 (Test: test_04_restored_trigger_fields_match)

Test Case: test_06_delete_via_secondary_removes_from_store TEST_TestTriggersPersistent_test_06_delete_via_secondary_removes_from_store
status: verified
verifies: REQ_INTEROP_032

After deletion, the trigger must also be absent when listed on the primary gateway (they share the same SQLite file).

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_persistent.test.py#L355 (Test: test_06_delete_via_secondary_removes_from_store)

Test Case: test_01_create_updates_trigger TEST_TestTriggersUpdates_test_01_create_updates_trigger
status: verified
verifies: REQ_INTEROP_029

POST creates a trigger on updates collection.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L89 (Test: test_01_create_updates_trigger)

Test Case: test_02_list_updates_triggers TEST_TestTriggersUpdates_test_02_list_updates_triggers
status: verified
verifies: REQ_INTEROP_030

GET /triggers lists updates triggers for the entity.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L107 (Test: test_02_list_updates_triggers)

Test Case: test_03_get_updates_trigger TEST_TestTriggersUpdates_test_03_get_updates_trigger
status: verified
verifies: REQ_INTEROP_096

GET /triggers/{id} returns updates trigger details.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L126 (Test: test_03_get_updates_trigger)

Test Case: test_04_update_updates_trigger_lifetime TEST_TestTriggersUpdates_test_04_update_updates_trigger_lifetime
status: verified
verifies: REQ_INTEROP_031

PUT /triggers/{id} updates the trigger lifetime.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L148 (Test: test_04_update_updates_trigger_lifetime)

Test Case: test_05_delete_updates_trigger TEST_TestTriggersUpdates_test_05_delete_updates_trigger
status: verified
verifies: REQ_INTEROP_032

DELETE /triggers/{id} removes the updates trigger.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L165 (Test: test_05_delete_updates_trigger)

Test Case: test_10_events_endpoint_returns_sse_headers TEST_TestTriggersUpdates_test_10_events_endpoint_returns_sse_headers
status: verified
verifies: REQ_INTEROP_097

SSE events endpoint returns correct content-type headers.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L199 (Test: test_10_events_endpoint_returns_sse_headers)

Test Case: test_11_events_for_nonexistent_trigger_returns_404 TEST_TestTriggersUpdates_test_11_events_for_nonexistent_trigger_returns_404
status: verified
verifies: REQ_INTEROP_097

GET /events for a nonexistent trigger returns 404.

Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L218 (Test: test_11_events_for_nonexistent_trigger_returns_404)

Test Case: test_01_automated_completes TEST_TestUpdatesAutomated_test_01_automated_completes
status: verified
verifies: REQ_INTEROP_093

Automated update runs prepare + execute and completes.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L456 (Test: test_01_automated_completes)

Test Case: test_02_automated_on_non_automated_returns_400 TEST_TestUpdatesAutomated_test_02_automated_on_non_automated_returns_400
status: verified
verifies: REQ_INTEROP_093

Automated on non-automated package returns 400.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L472 (Test: test_02_automated_on_non_automated_returns_400)

Test Case: test_01_list_updates_empty TEST_TestUpdatesCRUD_test_01_list_updates_empty
status: verified
verifies: REQ_INTEROP_082

GET /updates returns empty list initially.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L229 (Test: test_01_list_updates_empty)

Test Case: test_02_register_update TEST_TestUpdatesCRUD_test_02_register_update
status: verified
verifies: REQ_INTEROP_083

POST /updates registers a new package.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L236 (Test: test_02_register_update)

Test Case: test_03_list_after_register TEST_TestUpdatesCRUD_test_03_list_after_register
status: verified
verifies: REQ_INTEROP_082

GET /updates includes registered package.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L242 (Test: test_03_list_after_register)

Test Case: test_04_get_update_metadata TEST_TestUpdatesCRUD_test_04_get_update_metadata
status: verified
verifies: REQ_INTEROP_085

GET /updates/{id} returns full metadata.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L249 (Test: test_04_get_update_metadata)

Test Case: test_05_get_nonexistent_returns_404 TEST_TestUpdatesCRUD_test_05_get_nonexistent_returns_404
status: verified
verifies: REQ_INTEROP_085

GET /updates/{id} returns 404 for unknown package.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L275 (Test: test_05_get_nonexistent_returns_404)

Test Case: test_06_delete_update TEST_TestUpdatesCRUD_test_06_delete_update
status: verified
verifies: REQ_INTEROP_084

DELETE /updates/{id} removes the package.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L283 (Test: test_06_delete_update)

Test Case: test_07_delete_nonexistent_returns_404 TEST_TestUpdatesCRUD_test_07_delete_nonexistent_returns_404
status: verified
verifies: REQ_INTEROP_084

DELETE /updates/{id} returns 404 for unknown package.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L299 (Test: test_07_delete_nonexistent_returns_404)

Test Case: test_08_register_duplicate_returns_400 TEST_TestUpdatesCRUD_test_08_register_duplicate_returns_400
status: verified
verifies: REQ_INTEROP_083

POST /updates returns 400 when ID already exists.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L307 (Test: test_08_register_duplicate_returns_400)

Test Case: test_09_list_with_origin_filter TEST_TestUpdatesCRUD_test_09_list_with_origin_filter
status: verified
verifies: REQ_INTEROP_082

GET /updates?origin=remote filters by origin.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L323 (Test: test_09_list_with_origin_filter)

Test Case: test_10_list_with_target_version_filter TEST_TestUpdatesCRUD_test_10_list_with_target_version_filter
status: verified
verifies: REQ_INTEROP_082

GET /updates?target-version=X filters by target version.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L337 (Test: test_10_list_with_target_version_filter)

Test Case: test_01_delete_during_prepare_returns_409 TEST_TestUpdatesErrorCases_test_01_delete_during_prepare_returns_409
status: verified
verifies: REQ_INTEROP_084

Cannot delete a package while prepare is in progress.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L488 (Test: test_01_delete_during_prepare_returns_409)

Test Case: test_02_prepare_nonexistent_returns_404 TEST_TestUpdatesErrorCases_test_02_prepare_nonexistent_returns_404
status: verified
verifies: REQ_INTEROP_091

Cannot prepare a package that doesn’t exist.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L504 (Test: test_02_prepare_nonexistent_returns_404)

Test Case: test_03_execute_nonexistent_returns_404 TEST_TestUpdatesErrorCases_test_03_execute_nonexistent_returns_404
status: verified
verifies: REQ_INTEROP_092

Cannot execute a package that doesn’t exist.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L515 (Test: test_03_execute_nonexistent_returns_404)

Test Case: test_04_register_missing_required_fields TEST_TestUpdatesErrorCases_test_04_register_missing_required_fields
status: verified
verifies: REQ_INTEROP_083

POST /updates with missing required fields returns 400.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L526 (Test: test_04_register_missing_required_fields)

Test Case: test_05_register_malformed_json TEST_TestUpdatesErrorCases_test_05_register_malformed_json
status: verified
verifies: REQ_INTEROP_083

POST /updates with broken JSON returns 400.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L539 (Test: test_05_register_malformed_json)

Test Case: test_01_list_updates_returns_501 TEST_TestUpdatesNoPlugin_test_01_list_updates_returns_501
status: verified
verifies: REQ_INTEROP_082

GET /updates returns 501 when no plugin loaded.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L149 (Test: test_01_list_updates_returns_501)

Test Case: test_02_get_update_returns_501 TEST_TestUpdatesNoPlugin_test_02_get_update_returns_501
status: verified
verifies: REQ_INTEROP_085

GET /updates/{id} returns 501 when no plugin loaded.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L156 (Test: test_02_get_update_returns_501)

Test Case: test_03_register_update_returns_501 TEST_TestUpdatesNoPlugin_test_03_register_update_returns_501
status: verified
verifies: REQ_INTEROP_083

POST /updates returns 501 when no plugin loaded.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L163 (Test: test_03_register_update_returns_501)

Test Case: test_04_prepare_returns_501 TEST_TestUpdatesNoPlugin_test_04_prepare_returns_501
status: verified
verifies: REQ_INTEROP_091

PUT /updates/{id}/prepare returns 501 when no plugin loaded.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L179 (Test: test_04_prepare_returns_501)

Test Case: test_05_execute_returns_501 TEST_TestUpdatesNoPlugin_test_05_execute_returns_501
status: verified
verifies: REQ_INTEROP_092

PUT /updates/{id}/execute returns 501 when no plugin loaded.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L188 (Test: test_05_execute_returns_501)

Test Case: test_06_automated_returns_501 TEST_TestUpdatesNoPlugin_test_06_automated_returns_501
status: verified
verifies: REQ_INTEROP_093

PUT /updates/{id}/automated returns 501 when no plugin loaded.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L197 (Test: test_06_automated_returns_501)

Test Case: test_07_status_returns_501 TEST_TestUpdatesNoPlugin_test_07_status_returns_501
status: verified
verifies: REQ_INTEROP_094

GET /updates/{id}/status returns 501 when no plugin loaded.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L206 (Test: test_07_status_returns_501)

Test Case: test_08_delete_returns_501 TEST_TestUpdatesNoPlugin_test_08_delete_returns_501
status: verified
verifies: REQ_INTEROP_084

DELETE /updates/{id} returns 501 when no plugin loaded.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L215 (Test: test_08_delete_returns_501)

Test Case: test_01_prepare_returns_202 TEST_TestUpdatesPrepareExecute_test_01_prepare_returns_202
status: verified
verifies: REQ_INTEROP_091

PUT /updates/{id}/prepare returns 202 Accepted.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L357 (Test: test_01_prepare_returns_202)

Test Case: test_02_prepare_completes TEST_TestUpdatesPrepareExecute_test_02_prepare_completes
status: verified
verifies: REQ_INTEROP_091

Prepare workflow completes successfully with status polling.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L368 (Test: test_02_prepare_completes)

Test Case: test_03_execute_after_prepare TEST_TestUpdatesPrepareExecute_test_03_execute_after_prepare
status: verified
verifies: REQ_INTEROP_092

Execute succeeds after prepare completes.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L378 (Test: test_03_execute_after_prepare)

Test Case: test_04_execute_without_prepare_returns_400 TEST_TestUpdatesPrepareExecute_test_04_execute_without_prepare_returns_400
status: verified
verifies: REQ_INTEROP_092

Execute before prepare returns 400.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L396 (Test: test_04_execute_without_prepare_returns_400)

Test Case: test_05_status_shows_progress TEST_TestUpdatesPrepareExecute_test_05_status_shows_progress
status: verified
verifies: REQ_INTEROP_094

Status endpoint shows progress during prepare.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L405 (Test: test_05_status_shows_progress)

Test Case: test_06_status_not_found_for_unknown TEST_TestUpdatesPrepareExecute_test_06_status_not_found_for_unknown
status: verified
verifies: REQ_INTEROP_094

GET /status for unknown package returns 404.

Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L441 (Test: test_06_status_not_found_for_unknown)

Test Case: TokenTypeToString TEST_TokenTypeTest_TokenTypeToString
status: verified
verifies: REQ_INTEROP_087

Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L150 (Test: TokenTypeToString)

Test Case: DefaultTopicsUsedAsFallback TEST_TopicResolutionTest_DefaultTopicsUsedAsFallback
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L131 (Test: DefaultTopicsUsedAsFallback)

Test Case: FaultSpecificHasHighestPriority TEST_TopicResolutionTest_FaultSpecificHasHighestPriority
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L101 (Test: FaultSpecificHasHighestPriority)

Test Case: PatternMatchUsedWhenNoFaultSpecific TEST_TopicResolutionTest_PatternMatchUsedWhenNoFaultSpecific
status: verified
verifies: REQ_INTEROP_088

Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L117 (Test: PatternMatchUsedWhenNoFaultSpecific)

Test Case: RegisterAndLookup TEST_TransportRegistryTest_RegisterAndLookup
status: verified
verifies: REQ_INTEROP_089

Implementation: src/ros2_medkit_gateway/test/test_transport_registry.cpp#L56 (Test: RegisterAndLookup)

Test Case: InvalidParameterErrorFormat TEST_TriggerErrorTest_InvalidParameterErrorFormat

Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L221 (Test: InvalidParameterErrorFormat)

Test Case: InvalidResourceUriVendorError TEST_TriggerErrorTest_InvalidResourceUriVendorError
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L273 (Test: InvalidResourceUriVendorError)

Test Case: Create_InvalidConditionType TEST_TriggerManagerTest_Create_InvalidConditionType
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L100 (Test: Create_InvalidConditionType)

Test Case: Create_InvalidParams TEST_TriggerManagerTest_Create_InvalidParams
status: verified
verifies: REQ_INTEROP_029

EnterRange requires lower_bound <= upper_bound

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L109 (Test: Create_InvalidParams)

Test Case: Create_MaxTriggersExceeded TEST_TriggerManagerTest_Create_MaxTriggersExceeded
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L120 (Test: Create_MaxTriggersExceeded)

Test Case: Create_ValidOnChangeTrigger TEST_TriggerManagerTest_Create_ValidOnChangeTrigger
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L88 (Test: Create_ValidOnChangeTrigger)

Test Case: EventEnvelopeFormat TEST_TriggerManagerTest_EventEnvelopeFormat
status: verified
verifies: REQ_INTEROP_097

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L433 (Test: EventEnvelopeFormat)

Test Case: Get_Existing TEST_TriggerManagerTest_Get_Existing
status: verified
verifies: REQ_INTEROP_096

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L132 (Test: Get_Existing)

Test Case: Hierarchy_AreaToApp TEST_TriggerManagerTest_Hierarchy_AreaToApp
status: verified
verifies: REQ_INTEROP_029

Set up hierarchy: area “navigation” contains apps

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L358 (Test: Hierarchy_AreaToApp)

Test Case: Hierarchy_ComponentToApp TEST_TriggerManagerTest_Hierarchy_ComponentToApp
status: verified
verifies: REQ_INTEROP_029

Set up hierarchy: component “chassis” contains app “sensor”

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L332 (Test: Hierarchy_ComponentToApp)

Test Case: JsonPointer_ExtractsSubElement TEST_TriggerManagerTest_JsonPointer_ExtractsSubElement
status: verified
verifies: REQ_INTEROP_097

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L541 (Test: JsonPointer_ExtractsSubElement)

Test Case: LifetimeExpiry TEST_TriggerManagerTest_LifetimeExpiry
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L311 (Test: LifetimeExpiry)

Test Case: List_ReturnsTriggersForEntity TEST_TriggerManagerTest_List_ReturnsTriggersForEntity
status: verified
verifies: REQ_INTEROP_030

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L148 (Test: List_ReturnsTriggersForEntity)

Test Case: Multishot_NotifyTwice TEST_TriggerManagerTest_Multishot_NotifyTwice
status: verified
verifies: REQ_INTEROP_097

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L286 (Test: Multishot_NotifyTwice)

Test Case: OnRemovedCallback TEST_TriggerManagerTest_OnRemovedCallback
status: verified
verifies: REQ_INTEROP_032

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L413 (Test: OnRemovedCallback)

Test Case: Remove_ExistingTrigger TEST_TriggerManagerTest_Remove_ExistingTrigger
status: verified
verifies: REQ_INTEROP_032

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L203 (Test: Remove_ExistingTrigger)

Test Case: SingleShot_NotifyMatchingChange TEST_TriggerManagerTest_SingleShot_NotifyMatchingChange
status: verified
verifies: REQ_INTEROP_097

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L220 (Test: SingleShot_NotifyMatchingChange)

Test Case: SingleShot_RemovedAfterFiring TEST_TriggerManagerTest_SingleShot_RemovedAfterFiring
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L253 (Test: SingleShot_RemovedAfterFiring)

Test Case: Update_ChangeLifetime TEST_TriggerManagerTest_Update_ChangeLifetime
status: verified
verifies: REQ_INTEROP_031

Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L164 (Test: Update_ChangeLifetime)

Test Case: ClientLimitEnforced TEST_TriggerSSETrackerTest_ClientLimitEnforced
status: verified
verifies: REQ_INTEROP_097

Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L252 (Test: ClientLimitEnforced)

Test Case: FilePersistence TEST_TriggerStore_FilePersistence
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_store.cpp#L366 (Test: FilePersistence)

Test Case: SaveAndLoadRoundTrip TEST_TriggerStore_SaveAndLoadRoundTrip
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_store.cpp#L70 (Test: SaveAndLoadRoundTrip)

Test Case: ContainsAllRequiredFields TEST_TriggerToJsonTest_ContainsAllRequiredFields
status: verified

Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L123 (Test: ContainsAllRequiredFields)

Test Case: InvalidJsonPointer_Returns400 TEST_TriggerValidationTest_InvalidJsonPointer_Returns400
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L289 (Test: InvalidJsonPointer_Returns400)

Test Case: PathTooLong_Returns400 TEST_TriggerValidationTest_PathTooLong_Returns400
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L308 (Test: PathTooLong_Returns400)

Test Case: UnknownCollection_Returns400 TEST_TriggerValidationTest_UnknownCollection_Returns400
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L331 (Test: UnknownCollection_Returns400)

Test Case: UnsupportedProtocol_Returns400 TEST_TriggerValidationTest_UnsupportedProtocol_Returns400
status: verified
verifies: REQ_INTEROP_029

Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L321 (Test: UnsupportedProtocol_Returns400)

Test Case: VendorExtensionCollection_Accepted TEST_TriggerValidationTest_VendorExtensionCollection_Accepted
status: verified
verifies: REQ_INTEROP_029

x-* vendor extension collections must pass parse_resource_uri and the collection guard. Verify parse_resource_uri accepts x-* collections (the URI parse step).

Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L344 (Test: VendorExtensionCollection_Accepted)

Test Case: ExecuteExceptionSetsFailedStatus TEST_UpdateManagerFailureTest_ExecuteExceptionSetsFailedStatus
status: verified
verifies: REQ_INTEROP_092

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L555 (Test: ExecuteExceptionSetsFailedStatus)

Test Case: ExecuteFailureSetsFailedStatus TEST_UpdateManagerFailureTest_ExecuteFailureSetsFailedStatus
status: verified
verifies: REQ_INTEROP_092

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L522 (Test: ExecuteFailureSetsFailedStatus)

Test Case: PrepareExceptionSetsFailedStatus TEST_UpdateManagerFailureTest_PrepareExceptionSetsFailedStatus
status: verified
verifies: REQ_INTEROP_091

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L477 (Test: PrepareExceptionSetsFailedStatus)

Test Case: PrepareFailureSetsFailedStatus TEST_UpdateManagerFailureTest_PrepareFailureSetsFailedStatus
status: verified
verifies: REQ_INTEROP_091

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L388 (Test: PrepareFailureSetsFailedStatus)

Test Case: AutomatedCompletes TEST_UpdateManagerTest_AutomatedCompletes
status: verified
verifies: REQ_INTEROP_093

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L248 (Test: AutomatedCompletes)

Test Case: AutomatedRejectsNonAutomated TEST_UpdateManagerTest_AutomatedRejectsNonAutomated
status: verified
verifies: REQ_INTEROP_093

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L273 (Test: AutomatedRejectsNonAutomated)

Test Case: ConcurrentPrepareOnSamePackageRejected TEST_UpdateManagerTest_ConcurrentPrepareOnSamePackageRejected
status: verified
verifies: REQ_INTEROP_091

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L313 (Test: ConcurrentPrepareOnSamePackageRejected)

Test Case: DeleteDuringOperationFails TEST_UpdateManagerTest_DeleteDuringOperationFails
status: verified
verifies: REQ_INTEROP_084

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L283 (Test: DeleteDuringOperationFails)

Test Case: DeleteUpdate TEST_UpdateManagerTest_DeleteUpdate
status: verified
verifies: REQ_INTEROP_084

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L156 (Test: DeleteUpdate)

Test Case: DuplicateRegistration TEST_UpdateManagerTest_DuplicateRegistration
status: verified
verifies: REQ_INTEROP_083

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L302 (Test: DuplicateRegistration)

Test Case: ExecuteAfterPrepare TEST_UpdateManagerTest_ExecuteAfterPrepare
status: verified
verifies: REQ_INTEROP_092

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L204 (Test: ExecuteAfterPrepare)

Test Case: ExecuteRequiresPrepare TEST_UpdateManagerTest_ExecuteRequiresPrepare
status: verified
verifies: REQ_INTEROP_092

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L194 (Test: ExecuteRequiresPrepare)

Test Case: GetUpdate TEST_UpdateManagerTest_GetUpdate
status: verified
verifies: REQ_INTEROP_085

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L139 (Test: GetUpdate)

Test Case: GetUpdateNotFound TEST_UpdateManagerTest_GetUpdateNotFound
status: verified
verifies: REQ_INTEROP_085

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L149 (Test: GetUpdateNotFound)

Test Case: HasBackend TEST_UpdateManagerTest_HasBackend
status: verified
verifies: REQ_INTEROP_082

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L114 (Test: HasBackend)

Test Case: NoBackendMode TEST_UpdateManagerTest_NoBackendMode
status: verified
verifies: REQ_INTEROP_082

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L119 (Test: NoBackendMode)

Test Case: PrepareAndPollStatus TEST_UpdateManagerTest_PrepareAndPollStatus
status: verified
verifies: REQ_INTEROP_091

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L168 (Test: PrepareAndPollStatus)

Test Case: RegisterAndList TEST_UpdateManagerTest_RegisterAndList
status: verified
verifies: REQ_INTEROP_082

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L127 (Test: RegisterAndList)

Test Case: StatusNotFoundForUnknown TEST_UpdateManagerTest_StatusNotFoundForUnknown
status: verified
verifies: REQ_INTEROP_094

Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L295 (Test: StatusNotFoundForUnknown)

Test Case: LoadValidFile TEST_YamlLoadTest_LoadValidFile
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L173 (Test: LoadValidFile)

Test Case: MalformedYamlReturnsEmpty TEST_YamlLoadTest_MalformedYamlReturnsEmpty
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L210 (Test: MalformedYamlReturnsEmpty)

Test Case: MissingFileReturnsEmpty TEST_YamlLoadTest_MissingFileReturnsEmpty
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L204 (Test: MissingFileReturnsEmpty)

Test Case: PositiveConfirmationThresholdAutoNegated TEST_YamlLoadTest_PositiveConfirmationThresholdAutoNegated
status: verified
verifies: REQ_INTEROP_095

Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L222 (Test: PositiveConfirmationThresholdAutoNegated)

ID

Title

Status

Verifies

TEST_AuthHandlersAuthorizeTest_AuthorizeErrorBodyFollowsOAuth2Format

AuthorizeErrorBodyFollowsOAuth2Format

verified

REQ_INTEROP_086

TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForEmptyClientId

ReturnsBadRequestForEmptyClientId

verified

REQ_INTEROP_086

TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForEmptyClientSecret

ReturnsBadRequestForEmptyClientSecret

verified

REQ_INTEROP_086

TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForMissingClientId

ReturnsBadRequestForMissingClientId

verified

REQ_INTEROP_086

TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForMissingClientSecret

ReturnsBadRequestForMissingClientSecret

verified

REQ_INTEROP_086

TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForWrongGrantType

ReturnsBadRequestForWrongGrantType

verified

REQ_INTEROP_086

TEST_AuthHandlersDisabledTest_AuthorizeErrorBodyContainsErrorCode

AuthorizeErrorBodyContainsErrorCode

verified

REQ_INTEROP_086

TEST_AuthHandlersDisabledTest_AuthorizeReturns404WhenAuthDisabled

AuthorizeReturns404WhenAuthDisabled

verified

REQ_INTEROP_086

TEST_AuthHandlersDisabledTest_RevokeReturns404WhenAuthDisabled

RevokeReturns404WhenAuthDisabled

verified

REQ_INTEROP_086

TEST_AuthHandlersDisabledTest_TokenReturns404WhenAuthDisabled

TokenReturns404WhenAuthDisabled

verified

REQ_INTEROP_087

TEST_AuthHandlersRevokeTest_ReturnsBadRequestForInvalidJson

ReturnsBadRequestForInvalidJson

verified

REQ_INTEROP_086

TEST_AuthHandlersRevokeTest_ReturnsBadRequestForMissingTokenField

ReturnsBadRequestForMissingTokenField

verified

REQ_INTEROP_086

TEST_AuthHandlersRevokeTest_ReturnsBadRequestForNonStringToken

ReturnsBadRequestForNonStringToken

verified

REQ_INTEROP_086

TEST_AuthHandlersTokenTest_ReturnsBadRequestForEmptyRefreshToken

ReturnsBadRequestForEmptyRefreshToken

verified

REQ_INTEROP_087

TEST_AuthHandlersTokenTest_ReturnsBadRequestForMissingRefreshToken

ReturnsBadRequestForMissingRefreshToken

verified

REQ_INTEROP_087

TEST_AuthHandlersTokenTest_ReturnsBadRequestForWrongGrantType

ReturnsBadRequestForWrongGrantType

verified

REQ_INTEROP_087

TEST_AuthHandlersWithManagerTest_AuthorizeReturnsTokensForValidCredentials

AuthorizeReturnsTokensForValidCredentials

verified

REQ_INTEROP_086

TEST_AuthHandlersWithManagerTest_AuthorizeReturnsUnauthorizedForInvalidCredentials

AuthorizeReturnsUnauthorizedForInvalidCredentials

verified

REQ_INTEROP_086

TEST_AuthHandlersWithManagerTest_RevokeRevokesRefreshTokenForSubsequentTokenRequest

RevokeRevokesRefreshTokenForSubsequentTokenRequest

verified

REQ_INTEROP_086

TEST_AuthHandlersWithManagerTest_TokenReturnsNewAccessTokenForValidRefreshToken

TokenReturnsNewAccessTokenForValidRefreshToken

verified

REQ_INTEROP_087

TEST_AuthHandlersWithManagerTest_TokenReturnsUnauthorizedForInvalidRefreshToken

TokenReturnsUnauthorizedForInvalidRefreshToken

verified

REQ_INTEROP_087

TEST_AuthManagerRS256Test_RS256WithMissingPrivateKeyThrows

RS256WithMissingPrivateKeyThrows

verified

REQ_INTEROP_087

TEST_AuthManagerTest_AuthenticateValidCredentials

AuthenticateValidCredentials

verified

REQ_INTEROP_086

TEST_AuthManagerTest_AuthorizeViewerCanRead

AuthorizeViewerCanRead

verified

REQ_INTEROP_086

TEST_AuthManagerTest_DisabledClientTokenBecomesInvalid

DisabledClientTokenBecomesInvalid

verified

REQ_INTEROP_087

TEST_AuthManagerTest_RefreshAccessToken

RefreshAccessToken

verified

REQ_INTEROP_087

TEST_AuthManagerTest_RefreshRevocationPropagatestoAccessToken

RefreshRevocationPropagatestoAccessToken

verified

REQ_INTEROP_087

TEST_AuthManagerTest_RefreshWithAccessTokenFails

RefreshWithAccessTokenFails

verified

REQ_INTEROP_087

TEST_AuthManagerTest_ValidateTokenWithCorrectType

ValidateTokenWithCorrectType

verified

REQ_INTEROP_087

TEST_AuthManagerTest_ValidateTokenWithWrongTypeRejectsToken

ValidateTokenWithWrongTypeRejectsToken

verified

REQ_INTEROP_087

TEST_AuthManagerTest_ValidateValidToken

ValidateValidToken

verified

REQ_INTEROP_087

TEST_AuthMiddlewareTest_AuthEndpointsNeverRequireAuth

AuthEndpointsNeverRequireAuth

verified

REQ_INTEROP_086

TEST_AuthMiddlewareTest_DisabledMiddlewareAllowsAll

DisabledMiddlewareAllowsAll

verified

REQ_INTEROP_086

TEST_AuthMiddlewareTest_ExtractBearerToken_CaseInsensitive

ExtractBearerToken_CaseInsensitive

verified

REQ_INTEROP_086

TEST_AuthMiddlewareTest_ExtractBearerToken_EmptyHeader

ExtractBearerToken_EmptyHeader

verified

REQ_INTEROP_086

TEST_AuthMiddlewareTest_ExtractBearerToken_EmptyToken

ExtractBearerToken_EmptyToken

verified

REQ_INTEROP_086

TEST_AuthMiddlewareTest_ExtractBearerToken_InvalidPrefix

ExtractBearerToken_InvalidPrefix

verified

REQ_INTEROP_086

TEST_AuthMiddlewareTest_ExtractBearerToken_ValidToken

ExtractBearerToken_ValidToken

verified

REQ_INTEROP_086

TEST_AuthMiddlewareTest_ProcessGetRequestWithoutAuth

ProcessGetRequestWithoutAuth

verified

REQ_INTEROP_086

TEST_AuthMiddlewareTest_ProcessWriteRequestWithInsufficientPermissions

ProcessWriteRequestWithInsufficientPermissions

verified

REQ_INTEROP_086

TEST_AuthMiddlewareTest_ProcessWriteRequestWithInvalidToken

ProcessWriteRequestWithInvalidToken

verified

REQ_INTEROP_086

TEST_AuthMiddlewareTest_ProcessWriteRequestWithoutAuth

ProcessWriteRequestWithoutAuth

verified

REQ_INTEROP_086

TEST_AuthMiddlewareTest_ProcessWriteRequestWithValidToken

ProcessWriteRequestWithValidToken

verified

REQ_INTEROP_086; REQ_INTEROP_087

TEST_AuthorizeRequestTest_ParseRequestFormUrlEncoded

ParseRequestFormUrlEncoded

verified

REQ_INTEROP_086

TEST_AuthorizeRequestTest_ParseRequestInvalidContentType

ParseRequestInvalidContentType

verified

REQ_INTEROP_086

TEST_AuthorizeRequestTest_ParseRequestInvalidJson

ParseRequestInvalidJson

verified

REQ_INTEROP_086

TEST_AuthorizeRequestTest_ParseRequestJson

ParseRequestJson

verified

REQ_INTEROP_086

TEST_AuthorizeRequestTest_ParseRequestJsonWithCharset

ParseRequestJsonWithCharset

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_AllAuthPolicyAlwaysRequiresAuth

AllAuthPolicyAlwaysRequiresAuth

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_ConfigurablePolicyExactMatch

ConfigurablePolicyExactMatch

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_ConfigurablePolicyLongestMatchWins

ConfigurablePolicyLongestMatchWins

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_ConfigurablePolicyMultipleWildcards

ConfigurablePolicyMultipleWildcards

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_ConfigurablePolicyUnknownPathsRequireAuth

ConfigurablePolicyUnknownPathsRequireAuth

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_ConfigurablePolicyWildcardMatch

ConfigurablePolicyWildcardMatch

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_FactoryCreatesAllAuthFromConfig

FactoryCreatesAllAuthFromConfig

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_FactoryCreatesNoAuthPolicy

FactoryCreatesNoAuthPolicy

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_FactoryCreatesWriteOnlyFromConfig

FactoryCreatesWriteOnlyFromConfig

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_NoAuthPolicyNeverRequiresAuth

NoAuthPolicyNeverRequiresAuth

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_PolicyDescriptions

PolicyDescriptions

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_WriteOnlyPolicyForGetRequests

WriteOnlyPolicyForGetRequests

verified

REQ_INTEROP_086

TEST_AuthRequirementPolicyTest_WriteOnlyPolicyForWriteRequests

WriteOnlyPolicyForWriteRequests

verified

REQ_INTEROP_086

TEST_BulkDataHandlersTest_DescriptorToJsonConversion

DescriptorToJsonConversion

verified

REQ_INTEROP_074

TEST_BulkDataHandlersTest_DescriptorToJsonWithMetadata

DescriptorToJsonWithMetadata

verified

REQ_INTEROP_074

TEST_BulkDataHandlersTest_DescriptorToJsonWithoutDescription

DescriptorToJsonWithoutDescription

verified

REQ_INTEROP_074

TEST_BulkDataHandlersTest_FormatTimestampNsEpoch

FormatTimestampNsEpoch

verified

REQ_INTEROP_071

TEST_BulkDataHandlersTest_FormatTimestampNsNegativeFallback

FormatTimestampNsNegativeFallback

verified

REQ_INTEROP_071

TEST_BulkDataHandlersTest_FormatTimestampNsValidTimestamp

FormatTimestampNsValidTimestamp

verified

REQ_INTEROP_071

TEST_BulkDataHandlersTest_FormatTimestampNsWithMilliseconds

FormatTimestampNsWithMilliseconds

verified

REQ_INTEROP_071

TEST_BulkDataHandlersTest_GetRosbagMimetypeCasesSensitive

GetRosbagMimetypeCasesSensitive

verified

REQ_INTEROP_071

TEST_BulkDataHandlersTest_GetRosbagMimetypeDb3

GetRosbagMimetypeDb3

verified

REQ_INTEROP_071

TEST_BulkDataHandlersTest_GetRosbagMimetypeEmpty

GetRosbagMimetypeEmpty

verified

REQ_INTEROP_071

TEST_BulkDataHandlersTest_GetRosbagMimetypeMcap

GetRosbagMimetypeMcap

verified

REQ_INTEROP_071

TEST_BulkDataHandlersTest_GetRosbagMimetypeSqlite3

GetRosbagMimetypeSqlite3

verified

REQ_INTEROP_071

TEST_BulkDataHandlersTest_GetRosbagMimetypeUnknown

GetRosbagMimetypeUnknown

verified

REQ_INTEROP_071

TEST_BulkDataHandlersTest_PayloadTooLargeErrorCodeDefined

PayloadTooLargeErrorCodeDefined

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_EmptyCategories

EmptyCategories

verified

REQ_INTEROP_071

TEST_BulkDataStoreTest_GenerateUniqueIds

GenerateUniqueIds

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_GetFilePath

GetFilePath

verified

REQ_INTEROP_073

TEST_BulkDataStoreTest_GetFilePathNonexistent

GetFilePathNonexistent

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_IdFormatIsReadable

IdFormatIsReadable

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_ListCategories

ListCategories

verified

REQ_INTEROP_071

TEST_BulkDataStoreTest_ListItemsEmptyCategory

ListItemsEmptyCategory

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_ListItemsInCategory

ListItemsInCategory

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_ListItemsWrongEntity

ListItemsWrongEntity

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_MaxUploadSizeEnforced

MaxUploadSizeEnforced

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_MaxUploadZeroMeansUnlimited

MaxUploadZeroMeansUnlimited

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_PathTraversalRejected

PathTraversalRejected

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_RemoveItem

RemoveItem

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_RemoveNonexistent

RemoveNonexistent

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_RemoveThenListDoesNotInclude

RemoveThenListDoesNotInclude

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_StoreAndRetrieve

StoreAndRetrieve

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_StoreAtomicWriteDescriptorExists

StoreAtomicWriteDescriptorExists

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_StoreCreatesDirectoryStructure

StoreCreatesDirectoryStructure

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_StoreEmptyFile

StoreEmptyFile

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_StoreEmptyFilename

StoreEmptyFilename

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_StoreLargeFile

StoreLargeFile

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_StoreUnknownCategoryRejected

StoreUnknownCategoryRejected

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_StoreWithMetadata

StoreWithMetadata

verified

REQ_INTEROP_074

TEST_BulkDataStoreTest_UnknownCategory

UnknownCategory

verified

REQ_INTEROP_074

TEST_CapabilityGeneratorTest_EntityCollectionDetailPathHasParameters

EntityCollectionDetailPathHasParameters

verified

REQ_INTEROP_002

TEST_CapabilityGeneratorTest_GenerateEntityCollectionReturnsSpec

GenerateEntityCollectionReturnsSpec

verified

REQ_INTEROP_002

TEST_CapabilityGeneratorTest_GenerateInvalidPathReturnsNullopt

GenerateInvalidPathReturnsNullopt

verified

REQ_INTEROP_002

TEST_CapabilityGeneratorTest_GenerateRootContainsEntityCollections

GenerateRootContainsEntityCollections

verified

REQ_INTEROP_002

TEST_CapabilityGeneratorTest_GenerateRootContainsEntityDetailPaths

GenerateRootContainsEntityDetailPaths

verified

REQ_INTEROP_002

TEST_CapabilityGeneratorTest_GenerateRootContainsGlobalFaults

GenerateRootContainsGlobalFaults

verified

REQ_INTEROP_002

TEST_CapabilityGeneratorTest_GenerateRootContainsHealthEndpoint

GenerateRootContainsHealthEndpoint

verified

REQ_INTEROP_002

TEST_CapabilityGeneratorTest_GenerateRootContainsVersionInfo

GenerateRootContainsVersionInfo

verified

REQ_INTEROP_002

TEST_CapabilityGeneratorTest_GenerateRootReturnsValidOpenApiSpec

GenerateRootReturnsValidOpenApiSpec

verified

REQ_INTEROP_002

TEST_CgroupReader_CgroupV1FormatNotSupported

CgroupV1FormatNotSupported

verified

REQ_INTEROP_003

TEST_CgroupReader_DetectRuntime

DetectRuntime

verified

REQ_INTEROP_003

TEST_CgroupReader_ExtractContainerdContainerId

ExtractContainerdContainerId

verified

REQ_INTEROP_003

TEST_CgroupReader_ExtractDockerContainerId

ExtractDockerContainerId

verified

REQ_INTEROP_003

TEST_CgroupReader_ExtractDockerOldStyleContainerId

ExtractDockerOldStyleContainerId

verified

REQ_INTEROP_003

TEST_CgroupReader_ExtractNoContainerId

ExtractNoContainerId

verified

REQ_INTEROP_003

TEST_CgroupReader_ExtractPodmanContainerId

ExtractPodmanContainerId

verified

REQ_INTEROP_003

TEST_CgroupReader_IsContainerizedSyntheticProc

IsContainerizedSyntheticProc

verified

REQ_INTEROP_003

TEST_CgroupReader_ReadCgroupInfoMissingCgroupFile

ReadCgroupInfoMissingCgroupFile

verified

REQ_INTEROP_003

TEST_CgroupReader_ReadCgroupInfoMissingResourceFiles

ReadCgroupInfoMissingResourceFiles

verified

REQ_INTEROP_003

TEST_CgroupReader_ReadCgroupInfoUnlimitedResources

ReadCgroupInfoUnlimitedResources

verified

REQ_INTEROP_003

TEST_CgroupReader_ReadCgroupInfoWithResourceLimits

ReadCgroupInfoWithResourceLimits

verified

REQ_INTEROP_003

TEST_ConditionEvaluator_EnterRange_NonNumericReturnsFalse

EnterRange_NonNumericReturnsFalse

verified

REQ_INTEROP_097

TEST_ConditionEvaluator_LeaveRange_NonNumericReturnsFalse

LeaveRange_NonNumericReturnsFalse

verified

REQ_INTEROP_097

TEST_ConditionEvaluator_OnChange_ValidateParams

OnChange_ValidateParams

verified

REQ_INTEROP_029

TEST_ConditionEvaluator_OnChangeTo_ValidateParams_MissingTarget

OnChangeTo_ValidateParams_MissingTarget

verified

REQ_INTEROP_029

TEST_ConditionEvaluator_OnChangeTo_ValidateParams_Valid

OnChangeTo_ValidateParams_Valid

verified

REQ_INTEROP_029

TEST_ContainerPlugin_CgroupInfoToJsonAllFields

CgroupInfoToJsonAllFields

verified

REQ_INTEROP_003

TEST_ContainerPlugin_CgroupInfoToJsonMissingOptionals

CgroupInfoToJsonMissingOptionals

verified

REQ_INTEROP_003

TEST_ContainerPlugin_NotContainerizedSkipped

NotContainerizedSkipped

verified

REQ_INTEROP_003

TEST_CyclicSubscriptionJsonTest_ContainsAllRequiredFields

ContainsAllRequiredFields

verified

REQ_INTEROP_089

TEST_CyclicSubscriptionJsonTest_ServerLevelUpdateResource

ServerLevelUpdateResource

verified

REQ_INTEROP_089

TEST_DataHandlersTest_DataCategoriesErrorBodyContainsFeatureParameter

DataCategoriesErrorBodyContainsFeatureParameter

verified

REQ_INTEROP_016

TEST_DataHandlersTest_DataCategoriesErrorBodyContainsMessage

DataCategoriesErrorBodyContainsMessage

verified

REQ_INTEROP_016

TEST_DataHandlersTest_DataCategoriesErrorCodeIsNotImplemented

DataCategoriesErrorCodeIsNotImplemented

verified

REQ_INTEROP_016

TEST_DataHandlersTest_DataCategoriesResponseBodyIsValidJson

DataCategoriesResponseBodyIsValidJson

verified

REQ_INTEROP_016

TEST_DataHandlersTest_DataCategoriesReturns501

DataCategoriesReturns501

verified

REQ_INTEROP_016

TEST_DataHandlersTest_DataGroupsErrorBodyContainsFeatureParameter

DataGroupsErrorBodyContainsFeatureParameter

verified

REQ_INTEROP_017

TEST_DataHandlersTest_DataGroupsErrorBodyContainsMessage

DataGroupsErrorBodyContainsMessage

verified

REQ_INTEROP_017

TEST_DataHandlersTest_DataGroupsErrorCodeIsNotImplemented

DataGroupsErrorCodeIsNotImplemented

verified

REQ_INTEROP_017

TEST_DataHandlersTest_DataGroupsResponseBodyIsValidJson

DataGroupsResponseBodyIsValidJson

verified

REQ_INTEROP_017

TEST_DataHandlersTest_DataGroupsReturns501

DataGroupsReturns501

verified

REQ_INTEROP_017

TEST_DataHandlersTest_GetDataItemBadRequestBodyContainsInvalidRequestErrorCode

GetDataItemBadRequestBodyContainsInvalidRequestErrorCode

verified

REQ_INTEROP_019

TEST_DataHandlersTest_GetDataItemReturnsBadRequestWhenMatchesMissing

GetDataItemReturnsBadRequestWhenMatchesMissing

verified

REQ_INTEROP_019

TEST_DataHandlersTest_ListDataBadRequestBodyContainsErrorCode

ListDataBadRequestBodyContainsErrorCode

verified

REQ_INTEROP_018

TEST_DataHandlersTest_ListDataReturnsBadRequestWhenMatchesMissing

ListDataReturnsBadRequestWhenMatchesMissing

verified

REQ_INTEROP_018

TEST_DataHandlersTest_PutDataItemBadRequestBodyContainsInvalidRequestErrorCode

PutDataItemBadRequestBodyContainsInvalidRequestErrorCode

verified

REQ_INTEROP_020

TEST_DataHandlersTest_PutDataItemReturnsBadRequestWhenMatchesMissing

PutDataItemReturnsBadRequestWhenMatchesMissing

verified

REQ_INTEROP_020

TEST_DefaultScriptProviderTest_ConcurrencyLimit

ConcurrencyLimit

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_ControlCompletedExecutionReturnsNotRunning

ControlCompletedExecutionReturnsNotRunning

verified

REQ_INTEROP_047

TEST_DefaultScriptProviderTest_ControlStopExecution

ControlStopExecution

verified

REQ_INTEROP_047

TEST_DefaultScriptProviderTest_CrossEntityExecutionAccessRejected

CrossEntityExecutionAccessRejected

verified

REQ_INTEROP_046

TEST_DefaultScriptProviderTest_DeleteManifestScriptFails

DeleteManifestScriptFails

verified

REQ_INTEROP_043

TEST_DefaultScriptProviderTest_DeleteNonexistentScriptFails

DeleteNonexistentScriptFails

verified

REQ_INTEROP_043

TEST_DefaultScriptProviderTest_DeleteScriptWithRunningExecutionBlocked

DeleteScriptWithRunningExecutionBlocked

verified

REQ_INTEROP_043

TEST_DefaultScriptProviderTest_DeleteUploadedScript

DeleteUploadedScript

verified

REQ_INTEROP_043

TEST_DefaultScriptProviderTest_EnvVars

EnvVars

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_ExecutionNotFound

ExecutionNotFound

verified

REQ_INTEROP_046

TEST_DefaultScriptProviderTest_FlagArgs

FlagArgs

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_GetManifestScript

GetManifestScript

verified

REQ_INTEROP_042

TEST_DefaultScriptProviderTest_GetNonexistentScript

GetNonexistentScript

verified

REQ_INTEROP_042

TEST_DefaultScriptProviderTest_GetUploadedScript

GetUploadedScript

verified

REQ_INTEROP_042

TEST_DefaultScriptProviderTest_ListMergesManifestAndUploaded

ListMergesManifestAndUploaded

verified

REQ_INTEROP_041

TEST_DefaultScriptProviderTest_ManifestScriptsLoaded

ManifestScriptsLoaded

verified

REQ_INTEROP_041

TEST_DefaultScriptProviderTest_ManifestScriptWithParametersSchema

ManifestScriptWithParametersSchema

verified

REQ_INTEROP_042

TEST_DefaultScriptProviderTest_NamedArgs

NamedArgs

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_PositionalArgs

PositionalArgs

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_ScriptNotFoundExecution

ScriptNotFoundExecution

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_StdinJsonFallback

StdinJsonFallback

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_SubprocessExecutionBash

SubprocessExecutionBash

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_SubprocessExecutionPython

SubprocessExecutionPython

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_SubprocessExecutionSh

SubprocessExecutionSh

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_SubprocessFailure

SubprocessFailure

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_SubprocessTimeout

SubprocessTimeout

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_UnsupportedExecutionType

UnsupportedExecutionType

verified

REQ_INTEROP_044

TEST_DefaultScriptProviderTest_UploadDisabledReturnsError

UploadDisabledReturnsError

verified

REQ_INTEROP_040

TEST_DefaultScriptProviderTest_UploadedScriptsIsolatedByEntity

UploadedScriptsIsolatedByEntity

verified

REQ_INTEROP_041

TEST_DefaultScriptProviderTest_UploadExceedingFileSizeRejected

UploadExceedingFileSizeRejected

verified

REQ_INTEROP_040

TEST_DefaultScriptProviderTest_UploadToFilesystem

UploadToFilesystem

verified

REQ_INTEROP_040

TEST_DefaultScriptProviderTest_UploadWithoutMetadata

UploadWithoutMetadata

verified

REQ_INTEROP_040

TEST_DefaultScriptProviderTest_UploadWithParametersSchema

UploadWithParametersSchema

verified

REQ_INTEROP_040

TEST_DiscoveryHandlersFixtureTest_AppDependsOnReturnsResolvedAndMissingDependencies

AppDependsOnReturnsResolvedAndMissingDependencies

verified

REQ_INTEROP_009

TEST_DiscoveryHandlersFixtureTest_AppDependsOnUnknownAppReturns404

AppDependsOnUnknownAppReturns404

verified

REQ_INTEROP_009

TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnReturnsEmptyWhenAppHasNoComponent

AppIsLocatedOnReturnsEmptyWhenAppHasNoComponent

verified

REQ_INTEROP_105

TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnReturnsMissingItemWhenHostComponentUnresolved

AppIsLocatedOnReturnsMissingItemWhenHostComponentUnresolved

verified

REQ_INTEROP_105

TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnReturnsParentComponent

AppIsLocatedOnReturnsParentComponent

verified

REQ_INTEROP_105

TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnUnknownAppReturns404

AppIsLocatedOnUnknownAppReturns404

verified

REQ_INTEROP_105

TEST_DiscoveryHandlersFixtureTest_AreaComponentsReturnsMatchingComponentsOnly

AreaComponentsReturnsMatchingComponentsOnly

verified

REQ_INTEROP_006

TEST_DiscoveryHandlersFixtureTest_AreaComponentsUnknownAreaReturns404

AreaComponentsUnknownAreaReturns404

verified

REQ_INTEROP_006

TEST_DiscoveryHandlersFixtureTest_ComponentDependsOnReturnsResolvedAndMissingDependencies

ComponentDependsOnReturnsResolvedAndMissingDependencies

verified

REQ_INTEROP_008

TEST_DiscoveryHandlersFixtureTest_ComponentDependsOnUnknownComponentReturns404

ComponentDependsOnUnknownComponentReturns404

verified

REQ_INTEROP_008

TEST_DiscoveryHandlersFixtureTest_FunctionHostsReturnsHostingApps

FunctionHostsReturnsHostingApps

verified

REQ_INTEROP_007

TEST_DiscoveryHandlersFixtureTest_FunctionHostsUnknownFunctionReturns404

FunctionHostsUnknownFunctionReturns404

verified

REQ_INTEROP_007

TEST_DiscoveryHandlersFixtureTest_GetAppReturnsLinksAndCapabilities

GetAppReturnsLinksAndCapabilities

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersFixtureTest_GetAppUnknownIdReturns404

GetAppUnknownIdReturns404

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersFixtureTest_GetAreaReturnsCapabilitiesAndLinks

GetAreaReturnsCapabilitiesAndLinks

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersFixtureTest_GetAreaUnknownIdReturns404

GetAreaUnknownIdReturns404

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersFixtureTest_GetComponentReturnsRelationshipsAndCapabilities

GetComponentReturnsRelationshipsAndCapabilities

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersFixtureTest_GetContainsReturnsAreaComponents

GetContainsReturnsAreaComponents

verified

REQ_INTEROP_006

TEST_DiscoveryHandlersFixtureTest_GetContainsUnknownAreaReturns404

GetContainsUnknownAreaReturns404

verified

REQ_INTEROP_006

TEST_DiscoveryHandlersFixtureTest_GetFunctionReturnsCapabilitiesAndGraphLink

GetFunctionReturnsCapabilitiesAndGraphLink

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersFixtureTest_GetFunctionUnknownIdReturns404

GetFunctionUnknownIdReturns404

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersFixtureTest_GetHostsReturnsHostedApps

GetHostsReturnsHostedApps

verified

REQ_INTEROP_007

TEST_DiscoveryHandlersFixtureTest_GetHostsUnknownComponentReturns404

GetHostsUnknownComponentReturns404

verified

REQ_INTEROP_007

TEST_DiscoveryHandlersFixtureTest_GetSubareasReturnsChildAreas

GetSubareasReturnsChildAreas

verified

REQ_INTEROP_004

TEST_DiscoveryHandlersFixtureTest_GetSubareasUnknownAreaReturns404

GetSubareasUnknownAreaReturns404

verified

REQ_INTEROP_004

TEST_DiscoveryHandlersFixtureTest_GetSubcomponentsReturnsChildren

GetSubcomponentsReturnsChildren

verified

REQ_INTEROP_005

TEST_DiscoveryHandlersFixtureTest_GetSubcomponentsUnknownComponentReturns404

GetSubcomponentsUnknownComponentReturns404

verified

REQ_INTEROP_005

TEST_DiscoveryHandlersFixtureTest_ListAppsReturnsSeededMetadata

ListAppsReturnsSeededMetadata

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersFixtureTest_ListAreasReturnsSeededItems

ListAreasReturnsSeededItems

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersFixtureTest_ListComponentsReturnsMetadata

ListComponentsReturnsMetadata

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersFixtureTest_ListFunctionsReturnsSeededFunctions

ListFunctionsReturnsSeededFunctions

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersValidationTest_AppDependsOnInvalidIdReturns400

AppDependsOnInvalidIdReturns400

verified

REQ_INTEROP_009

TEST_DiscoveryHandlersValidationTest_AppIsLocatedOnInvalidIdReturns400

AppIsLocatedOnInvalidIdReturns400

verified

REQ_INTEROP_105

TEST_DiscoveryHandlersValidationTest_AreaComponentsInvalidIdReturns400

AreaComponentsInvalidIdReturns400

verified

REQ_INTEROP_006

TEST_DiscoveryHandlersValidationTest_ComponentDependsOnInvalidIdReturns400

ComponentDependsOnInvalidIdReturns400

verified

REQ_INTEROP_008

TEST_DiscoveryHandlersValidationTest_FunctionHostsInvalidIdReturns400

FunctionHostsInvalidIdReturns400

verified

REQ_INTEROP_007

TEST_DiscoveryHandlersValidationTest_GetAppInvalidIdReturns400

GetAppInvalidIdReturns400

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersValidationTest_GetAreaInvalidIdReturns400

GetAreaInvalidIdReturns400

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersValidationTest_GetAreaMissingMatchesReturns400

GetAreaMissingMatchesReturns400

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersValidationTest_GetComponentInvalidIdReturns400

GetComponentInvalidIdReturns400

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersValidationTest_GetContainsInvalidIdReturns400

GetContainsInvalidIdReturns400

verified

REQ_INTEROP_006

TEST_DiscoveryHandlersValidationTest_GetFunctionInvalidIdReturns400

GetFunctionInvalidIdReturns400

verified

REQ_INTEROP_003

TEST_DiscoveryHandlersValidationTest_GetHostsInvalidIdReturns400

GetHostsInvalidIdReturns400

verified

REQ_INTEROP_007

TEST_DiscoveryHandlersValidationTest_GetSubareasInvalidIdReturns400

GetSubareasInvalidIdReturns400

verified

REQ_INTEROP_004

TEST_DiscoveryHandlersValidationTest_GetSubcomponentsInvalidIdReturns400

GetSubcomponentsInvalidIdReturns400

verified

REQ_INTEROP_005

TEST_DocsHandlersTest_DocsAnyPathReturns200ForEntityCollection

DocsAnyPathReturns200ForEntityCollection

verified

REQ_INTEROP_002

TEST_DocsHandlersTest_DocsAnyPathReturns404ForInvalidPath

DocsAnyPathReturns404ForInvalidPath

verified

REQ_INTEROP_002

TEST_DocsHandlersTest_DocsDisabledReturns501

DocsDisabledReturns501

verified

REQ_INTEROP_002

TEST_DocsHandlersTest_DocsRootReturnsValidJson

DocsRootReturnsValidJson

verified

REQ_INTEROP_002

TEST_FaultEventPublishingTest_ListFaultsForEntityEmptyResult

ListFaultsForEntityEmptyResult

verified

REQ_INTEROP_012

TEST_FaultEventPublishingTest_ListFaultsForEntitySuccess

ListFaultsForEntitySuccess

verified

REQ_INTEROP_012

TEST_FaultEventPublishingTest_ListFaultsForEntityWithEmptyId

ListFaultsForEntityWithEmptyId

verified

REQ_INTEROP_012

TEST_FaultHandlersTest_BuildSovdFaultResponseBasicFields

BuildSovdFaultResponseBasicFields

verified

REQ_INTEROP_013

TEST_FaultHandlersTest_BuildSovdFaultResponseExtendedDataRecords

BuildSovdFaultResponseExtendedDataRecords

verified

REQ_INTEROP_013

TEST_FaultHandlersTest_BuildSovdFaultResponseMixedSnapshots

BuildSovdFaultResponseMixedSnapshots

verified

REQ_INTEROP_013

TEST_FaultHandlersTest_BuildSovdFaultResponseMultipleSources

BuildSovdFaultResponseMultipleSources

verified

REQ_INTEROP_013

TEST_FaultHandlersTest_BuildSovdFaultResponseNestedEntityPath

BuildSovdFaultResponseNestedEntityPath

verified

REQ_INTEROP_013

TEST_FaultHandlersTest_BuildSovdFaultResponsePrimaryValueExtraction

BuildSovdFaultResponsePrimaryValueExtraction

verified

REQ_INTEROP_013

TEST_FaultHandlersTest_BuildSovdFaultResponseSeverityLabels

BuildSovdFaultResponseSeverityLabels

verified

REQ_INTEROP_013

TEST_FaultHandlersTest_BuildSovdFaultResponseStatusCleared

BuildSovdFaultResponseStatusCleared

verified

REQ_INTEROP_013

TEST_FaultHandlersTest_BuildSovdFaultResponseStatusPassive

BuildSovdFaultResponseStatusPassive

verified

REQ_INTEROP_013

TEST_FaultHandlersTest_BuildSovdFaultResponseWithFreezeFrame

BuildSovdFaultResponseWithFreezeFrame

verified

REQ_INTEROP_013

TEST_FaultHandlersTest_BuildSovdFaultResponseWithInvalidJson

BuildSovdFaultResponseWithInvalidJson

verified

REQ_INTEROP_013

TEST_FaultHandlersTest_BuildSovdFaultResponseWithRosbag

BuildSovdFaultResponseWithRosbag

verified

REQ_INTEROP_013

TEST_FaultManagerTest_GetRosbagNotFound

GetRosbagNotFound

verified

REQ_INTEROP_088

TEST_FaultManagerTest_GetRosbagServiceNotAvailable

GetRosbagServiceNotAvailable

verified

REQ_INTEROP_088

TEST_FaultManagerTest_GetRosbagSuccess

GetRosbagSuccess

verified

REQ_INTEROP_088

TEST_FaultManagerTest_GetRosbagUsesConfiguredFaultManagerNamespace

GetRosbagUsesConfiguredFaultManagerNamespace

verified

REQ_INTEROP_088

TEST_FaultManagerTest_GetSnapshotsEmptyResponse

GetSnapshotsEmptyResponse

verified

REQ_INTEROP_088

TEST_FaultManagerTest_GetSnapshotsErrorResponse

GetSnapshotsErrorResponse

verified

REQ_INTEROP_088

TEST_FaultManagerTest_GetSnapshotsInvalidJsonFallback

GetSnapshotsInvalidJsonFallback

verified

REQ_INTEROP_088

TEST_FaultManagerTest_GetSnapshotsServiceNotAvailable

GetSnapshotsServiceNotAvailable

verified

REQ_INTEROP_088

TEST_FaultManagerTest_GetSnapshotsSuccessWithTopicFilter

GetSnapshotsSuccessWithTopicFilter

verified

REQ_INTEROP_088

TEST_FaultManagerTest_GetSnapshotsSuccessWithValidJson

GetSnapshotsSuccessWithValidJson

verified

REQ_INTEROP_088

TEST_FaultManagerTest_GetSnapshotsUsesConfiguredFaultManagerNamespace

GetSnapshotsUsesConfiguredFaultManagerNamespace

verified

REQ_INTEROP_088

TEST_GapFillConfigTest_DefaultAllowsAll

DefaultAllowsAll

verified

REQ_INTEROP_003

TEST_GapFillConfigTest_NamespaceBlacklistFiltersAreas

NamespaceBlacklistFiltersAreas

verified

REQ_INTEROP_003

TEST_GapFillConfigTest_NamespaceWhitelistFiltersAreas

NamespaceWhitelistFiltersAreas

verified

REQ_INTEROP_003

TEST_GraphProviderPluginRouteTest_RegistersFunctionCapabilityOnContext

RegistersFunctionCapabilityOnContext

verified

REQ_INTEROP_003

TEST_GraphProviderPluginRouteTest_RegistersSamplerForCyclicSubscriptions

RegistersSamplerForCyclicSubscriptions

verified

REQ_INTEROP_003

TEST_GraphProviderPluginRouteTest_ServesFunctionGraphFromCachedSnapshot

ServesFunctionGraphFromCachedSnapshot

verified

REQ_INTEROP_003

TEST_HealthHandlersTest_HandleRootAuthDisabledNoAuthEndpoints

HandleRootAuthDisabledNoAuthEndpoints

verified

REQ_INTEROP_010

TEST_HealthHandlersTest_HandleRootAuthEnabledAddsAuthEndpoints

HandleRootAuthEnabledAddsAuthEndpoints

verified

REQ_INTEROP_010

TEST_HealthHandlersTest_HandleRootAuthEnabledIncludesAuthMetadataBlock

HandleRootAuthEnabledIncludesAuthMetadataBlock

verified

REQ_INTEROP_010

TEST_HealthHandlersTest_HandleRootCapabilitiesAuthDisabled

HandleRootCapabilitiesAuthDisabled

verified

REQ_INTEROP_010

TEST_HealthHandlersTest_HandleRootCapabilitiesContainsDiscovery

HandleRootCapabilitiesContainsDiscovery

verified

REQ_INTEROP_010

TEST_HealthHandlersTest_HandleRootCapabilitiesTlsDisabled

HandleRootCapabilitiesTlsDisabled

verified

REQ_INTEROP_010

TEST_HealthHandlersTest_HandleRootEndpointsIsNonEmptyArray

HandleRootEndpointsIsNonEmptyArray

verified

REQ_INTEROP_010

TEST_HealthHandlersTest_HandleRootResponseContainsRequiredTopLevelFields

HandleRootResponseContainsRequiredTopLevelFields

verified

REQ_INTEROP_010

TEST_HealthHandlersTest_HandleRootTlsEnabledIncludesTlsMetadataBlock

HandleRootTlsEnabledIncludesTlsMetadataBlock

verified

REQ_INTEROP_010

TEST_HealthHandlersTest_HandleVersionInfoContainsItemsArray

HandleVersionInfoContainsItemsArray

verified

REQ_INTEROP_001

TEST_HealthHandlersTest_HandleVersionInfoItemsEntryHasBaseUri

HandleVersionInfoItemsEntryHasBaseUri

verified

REQ_INTEROP_001

TEST_HealthHandlersTest_HandleVersionInfoItemsEntryHasVendorInfo

HandleVersionInfoItemsEntryHasVendorInfo

verified

REQ_INTEROP_001

TEST_HealthHandlersTest_HandleVersionInfoItemsEntryHasVersionField

HandleVersionInfoItemsEntryHasVersionField

verified

REQ_INTEROP_001

TEST_IntervalParsingTest_ParsesValidIntervals

ParsesValidIntervals

verified

REQ_INTEROP_089

TEST_LoadPersistentTriggers_ExpiredTriggerMarkedTerminatedOnLoad

ExpiredTriggerMarkedTerminatedOnLoad

verified

REQ_INTEROP_029

TEST_LoadPersistentTriggers_NewTriggerIdIsHigherThanRestoredId

NewTriggerIdIsHigherThanRestoredId

verified

REQ_INTEROP_029

TEST_LoadPersistentTriggers_ResetBehaviorDoesNotRestoreTriggers

ResetBehaviorDoesNotRestoreTriggers

verified

REQ_INTEROP_029

TEST_LoadPersistentTriggers_RestoreBehaviorLoadsActiveTrigger

RestoreBehaviorLoadsActiveTrigger

verified

REQ_INTEROP_029

TEST_LockManagerTest_test_acquire_already_locked

test_acquire_already_locked

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_acquire_break_lock

test_acquire_break_lock

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_acquire_break_lock_not_breakable

test_acquire_break_lock_not_breakable

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_acquire_invalid_expiration

test_acquire_invalid_expiration

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_acquire_invalid_scope

test_acquire_invalid_scope

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_acquire_lock_basic

test_acquire_lock_basic

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_acquire_lock_full

test_acquire_lock_full

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_acquire_lock_scoped

test_acquire_lock_scoped

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_check_access_area_propagation

test_check_access_area_propagation

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_check_access_not_owner

test_check_access_not_owner

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_check_access_owner

test_check_access_owner

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_check_access_parent_propagation

test_check_access_parent_propagation

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_check_access_partial_scope_propagation

test_check_access_partial_scope_propagation

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_check_access_scoped_match

test_check_access_scoped_match

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_check_access_scoped_no_match

test_check_access_scoped_no_match

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_check_access_unlocked

test_check_access_unlocked

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_cleanup_expired

test_cleanup_expired

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_cleanup_not_expired

test_cleanup_not_expired

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_config_disabled

test_config_disabled

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_extend_lock

test_extend_lock

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_extend_not_found

test_extend_not_found

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_extend_not_owner

test_extend_not_owner

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_get_lock

test_get_lock

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_get_lock_by_id

test_get_lock_by_id

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_lock_required_different_collection_not_blocked

test_lock_required_different_collection_not_blocked

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_lock_required_has_lock

test_lock_required_has_lock

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_lock_required_no_lock_held

test_lock_required_no_lock_held

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_release_lock

test_release_lock

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_release_not_found

test_release_not_found

verified

REQ_INTEROP_100

TEST_LockManagerTest_test_release_not_owner

test_release_not_owner

verified

REQ_INTEROP_100

TEST_LogHandlersTest_GetLogsBadRequestBodyContainsInvalidRequestErrorCode

GetLogsBadRequestBodyContainsInvalidRequestErrorCode

verified

REQ_INTEROP_061

TEST_LogHandlersTest_GetLogsBadRequestBodyIsValidJson

GetLogsBadRequestBodyIsValidJson

verified

REQ_INTEROP_061

TEST_LogHandlersTest_GetLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode

GetLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode

verified

REQ_INTEROP_063

TEST_LogHandlersTest_GetLogsConfigurationBadRequestBodyIsValidJson

GetLogsConfigurationBadRequestBodyIsValidJson

verified

REQ_INTEROP_063

TEST_LogHandlersTest_GetLogsConfigurationReturnsBadRequestWhenMatchesMissing

GetLogsConfigurationReturnsBadRequestWhenMatchesMissing

verified

REQ_INTEROP_063

TEST_LogHandlersTest_GetLogsReturnsBadRequestWhenMatchesMissing

GetLogsReturnsBadRequestWhenMatchesMissing

verified

REQ_INTEROP_061

TEST_LogHandlersTest_PutLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode

PutLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode

verified

REQ_INTEROP_064

TEST_LogHandlersTest_PutLogsConfigurationBadRequestBodyIsValidJson

PutLogsConfigurationBadRequestBodyIsValidJson

verified

REQ_INTEROP_064

TEST_LogHandlersTest_PutLogsConfigurationReturnsBadRequestWhenMatchesMissing

PutLogsConfigurationReturnsBadRequestWhenMatchesMissing

verified

REQ_INTEROP_064

TEST_LogManagerBufferTest_AddLogEntry_EmptyMetadataNoSuffix

AddLogEntry_EmptyMetadataNoSuffix

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_AddLogEntry_EntryRetrievable

AddLogEntry_EntryRetrievable

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_AddLogEntry_InvalidSeverityFallsBackToInfo

AddLogEntry_InvalidSeverityFallsBackToInfo

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_AddLogEntry_MetadataAppendedToMessage

AddLogEntry_MetadataAppendedToMessage

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_BufferCapDropsNewNodesWhenFull

BufferCapDropsNewNodesWhenFull

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_ContextFilterMatchesSubstring

ContextFilterMatchesSubstring

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_FqnWithLeadingSlashMatchesBuffer

FqnWithLeadingSlashMatchesBuffer

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_GetConfigReturnsDefaultsForUnknownEntity

GetConfigReturnsDefaultsForUnknownEntity

verified

REQ_INTEROP_063

TEST_LogManagerBufferTest_GetLogsMatchesDotNotationLoggerNames

GetLogsMatchesDotNotationLoggerNames

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_GetLogsPrefixMatchesDotNotationLoggerNames

GetLogsPrefixMatchesDotNotationLoggerNames

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_MaxEntriesCapsMostRecentEntries

MaxEntriesCapsMostRecentEntries

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_PartialConfigUpdatePreservesOtherField

PartialConfigUpdatePreservesOtherField

verified

REQ_INTEROP_064

TEST_LogManagerBufferTest_PrefixMatchDoesNotFalsePositiveOnSubstring

PrefixMatchDoesNotFalsePositiveOnSubstring

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_PrefixMatchIncludesChildNamespaces

PrefixMatchIncludesChildNamespaces

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_RingBufferEvictsOldestEntryWhenFull

RingBufferEvictsOldestEntryWhenFull

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_SeverityFilterExcludesLowerLevels

SeverityFilterExcludesLowerLevels

verified

REQ_INTEROP_061

TEST_LogManagerBufferTest_UpdateConfigRejectsInvalidSeverity

UpdateConfigRejectsInvalidSeverity

verified

REQ_INTEROP_064

TEST_LogManagerBufferTest_UpdateConfigRejectsZeroMaxEntries

UpdateConfigRejectsZeroMaxEntries

verified

REQ_INTEROP_064

TEST_LogManagerEntryToJsonTest_AllSeverityLevels

AllSeverityLevels

verified

REQ_INTEROP_061

TEST_LogManagerEntryToJsonTest_BasicFields

BasicFields

verified

REQ_INTEROP_061

TEST_LogManagerEntryToJsonTest_EmptyOptionalFieldsOmitted

EmptyOptionalFieldsOmitted

verified

REQ_INTEROP_061

TEST_LogManagerFqnTest_NormalizeEmptyStringUnchanged

NormalizeEmptyStringUnchanged

verified

REQ_INTEROP_061

TEST_LogManagerFqnTest_NormalizeNoLeadingSlashUnchanged

NormalizeNoLeadingSlashUnchanged

verified

REQ_INTEROP_061

TEST_LogManagerFqnTest_NormalizeStripsLeadingSlash

NormalizeStripsLeadingSlash

verified

REQ_INTEROP_061

TEST_LogManagerIngestionTest_DefaultManagesIngestionPreservesCurrentBehavior

DefaultManagesIngestionPreservesCurrentBehavior

verified

REQ_INTEROP_061

TEST_LogManagerIngestionTest_ManagesIngestionDelegatesToPlugin

ManagesIngestionDelegatesToPlugin

verified

REQ_INTEROP_061

TEST_LogManagerIngestionTest_ManagesIngestionGetConfigDelegatesToPlugin

ManagesIngestionGetConfigDelegatesToPlugin

verified

REQ_INTEROP_063

TEST_LogManagerIngestionTest_ManagesIngestionLocalBufferBypassed

ManagesIngestionLocalBufferBypassed

verified

REQ_INTEROP_061

TEST_LogManagerIngestionTest_ManagesIngestionStillValidatesBeforeDelegation

ManagesIngestionStillValidatesBeforeDelegation

verified

REQ_INTEROP_064

TEST_LogManagerIngestionTest_ManagesIngestionUpdateConfigDelegatesToPlugin

ManagesIngestionUpdateConfigDelegatesToPlugin

verified

REQ_INTEROP_064

TEST_LogManagerIngestionTest_NoPluginPreservesDefaultBehavior

NoPluginPreservesDefaultBehavior

verified

REQ_INTEROP_061

TEST_LogManagerIngestionTest_PluginGetConfigThrowReturnsError

PluginGetConfigThrowReturnsError

verified

REQ_INTEROP_063

TEST_LogManagerIngestionTest_PluginGetLogsThrowReturnsError

PluginGetLogsThrowReturnsError

verified

REQ_INTEROP_061

TEST_LogManagerResolverTest_ResolverMatchesBareNameReturnsEntityId

ResolverMatchesBareNameReturnsEntityId

verified

REQ_INTEROP_061

TEST_LogManagerResolverTest_ResolverMatchesWithSlashPrefixReturnsEntityId

ResolverMatchesWithSlashPrefixReturnsEntityId

verified

REQ_INTEROP_061

TEST_LogManagerResolverTest_ResolverReturnsEmptyFallsBackToLastSegment

ResolverReturnsEmptyFallsBackToLastSegment

verified

REQ_INTEROP_061

TEST_LogManagerSeverityTest_IsValidSeverity

IsValidSeverity

verified

REQ_INTEROP_061

TEST_LogManagerSeverityTest_LevelToSeverityMapping

LevelToSeverityMapping

verified

REQ_INTEROP_061

TEST_LogManagerSeverityTest_SeverityToLevelMapping

SeverityToLevelMapping

verified

REQ_INTEROP_061

TEST_ManifestLayerTest_DefaultPolicies

DefaultPolicies

verified

REQ_INTEROP_003

TEST_ManifestParserTest_ParseScripts

ParseScripts

verified

REQ_INTEROP_041

TEST_ManifestParserTest_ParseScriptsMissingFormat

ParseScriptsMissingFormat

verified

REQ_INTEROP_041

TEST_ManifestParserTest_ParseScriptsMissingId

ParseScriptsMissingId

verified

REQ_INTEROP_041

TEST_ManifestParserTest_ParseScriptsMissingPath

ParseScriptsMissingPath

verified

REQ_INTEROP_041

TEST_ManifestParserTest_ParseScriptsTimeoutClampedToMinimum

ParseScriptsTimeoutClampedToMinimum

verified

REQ_INTEROP_041

TEST_MergePipelineTest_AppStatusMerge_BoolOrSemantics

AppStatusMerge_BoolOrSemantics

verified

REQ_INTEROP_003

TEST_MergePipelineTest_LayerExceptionDoesNotCrashPipeline

LayerExceptionDoesNotCrashPipeline

verified

REQ_INTEROP_003

TEST_MergePipelineTest_PluginReceivesDiscoveryContext

PluginReceivesDiscoveryContext

verified

REQ_INTEROP_003

TEST_MergePipelineTest_ThreeLayerMerge_PerFieldGroupOwnerTracking

ThreeLayerMerge_PerFieldGroupOwnerTracking

verified

REQ_INTEROP_003

TEST_MergePipelineTest_ThreeLayerMerge_PluginEnrichesManifestEntity

ThreeLayerMerge_PluginEnrichesManifestEntity

verified

REQ_INTEROP_003

TEST_MergeTypesTest_MergePolicyValues

MergePolicyValues

verified

REQ_INTEROP_003

TEST_OpenApiSpecBuilderTest_AlwaysIncludesGenericErrorResponse

AlwaysIncludesGenericErrorResponse

verified

REQ_INTEROP_002

TEST_OpenApiSpecBuilderTest_BuildContainsComponentsSchemas

BuildContainsComponentsSchemas

verified

REQ_INTEROP_002

TEST_OpenApiSpecBuilderTest_BuildContainsInfoBlock

BuildContainsInfoBlock

verified

REQ_INTEROP_002

TEST_OpenApiSpecBuilderTest_BuildContainsPathsObject

BuildContainsPathsObject

verified

REQ_INTEROP_002

TEST_OpenApiSpecBuilderTest_BuildContainsServersArray

BuildContainsServersArray

verified

REQ_INTEROP_002

TEST_OpenApiSpecBuilderTest_BuildContainsSovdVersion

BuildContainsSovdVersion

verified

REQ_INTEROP_002

TEST_OpenApiSpecBuilderTest_BuildProducesOpenApi310Version

BuildProducesOpenApi310Version

verified

REQ_INTEROP_002

TEST_OpenApiSpecBuilderTest_FluentInterfaceChaining

FluentInterfaceChaining

verified

REQ_INTEROP_002

TEST_OpenApiSpecBuilderTest_GenericErrorSchemaAlwaysPresent

GenericErrorSchemaAlwaysPresent

verified

REQ_INTEROP_002

TEST_OpenApiSpecBuilderTest_NonEmptySchemasArePresentInOutput

NonEmptySchemasArePresentInOutput

verified

REQ_INTEROP_002

TEST_OpenApiSpecBuilderTest_SecuritySchemeAddsToComponents

SecuritySchemeAddsToComponents

verified

REQ_INTEROP_002

TEST_ParseResourceUriTest_DataCollectionWithTopic

DataCollectionWithTopic

verified

REQ_INTEROP_089

TEST_ParseResourceUriTest_UpdateStatusUri

UpdateStatusUri

verified

REQ_INTEROP_089

TEST_PathBuilderTest_ActionOperationHasGetAndPost

ActionOperationHasGetAndPost

verified

REQ_INTEROP_002

TEST_PathBuilderTest_BulkDataHasGet

BulkDataHasGet

verified

REQ_INTEROP_002

TEST_PathBuilderTest_ConfigurationsHasGetAndDelete

ConfigurationsHasGetAndDelete

verified

REQ_INTEROP_002

TEST_PathBuilderTest_CyclicSubscriptionsHasGetAndPost

CyclicSubscriptionsHasGetAndPost

verified

REQ_INTEROP_002

TEST_PathBuilderTest_DataCollectionHasGet

DataCollectionHasGet

verified

REQ_INTEROP_002

TEST_PathBuilderTest_DataItemGetAlwaysPresent

DataItemGetAlwaysPresent

verified

REQ_INTEROP_002

TEST_PathBuilderTest_DataItemPutForSubscribeTopic

DataItemPutForSubscribeTopic

verified

REQ_INTEROP_002

TEST_PathBuilderTest_EntityCollectionHasGet

EntityCollectionHasGet

verified

REQ_INTEROP_002

TEST_PathBuilderTest_EntityDetailConcretePathOmitsParameters

EntityDetailConcretePathOmitsParameters

verified

REQ_INTEROP_002

TEST_PathBuilderTest_EntityDetailHasGet

EntityDetailHasGet

verified

REQ_INTEROP_002

TEST_PathBuilderTest_EntityDetailTemplatePathHasParameters

EntityDetailTemplatePathHasParameters

verified

REQ_INTEROP_002

TEST_PathBuilderTest_ErrorResponsesWithoutAuth

ErrorResponsesWithoutAuth

verified

REQ_INTEROP_002

TEST_PathBuilderTest_FaultsHasGetAndDelete

FaultsHasGetAndDelete

verified

REQ_INTEROP_002

TEST_PathBuilderTest_LogsHasGet

LogsHasGet

verified

REQ_INTEROP_002

TEST_PathBuilderTest_OperationsCollectionHasGet

OperationsCollectionHasGet

verified

REQ_INTEROP_002

TEST_PathBuilderTest_ServiceOperationHasGetAndPost

ServiceOperationHasGetAndPost

verified

REQ_INTEROP_002

TEST_PathBuilderTest_SseEndpointHasGet

SseEndpointHasGet

verified

REQ_INTEROP_002

TEST_PathResolverTest_DeepNestedPath

DeepNestedPath

verified

REQ_INTEROP_002

TEST_PathResolverTest_EntityCollection

EntityCollection

verified

REQ_INTEROP_002

TEST_PathResolverTest_HostsIsResourceCollection

HostsIsResourceCollection

verified

REQ_INTEROP_002

TEST_PathResolverTest_HostsUnderFunctionsIsResourceCollection

HostsUnderFunctionsIsResourceCollection

verified

REQ_INTEROP_002

TEST_PathResolverTest_MultiSegmentResourceId

MultiSegmentResourceId

verified

REQ_INTEROP_002

TEST_PathResolverTest_NestedEntityCollection

NestedEntityCollection

verified

REQ_INTEROP_002

TEST_PathResolverTest_ResourceCollection

ResourceCollection

verified

REQ_INTEROP_002

TEST_PathResolverTest_RootPath

RootPath

verified

REQ_INTEROP_002

TEST_PathResolverTest_SpecificEntity

SpecificEntity

verified

REQ_INTEROP_002

TEST_PathResolverTest_SpecificResource

SpecificResource

verified

REQ_INTEROP_002

TEST_PerEntityStorageTest_BackwardCompatibleWithoutResolver

BackwardCompatibleWithoutResolver

verified

REQ_INTEROP_095

TEST_PerEntityStorageTest_DifferentEntitiesSameFaultCode

DifferentEntitiesSameFaultCode

verified

REQ_INTEROP_095

TEST_PerEntityStorageTest_LidarFaultConfirmsImmediately

LidarFaultConfirmsImmediately

verified

REQ_INTEROP_095

TEST_PerEntityStorageTest_LidarHealingWithThreshold1

LidarHealingWithThreshold1

verified

REQ_INTEROP_095

TEST_PerEntityStorageTest_MotorFaultNeedsDebouncing

MotorFaultNeedsDebouncing

verified

REQ_INTEROP_095

TEST_PerEntityStorageTest_UnknownEntityUsesGlobalConfig

UnknownEntityUsesGlobalConfig

verified

REQ_INTEROP_095

TEST_PidCacheTest_AutoRefreshOnTTLExpiry

AutoRefreshOnTTLExpiry

verified

REQ_INTEROP_003

TEST_PidCacheTest_ConcurrentLookupDoesNotCrash

ConcurrentLookupDoesNotCrash

verified

REQ_INTEROP_003

TEST_PidCacheTest_EmptyProcDir

EmptyProcDir

verified

REQ_INTEROP_003

TEST_PidCacheTest_LookupAfterRefresh

LookupAfterRefresh

verified

REQ_INTEROP_003

TEST_PidCacheTest_LookupMissingNode

LookupMissingNode

verified

REQ_INTEROP_003

TEST_PidCacheTest_LookupRootNamespaceNode

LookupRootNamespaceNode

verified

REQ_INTEROP_003

TEST_PidCacheTest_NonexistentProcDir

NonexistentProcDir

verified

REQ_INTEROP_003

TEST_PidCacheTest_NoRefreshWithinTTL

NoRefreshWithinTTL

verified

REQ_INTEROP_003

TEST_PluginLayerTest_DefaultPolicies

DefaultPolicies

verified

REQ_INTEROP_003

TEST_ProcfsPlugin_ProcessInfoToJsonAllFields

ProcessInfoToJsonAllFields

verified

REQ_INTEROP_003

TEST_ProcfsPlugin_ProcessInfoToJsonNegativeUptimeClamped

ProcessInfoToJsonNegativeUptimeClamped

verified

REQ_INTEROP_003

TEST_ProcfsPlugin_ProcessInfoToJsonZeroUptime

ProcessInfoToJsonZeroUptime

verified

REQ_INTEROP_003

TEST_ProcReader_ReadNonexistentPidFails

ReadNonexistentPidFails

verified

REQ_INTEROP_003

TEST_ProcReader_ReadSelfProcess

ReadSelfProcess

verified

REQ_INTEROP_003

TEST_ProcReader_ReadSystemUptime

ReadSystemUptime

verified

REQ_INTEROP_003

TEST_ProcReader_ReadSystemUptimeMissingFile

ReadSystemUptimeMissingFile

verified

REQ_INTEROP_003

TEST_ProcReader_StateFieldPopulated

StateFieldPopulated

verified

REQ_INTEROP_003

TEST_ResolverTest_EmptyResolverReturnsGlobal

EmptyResolverReturnsGlobal

verified

REQ_INTEROP_095

TEST_ResolverTest_ExactMatch

ExactMatch

verified

REQ_INTEROP_095

TEST_ResolverTest_LongestPrefixWins

LongestPrefixWins

verified

REQ_INTEROP_095

TEST_ResolverTest_NoMatchReturnsGlobal

NoMatchReturnsGlobal

verified

REQ_INTEROP_095

TEST_ResolverTest_PartialOverrideMergesWithGlobal

PartialOverrideMergesWithGlobal

verified

REQ_INTEROP_095

TEST_ResolverTest_PrefixMatch

PrefixMatch

verified

REQ_INTEROP_095

TEST_ResolverTest_PrefixMatchRequiresPathBoundary

PrefixMatchRequiresPathBoundary

verified

REQ_INTEROP_095

TEST_ResolverTest_SizeReturnsEntryCount

SizeReturnsEntryCount

verified

REQ_INTEROP_095

TEST_ResourceChangeNotifier_AsyncDispatchNonBlocking

AsyncDispatchNonBlocking

verified

REQ_INTEROP_097

TEST_ResourceChangeNotifier_SubscribeAndNotify

SubscribeAndNotify

verified

REQ_INTEROP_097

TEST_RosbagCaptureTest_ConstructorAcceptsMcapFormat

ConstructorAcceptsMcapFormat

verified

REQ_INTEROP_088

TEST_RosbagCaptureTest_ConstructorRequiresValidNode

ConstructorRequiresValidNode

verified

REQ_INTEROP_088

TEST_RosbagCaptureTest_ConstructorRequiresValidStorage

ConstructorRequiresValidStorage

verified

REQ_INTEROP_088

TEST_RosbagCaptureTest_ConstructorSucceedsWithValidParams

ConstructorSucceedsWithValidParams

verified

REQ_INTEROP_088

TEST_RosbagCaptureTest_ConstructorThrowsOnInvalidFormat

ConstructorThrowsOnInvalidFormat

verified

REQ_INTEROP_088

TEST_RosbagCaptureTest_ConstructorWithDisabledRosbag

ConstructorWithDisabledRosbag

verified

REQ_INTEROP_088

TEST_RosbagCaptureTest_IsEnabledReturnsConfigState

IsEnabledReturnsConfigState

verified

REQ_INTEROP_088

TEST_RouteDescriptionsTest_EmptyBuilderProducesEmptyDescriptions

EmptyBuilderProducesEmptyDescriptions

verified

REQ_INTEROP_002

TEST_RouteDescriptionsTest_MultipleEndpoints

MultipleEndpoints

verified

REQ_INTEROP_002

TEST_RouteDescriptionsTest_PostWithRequestBody

PostWithRequestBody

verified

REQ_INTEROP_002

TEST_RouteDescriptionsTest_SchemaTypes

SchemaTypes

verified

REQ_INTEROP_002

TEST_RouteDescriptionsTest_SingleGetEndpoint

SingleGetEndpoint

verified

REQ_INTEROP_002

TEST_RouteRegistryTest_AuthEnabledAdds401And403Responses

AuthEnabledAdds401And403Responses

verified

REQ_INTEROP_002

TEST_RouteRegistryTest_ErrorResponsesUseGenericErrorRef

ErrorResponsesUseGenericErrorRef

verified

REQ_INTEROP_002

TEST_RouteRegistryTest_OperationIdIsGenerated

OperationIdIsGenerated

verified

REQ_INTEROP_002

TEST_RouteRegistryTest_PathParamDescriptionsArePresent

PathParamDescriptionsArePresent

verified

REQ_INTEROP_002

TEST_RouteRegistryTest_ToOpenapiPathsContainsRegisteredRoute

ToOpenapiPathsContainsRegisteredRoute

verified

REQ_INTEROP_002

TEST_RouteRegistryTest_ToOpenapiPathsMultipleMethodsSamePath

ToOpenapiPathsMultipleMethodsSamePath

verified

REQ_INTEROP_002

TEST_RouteRegistryTest_ToRegexPathRootBecomesRootAnchored

ToRegexPathRootBecomesRootAnchored

verified

REQ_INTEROP_002

TEST_RuntimeLayerTest_DefaultPolicies

DefaultPolicies

verified

REQ_INTEROP_003

TEST_RuntimeLinkerTest_ExactMatch_NodeNameAndNamespace

ExactMatch_NodeNameAndNamespace

verified

REQ_INTEROP_003

TEST_RuntimeLinkerTest_OrphanPolicy_IncludeAsOrphan_NoError

OrphanPolicy_IncludeAsOrphan_NoError

verified

REQ_INTEROP_003

TEST_RuntimeLinkerTest_OrphanPolicy_Warn_NoError

OrphanPolicy_Warn_NoError

verified

REQ_INTEROP_003

TEST_SchemaBuilderRuntimeTest_FromRosMsgKnownType

FromRosMsgKnownType

verified

REQ_INTEROP_002

TEST_SchemaBuilderRuntimeTest_FromRosMsgUnknownType

FromRosMsgUnknownType

verified

REQ_INTEROP_002

TEST_ScriptHandlersErrorMappingTest_AlreadyRunningMapsTo409

AlreadyRunningMapsTo409

verified

REQ_INTEROP_044

TEST_ScriptHandlersErrorMappingTest_ConcurrencyLimitMapsTo429

ConcurrencyLimitMapsTo429

verified

REQ_INTEROP_044

TEST_ScriptHandlersErrorMappingTest_DeleteReturns204

DeleteReturns204

verified

REQ_INTEROP_043

TEST_ScriptHandlersErrorMappingTest_FileTooLargeMapsTo413

FileTooLargeMapsTo413

verified

REQ_INTEROP_040

TEST_ScriptHandlersErrorMappingTest_ManagedScriptMapsTo409

ManagedScriptMapsTo409

verified

REQ_INTEROP_043

TEST_ScriptHandlersErrorMappingTest_NotFoundMapsTo404

NotFoundMapsTo404

verified

REQ_INTEROP_042

TEST_ScriptHandlersErrorMappingTest_StartExecutionReturns202WithLocation

StartExecutionReturns202WithLocation

verified

REQ_INTEROP_044

TEST_ScriptHandlersErrorMappingTest_UploadRejectsWrongContentType

UploadRejectsWrongContentType

verified

REQ_INTEROP_040

TEST_ScriptHandlersErrorMappingTest_UploadReturns201WithLocation

UploadReturns201WithLocation

verified

REQ_INTEROP_040

TEST_ScriptHandlersNoBackendTest_ControlExecutionReturns501WhenNoBackend

ControlExecutionReturns501WhenNoBackend

verified

REQ_INTEROP_047

TEST_ScriptHandlersNoBackendTest_DeleteReturns501WhenNoBackend

DeleteReturns501WhenNoBackend

verified

REQ_INTEROP_043

TEST_ScriptHandlersNoBackendTest_GetExecutionReturns501WhenNoBackend

GetExecutionReturns501WhenNoBackend

verified

REQ_INTEROP_046

TEST_ScriptHandlersNoBackendTest_GetReturns501WhenNoBackend

GetReturns501WhenNoBackend

verified

REQ_INTEROP_042

TEST_ScriptHandlersNoBackendTest_ListReturns501WhenNoBackend

ListReturns501WhenNoBackend

verified

REQ_INTEROP_041

TEST_ScriptHandlersNoBackendTest_StartExecutionReturns501WhenNoBackend

StartExecutionReturns501WhenNoBackend

verified

REQ_INTEROP_044

TEST_ScriptHandlersNoBackendTest_UploadReturns501WhenNoBackend

UploadReturns501WhenNoBackend

verified

REQ_INTEROP_040

TEST_ScriptManagerTest_ControlExecution

ControlExecution

verified

REQ_INTEROP_047

TEST_ScriptManagerTest_DeleteManifestScript

DeleteManifestScript

verified

REQ_INTEROP_043

TEST_ScriptManagerTest_DeleteScript

DeleteScript

verified

REQ_INTEROP_043

TEST_ScriptManagerTest_GetExecution

GetExecution

verified

REQ_INTEROP_046

TEST_ScriptManagerTest_GetScript

GetScript

verified

REQ_INTEROP_042

TEST_ScriptManagerTest_GetScriptNotFound

GetScriptNotFound

verified

REQ_INTEROP_042

TEST_ScriptManagerTest_ListScripts

ListScripts

verified

REQ_INTEROP_041

TEST_ScriptManagerTest_StartExecution

StartExecution

verified

REQ_INTEROP_044

TEST_ScriptManagerTest_UploadScript

UploadScript

verified

REQ_INTEROP_040

TEST_SnapshotCaptureTest_BackgroundCaptureInitializesSubscriptions

BackgroundCaptureInitializesSubscriptions

verified

REQ_INTEROP_088

TEST_SnapshotCaptureTest_ConfigAccessorReturnsCorrectValues

ConfigAccessorReturnsCorrectValues

verified

REQ_INTEROP_088

TEST_SnapshotCaptureTest_ConstructorRequiresValidNode

ConstructorRequiresValidNode

verified

REQ_INTEROP_088

TEST_SnapshotCaptureTest_ConstructorRequiresValidStorage

ConstructorRequiresValidStorage

verified

REQ_INTEROP_088

TEST_SnapshotCaptureTest_ConstructorSucceedsWithValidParams

ConstructorSucceedsWithValidParams

verified

REQ_INTEROP_088

TEST_SnapshotCaptureTest_DisabledCaptureSkipsProcessing

DisabledCaptureSkipsProcessing

verified

REQ_INTEROP_088

TEST_SnapshotCaptureTest_EmptyConfigurationHandledGracefully

EmptyConfigurationHandledGracefully

verified

REQ_INTEROP_088

TEST_SnapshotCaptureTest_InvalidRegexPatternIsSkipped

InvalidRegexPatternIsSkipped

verified

REQ_INTEROP_088

TEST_SnapshotCaptureTest_IsEnabledReturnsConfigState

IsEnabledReturnsConfigState

verified

REQ_INTEROP_088

TEST_SnapshotCaptureTest_MultipleValidPatternsCompiled

MultipleValidPatternsCompiled

verified

REQ_INTEROP_088

TEST_SnapshotCaptureTest_OnDemandCaptureHandlesNonExistentTopic

OnDemandCaptureHandlesNonExistentTopic

verified

REQ_INTEROP_088

TEST_SqliteFaultStorageTest_ClearFaultDeletesAssociatedSnapshots

ClearFaultDeletesAssociatedSnapshots

verified

REQ_INTEROP_088

TEST_SqliteFaultStorageTest_FilterSnapshotsByTopic

FilterSnapshotsByTopic

verified

REQ_INTEROP_088

TEST_SqliteFaultStorageTest_GetAllRosbagFilesReturnsSortedByCreatedAt

GetAllRosbagFilesReturnsSortedByCreatedAt

verified

REQ_INTEROP_073

TEST_SqliteFaultStorageTest_ListRosbagsForEntityFiltersCorrectly

ListRosbagsForEntityFiltersCorrectly

verified

REQ_INTEROP_071

TEST_SqliteFaultStorageTest_MultipleSnapshotsForSameFault

MultipleSnapshotsForSameFault

verified

REQ_INTEROP_088

TEST_SqliteFaultStorageTest_NoSnapshotsForUnknownFault

NoSnapshotsForUnknownFault

verified

REQ_INTEROP_088

TEST_SqliteFaultStorageTest_StoreAndRetrieveSnapshot

StoreAndRetrieveSnapshot

verified

REQ_INTEROP_088

TEST_SseTransportProviderTest_ProtocolReturnsSse

ProtocolReturnsSse

verified

REQ_INTEROP_090

TEST_SseTransportProviderTest_StartReturnsEventsUrl

StartReturnsEventsUrl

verified

REQ_INTEROP_090

TEST_SseTransportProviderTest_StopRemovesStream

StopRemovesStream

verified

REQ_INTEROP_090

TEST_SyntheticProcTest_EmptyStatFile

EmptyStatFile

verified

REQ_INTEROP_003

TEST_SyntheticProcTest_FindPidForNodeInSyntheticProc

FindPidForNodeInSyntheticProc

verified

REQ_INTEROP_003

TEST_SyntheticProcTest_MalformedStatMissingComm

MalformedStatMissingComm

verified

REQ_INTEROP_003

TEST_SyntheticProcTest_ReadSyntheticProc

ReadSyntheticProc

verified

REQ_INTEROP_003

TEST_SyntheticProcTest_ReadSystemUptimeSynthetic

ReadSystemUptimeSynthetic

verified

REQ_INTEROP_003

TEST_SyntheticProcTest_TruncatedStatAfterComm

TruncatedStatAfterComm

verified

REQ_INTEROP_003

TEST_SystemdUtils_ComponentEndpointEmptyUnitsArray

ComponentEndpointEmptyUnitsArray

verified

REQ_INTEROP_003

TEST_SystemdUtils_EscapeAtSignInTemplateUnit

EscapeAtSignInTemplateUnit

verified

REQ_INTEROP_003

TEST_SystemdUtils_EscapeDotInServiceExtension

EscapeDotInServiceExtension

verified

REQ_INTEROP_003

TEST_SystemdUtils_EscapeEmptyString

EscapeEmptyString

verified

REQ_INTEROP_003

TEST_SystemdUtils_EscapeHyphenInUnitName

EscapeHyphenInUnitName

verified

REQ_INTEROP_003

TEST_SystemdUtils_EscapeSimpleServiceName

EscapeSimpleServiceName

verified

REQ_INTEROP_003

TEST_SystemdUtils_EscapeSlashInPath

EscapeSlashInPath

verified

REQ_INTEROP_003

TEST_TestAuthenticationIntegration_test_03_authenticate_valid_credentials

test_03_authenticate_valid_credentials

verified

REQ_INTEROP_086

TEST_TestAuthenticationIntegration_test_06_authenticate_form_urlencoded

test_06_authenticate_form_urlencoded

verified

REQ_INTEROP_086

TEST_TestAuthenticationIntegration_test_07_refresh_token

test_07_refresh_token

verified

REQ_INTEROP_087

TEST_TestBulkDataApi_test_bulk_data_download_not_found

test_bulk_data_download_not_found

verified

REQ_INTEROP_073

TEST_TestBulkDataApi_test_bulk_data_list_categories_all_entity_types

test_bulk_data_list_categories_all_entity_types

verified

REQ_INTEROP_071

TEST_TestBulkDataApi_test_bulk_data_list_categories_entity_not_found

test_bulk_data_list_categories_entity_not_found

verified

REQ_INTEROP_071

TEST_TestBulkDataApi_test_bulk_data_list_categories_success

test_bulk_data_list_categories_success

verified

REQ_INTEROP_071

TEST_TestBulkDataApi_test_bulk_data_list_descriptors_empty_result

test_bulk_data_list_descriptors_empty_result

verified

REQ_INTEROP_072

TEST_TestBulkDataApi_test_bulk_data_list_descriptors_structure

test_bulk_data_list_descriptors_structure

verified

REQ_INTEROP_072

TEST_TestBulkDataApi_test_bulk_data_nested_entity_path

test_bulk_data_nested_entity_path

verified

REQ_INTEROP_071

TEST_TestBulkDataApi_test_bulk_data_unknown_category_returns_404

test_bulk_data_unknown_category_returns_404

verified

REQ_INTEROP_072

TEST_TestConfigurationApi_test_01_list_configurations

test_01_list_configurations

verified

REQ_INTEROP_048

TEST_TestConfigurationApi_test_02_get_configuration

test_02_get_configuration

verified

REQ_INTEROP_049

TEST_TestConfigurationApi_test_03_set_configuration

test_03_set_configuration

verified

REQ_INTEROP_050

TEST_TestConfigurationApi_test_04_delete_configuration_resets_to_default

test_04_delete_configuration_resets_to_default

verified

REQ_INTEROP_052

TEST_TestConfigurationApi_test_05_configurations_nonexistent_app

test_05_configurations_nonexistent_app

verified

REQ_INTEROP_048

TEST_TestConfigurationApi_test_06_configuration_nonexistent_parameter

test_06_configuration_nonexistent_parameter

verified

REQ_INTEROP_049

TEST_TestConfigurationApi_test_07_set_configuration_missing_value

test_07_set_configuration_missing_value

verified

REQ_INTEROP_050

TEST_TestConfigurationApi_test_08_root_endpoint_includes_configurations

test_08_root_endpoint_includes_configurations

verified

REQ_INTEROP_048

TEST_TestContainerAppEndpoint_test_all_apps_same_container

test_all_apps_same_container

verified

REQ_INTEROP_003

TEST_TestContainerAppEndpoint_test_container_id_is_64_char_hex

test_container_id_is_64_char_hex

verified

REQ_INTEROP_003

TEST_TestContainerAppEndpoint_test_cpu_quota_detected

test_cpu_quota_detected

verified

REQ_INTEROP_003

TEST_TestContainerAppEndpoint_test_memory_limit_detected

test_memory_limit_detected

verified

REQ_INTEROP_003

TEST_TestContainerAppEndpoint_test_returns_container_info

test_returns_container_info

verified

REQ_INTEROP_003

TEST_TestContainerAppEndpoint_test_runtime_is_docker

test_runtime_is_docker

verified

REQ_INTEROP_003

TEST_TestContainerComponentEndpoint_test_containers_include_node_ids

test_containers_include_node_ids

verified

REQ_INTEROP_003

TEST_TestContainerComponentEndpoint_test_containers_include_runtime

test_containers_include_runtime

verified

REQ_INTEROP_003

TEST_TestContainerComponentEndpoint_test_returns_containers_aggregation

test_returns_containers_aggregation

verified

REQ_INTEROP_003

TEST_TestContainerErrorHandling_test_nonexistent_app_returns_404

test_nonexistent_app_returns_404

verified

REQ_INTEROP_003

TEST_TestContainerErrorHandling_test_nonexistent_component_returns_404

test_nonexistent_component_returns_404

verified

REQ_INTEROP_003

TEST_TestDataRead_test_app_data_body_door

test_app_data_body_door

verified

REQ_INTEROP_018

TEST_TestDataRead_test_app_data_chassis_brakes

test_app_data_chassis_brakes

verified

REQ_INTEROP_018

TEST_TestDataRead_test_app_data_powertrain_engine

test_app_data_powertrain_engine

verified

REQ_INTEROP_018

TEST_TestDataRead_test_app_data_structure

test_app_data_structure

verified

REQ_INTEROP_018

TEST_TestDataRead_test_app_no_topics

test_app_no_topics

verified

REQ_INTEROP_018

TEST_TestDataRead_test_app_nonexistent_error

test_app_nonexistent_error

verified

REQ_INTEROP_018

TEST_TestDataRead_test_component_nonexistent_topic_metadata_only

test_component_nonexistent_topic_metadata_only

verified

REQ_INTEROP_019

TEST_TestDataRead_test_component_topic_data_structure

test_component_topic_data_structure

verified

REQ_INTEROP_019

TEST_TestDataRead_test_component_topic_nonexistent_component_error

test_component_topic_nonexistent_component_error

verified

REQ_INTEROP_019

TEST_TestDataRead_test_component_topic_pressure

test_component_topic_pressure

verified

REQ_INTEROP_019

TEST_TestDataRead_test_component_topic_rpm

test_component_topic_rpm

verified

REQ_INTEROP_019

TEST_TestDataRead_test_component_topic_temperature

test_component_topic_temperature

verified

REQ_INTEROP_019

TEST_TestDataRead_test_component_topic_valid_names

test_component_topic_valid_names

verified

REQ_INTEROP_019

TEST_TestDataRead_test_component_topic_with_slashes

test_component_topic_with_slashes

verified

REQ_INTEROP_019

TEST_TestDataRead_test_list_area_data

test_list_area_data

verified

REQ_INTEROP_018

TEST_TestDataRead_test_list_area_data_empty

test_list_area_data_empty

verified

REQ_INTEROP_018

TEST_TestDataRead_test_list_area_data_nonexistent

test_list_area_data_nonexistent

verified

REQ_INTEROP_018

TEST_TestDataRead_test_list_area_data_root

test_list_area_data_root

verified

REQ_INTEROP_018

TEST_TestDataRead_test_list_function_data_invalid_id

test_list_function_data_invalid_id

verified

REQ_INTEROP_018

TEST_TestDataRead_test_list_function_data_nonexistent

test_list_function_data_nonexistent

verified

REQ_INTEROP_018

TEST_TestDataWrite_test_publish_brake_command

test_publish_brake_command

verified

REQ_INTEROP_020

TEST_TestDataWrite_test_publish_invalid_json_body

test_publish_invalid_json_body

verified

REQ_INTEROP_020

TEST_TestDataWrite_test_publish_nonexistent_component

test_publish_nonexistent_component

verified

REQ_INTEROP_020

TEST_TestDataWrite_test_publish_validation_invalid_type_format

test_publish_validation_invalid_type_format

verified

REQ_INTEROP_020

TEST_TestDataWrite_test_publish_validation_missing_data

test_publish_validation_missing_data

verified

REQ_INTEROP_020

TEST_TestDataWrite_test_publish_validation_missing_type

test_publish_validation_missing_type

verified

REQ_INTEROP_020

TEST_TestDocsEndpoint_test_apps_docs_returns_entity_collection_spec

test_apps_docs_returns_entity_collection_spec

verified

REQ_INTEROP_002

TEST_TestDocsEndpoint_test_areas_docs_returns_entity_collection_spec

test_areas_docs_returns_entity_collection_spec

verified

REQ_INTEROP_002

TEST_TestDocsEndpoint_test_components_docs_returns_entity_collection_spec

test_components_docs_returns_entity_collection_spec

verified

REQ_INTEROP_002

TEST_TestDocsEndpoint_test_data_collection_docs

test_data_collection_docs

verified

REQ_INTEROP_002

TEST_TestDocsEndpoint_test_logs_configuration_schema_field_names

test_logs_configuration_schema_field_names

verified

REQ_INTEROP_002

TEST_TestDocsEndpoint_test_nonexistent_entity_docs_returns_404

test_nonexistent_entity_docs_returns_404

verified

REQ_INTEROP_002

TEST_TestDocsEndpoint_test_nonexistent_path_docs_returns_404

test_nonexistent_path_docs_returns_404

verified

REQ_INTEROP_002

TEST_TestDocsEndpoint_test_operations_collection_docs

test_operations_collection_docs

verified

REQ_INTEROP_002

TEST_TestDocsEndpoint_test_root_docs_returns_openapi_spec

test_root_docs_returns_openapi_spec

verified

REQ_INTEROP_002

TEST_TestDocsEndpoint_test_spec_contains_components

test_spec_contains_components

verified

REQ_INTEROP_002

TEST_TestDocsEndpoint_test_spec_contains_server_info

test_spec_contains_server_info

verified

REQ_INTEROP_002

TEST_TestDocsEndpoint_test_specific_app_docs

test_specific_app_docs

verified

REQ_INTEROP_002

TEST_TestEntityListing_test_area_components_nonexistent_error

test_area_components_nonexistent_error

verified

REQ_INTEROP_006

TEST_TestEntityListing_test_area_components_success

test_area_components_success

verified

REQ_INTEROP_006

TEST_TestEntityListing_test_automotive_areas_discovery

test_automotive_areas_discovery

verified

REQ_INTEROP_003

TEST_TestEntityListing_test_invalid_app_id_special_chars

test_invalid_app_id_special_chars

verified

REQ_INTEROP_018

TEST_TestEntityListing_test_invalid_area_id_special_chars

test_invalid_area_id_special_chars

verified

REQ_INTEROP_006

TEST_TestEntityListing_test_invalid_ids_with_special_chars

test_invalid_ids_with_special_chars

verified

REQ_INTEROP_018

TEST_TestEntityListing_test_list_areas

test_list_areas

verified

REQ_INTEROP_003

TEST_TestEntityListing_test_list_components

test_list_components

verified

REQ_INTEROP_003

TEST_TestEntityListing_test_valid_ids_with_underscores

test_valid_ids_with_underscores

verified

REQ_INTEROP_018

TEST_TestEntityRouting_test_app_routes_work_with_app_id

test_app_routes_work_with_app_id

verified

REQ_INTEROP_003

TEST_TestEntityRouting_test_component_route_rejects_app_id_configurations

test_component_route_rejects_app_id_configurations

verified

REQ_INTEROP_003

TEST_TestEntityRouting_test_component_route_rejects_app_id_data

test_component_route_rejects_app_id_data

verified

REQ_INTEROP_003

TEST_TestEntityRouting_test_component_route_rejects_app_id_faults

test_component_route_rejects_app_id_faults

verified

REQ_INTEROP_003

TEST_TestEntityRouting_test_component_route_rejects_app_id_operations

test_component_route_rejects_app_id_operations

verified

REQ_INTEROP_003

TEST_TestFaultManagerIntegration_test_16_snapshot_capture_on_fault_confirmation

test_16_snapshot_capture_on_fault_confirmation

verified

REQ_INTEROP_088

TEST_TestFaultManagerIntegration_test_17_get_snapshots_nonexistent_fault

test_17_get_snapshots_nonexistent_fault

verified

REQ_INTEROP_088

TEST_TestFaultManagerIntegration_test_18_get_snapshots_empty_fault_code

test_18_get_snapshots_empty_fault_code

verified

REQ_INTEROP_088

TEST_TestFaultManagerIntegration_test_19_snapshot_with_topic_filter

test_19_snapshot_with_topic_filter

verified

REQ_INTEROP_088

TEST_TestFaultManagerIntegration_test_20_snapshot_config_loads_patterns

test_20_snapshot_config_loads_patterns

verified

REQ_INTEROP_088

TEST_TestFaultsApi_test_faults_nonexistent_component

test_faults_nonexistent_component

verified

REQ_INTEROP_012

TEST_TestFaultsApi_test_get_nonexistent_fault

test_get_nonexistent_fault

verified

REQ_INTEROP_013

TEST_TestFaultsApi_test_list_faults_response_structure

test_list_faults_response_structure

verified

REQ_INTEROP_012

TEST_TestFaultsApi_test_root_endpoint_includes_faults

test_root_endpoint_includes_faults

verified

REQ_INTEROP_012

TEST_TestFlatEntityTree_test_app_accessible_without_areas

test_app_accessible_without_areas

verified

REQ_INTEROP_003

TEST_TestFlatEntityTree_test_apps_count

test_apps_count

verified

REQ_INTEROP_003

TEST_TestFlatEntityTree_test_areas_empty

test_areas_empty

verified

REQ_INTEROP_003

TEST_TestFlatEntityTree_test_components_count

test_components_count

verified

REQ_INTEROP_003

TEST_TestFlatEntityTree_test_functions_count

test_functions_count

verified

REQ_INTEROP_003

TEST_TestFlatEntityTree_test_subcomponents_count

test_subcomponents_count

verified

REQ_INTEROP_003

TEST_TestGatewayNode_test_app_is_located_on_endpoint

test_app_is_located_on_endpoint

verified

REQ_INTEROP_105

TEST_TestGatewayNode_test_area_contains_nonexistent

test_area_contains_nonexistent

verified

REQ_INTEROP_006

TEST_TestGatewayNode_test_component_hosts_nonexistent

test_component_hosts_nonexistent

verified

REQ_INTEROP_007

TEST_TestGatewayNode_test_execution_update_execution_not_found

test_execution_update_execution_not_found

verified

REQ_INTEROP_038

TEST_TestGatewayNode_test_execution_update_invalid_component_id

test_execution_update_invalid_component_id

verified

REQ_INTEROP_038

TEST_TestGatewayNode_test_execution_update_missing_capability

test_execution_update_missing_capability

verified

REQ_INTEROP_038

TEST_TestGatewayNode_test_execution_update_unsupported_capability

test_execution_update_unsupported_capability

verified

REQ_INTEROP_038

TEST_TestGatewayNode_test_list_areas_endpoint

test_list_areas_endpoint

verified

REQ_INTEROP_003

TEST_TestGatewayNode_test_list_components_endpoint

test_list_components_endpoint

verified

REQ_INTEROP_003

TEST_TestGatewayNode_test_root_endpoint

test_root_endpoint

verified

REQ_INTEROP_010

TEST_TestGatewayNode_test_version_info_endpoint

test_version_info_endpoint

verified

REQ_INTEROP_001

TEST_TestHateoas_test_app_detail_has_capability_uris

test_app_detail_has_capability_uris

verified

REQ_INTEROP_003

TEST_TestHateoas_test_apps_list_has_href

test_apps_list_has_href

verified

REQ_INTEROP_003

TEST_TestHateoas_test_area_detail_has_capability_uris

test_area_detail_has_capability_uris

verified

REQ_INTEROP_003

TEST_TestHateoas_test_areas_list_has_href

test_areas_list_has_href

verified

REQ_INTEROP_003

TEST_TestHateoas_test_component_detail_has_capability_uris

test_component_detail_has_capability_uris

verified

REQ_INTEROP_003

TEST_TestHateoas_test_components_list_has_href

test_components_list_has_href

verified

REQ_INTEROP_003

TEST_TestHateoas_test_contains_list_has_href

test_contains_list_has_href

verified

REQ_INTEROP_006

TEST_TestHateoas_test_depends_on_apps_has_href

test_depends_on_apps_has_href

verified

REQ_INTEROP_009

TEST_TestHateoas_test_depends_on_apps_nonexistent

test_depends_on_apps_nonexistent

verified

REQ_INTEROP_009

TEST_TestHateoas_test_depends_on_components_has_href

test_depends_on_components_has_href

verified

REQ_INTEROP_008

TEST_TestHateoas_test_function_detail_has_capability_uris

test_function_detail_has_capability_uris

verified

REQ_INTEROP_003

TEST_TestHateoas_test_functions_list_has_href

test_functions_list_has_href

verified

REQ_INTEROP_003

TEST_TestHateoas_test_hosts_list_has_href

test_hosts_list_has_href

verified

REQ_INTEROP_007

TEST_TestHateoas_test_is_located_on_apps_has_href

test_is_located_on_apps_has_href

verified

REQ_INTEROP_105

TEST_TestHateoas_test_is_located_on_apps_nonexistent

test_is_located_on_apps_nonexistent

verified

REQ_INTEROP_105

TEST_TestHateoas_test_subareas_list_has_href

test_subareas_list_has_href

verified

REQ_INTEROP_004

TEST_TestHateoas_test_subcomponents_list_has_href

test_subcomponents_list_has_href

verified

REQ_INTEROP_005

TEST_TestHateoas_test_x_medkit_extension_in_list_responses

test_x_medkit_extension_in_list_responses

verified

REQ_INTEROP_003

TEST_TestHealth_test_docs_endpoint

test_docs_endpoint

verified

REQ_INTEROP_002

TEST_TestHealth_test_docs_spec_completeness

test_docs_spec_completeness

verified

REQ_INTEROP_002

TEST_TestHealth_test_health_endpoint_returns_200

test_health_endpoint_returns_200

verified

REQ_INTEROP_010

TEST_TestHealth_test_root_endpoint_returns_api_info

test_root_endpoint_returns_api_info

verified

REQ_INTEROP_010

TEST_TestHealth_test_root_includes_apps_endpoints

test_root_includes_apps_endpoints

verified

REQ_INTEROP_010

TEST_TestHealth_test_version_endpoint

test_version_endpoint

verified

REQ_INTEROP_001

TEST_TestHybridSuppression_test_exact_app_count

test_exact_app_count

verified

REQ_INTEROP_003

TEST_TestHybridSuppression_test_exact_area_count

test_exact_area_count

verified

REQ_INTEROP_003

TEST_TestHybridSuppression_test_exact_component_count

test_exact_component_count

verified

REQ_INTEROP_003

TEST_TestHybridSuppression_test_exact_function_count

test_exact_function_count

verified

REQ_INTEROP_003

TEST_TestHybridSuppression_test_health_shows_hybrid_mode

test_health_shows_hybrid_mode

verified

REQ_INTEROP_003

TEST_TestHybridSuppression_test_manifest_apps_are_online

test_manifest_apps_are_online

verified

REQ_INTEROP_003

TEST_TestHybridSuppression_test_no_root_or_synthetic_areas

test_no_root_or_synthetic_areas

verified

REQ_INTEROP_003

TEST_TestHybridSuppression_test_no_underscored_app_duplicates

test_no_underscored_app_duplicates

verified

REQ_INTEROP_003

TEST_TestHybridSuppression_test_no_underscored_component_duplicates

test_no_underscored_component_duplicates

verified

REQ_INTEROP_003

TEST_TestLocking_test_acquire_lock_on_app

test_acquire_lock_on_app

verified

REQ_INTEROP_100

TEST_TestLocking_test_acquire_lock_with_scopes

test_acquire_lock_with_scopes

verified

REQ_INTEROP_100

TEST_TestLocking_test_acquire_without_client_id_returns_400

test_acquire_without_client_id_returns_400

verified

REQ_INTEROP_100

TEST_TestLocking_test_acquire_without_expiration_returns_400

test_acquire_without_expiration_returns_400

verified

REQ_INTEROP_100

TEST_TestLocking_test_already_locked_returns_409

test_already_locked_returns_409

verified

REQ_INTEROP_100

TEST_TestLocking_test_break_lock

test_break_lock

verified

REQ_INTEROP_100

TEST_TestLocking_test_extend_lock

test_extend_lock

verified

REQ_INTEROP_103

TEST_TestLocking_test_get_lock_details

test_get_lock_details

verified

REQ_INTEROP_102

TEST_TestLocking_test_list_locks

test_list_locks

verified

REQ_INTEROP_101

TEST_TestLocking_test_list_locks_empty

test_list_locks_empty

verified

REQ_INTEROP_101

TEST_TestLocking_test_lock_blocks_other_client

test_lock_blocks_other_client

verified

REQ_INTEROP_100

TEST_TestLocking_test_lock_expires_automatically

test_lock_expires_automatically

verified

REQ_INTEROP_100

TEST_TestLocking_test_nonexistent_entity_returns_404

test_nonexistent_entity_returns_404

verified

REQ_INTEROP_100

TEST_TestLocking_test_owned_field_per_client

test_owned_field_per_client

verified

REQ_INTEROP_101

TEST_TestLocking_test_release_lock

test_release_lock

verified

REQ_INTEROP_104

TEST_TestLocking_test_release_not_owner_returns_403

test_release_not_owner_returns_403

verified

REQ_INTEROP_104

TEST_TestLocking_test_scoped_lock_allows_other_collections

test_scoped_lock_allows_other_collections

verified

REQ_INTEROP_100

TEST_TestLockingFaults_test_global_clear_skips_locked_entity_faults

test_global_clear_skips_locked_entity_faults

verified

REQ_INTEROP_100

TEST_TestLockingPropagation_test_component_lock_allows_owner_on_child

test_component_lock_allows_owner_on_child

verified

REQ_INTEROP_100

TEST_TestLockingPropagation_test_component_lock_blocks_child_app

test_component_lock_blocks_child_app

verified

REQ_INTEROP_100

TEST_TestMultiCollectionSubscriptions_test_configurations_subscription_create

test_configurations_subscription_create

verified

REQ_INTEROP_089

TEST_TestMultiCollectionSubscriptions_test_data_subscription_create

test_data_subscription_create

verified

REQ_INTEROP_089

TEST_TestMultiCollectionSubscriptions_test_delete_subscription

test_delete_subscription

verified

REQ_INTEROP_028

TEST_TestMultiCollectionSubscriptions_test_faults_subscription_create

test_faults_subscription_create

verified

REQ_INTEROP_089

TEST_TestMultiCollectionSubscriptions_test_get_subscription

test_get_subscription

verified

REQ_INTEROP_026

TEST_TestMultiCollectionSubscriptions_test_list_subscriptions

test_list_subscriptions

verified

REQ_INTEROP_025

TEST_TestMultiCollectionSubscriptions_test_logs_subscription_create

test_logs_subscription_create

verified

REQ_INTEROP_089

TEST_TestMultiCollectionSubscriptions_test_logs_subscription_sse_stream

test_logs_subscription_sse_stream

verified

REQ_INTEROP_089; REQ_INTEROP_090

TEST_TestMultiCollectionSubscriptions_test_update_subscription_interval

test_update_subscription_interval

verified

REQ_INTEROP_027

TEST_TestOperationsApi_test_cancel_nonexistent_execution

test_cancel_nonexistent_execution

verified

REQ_INTEROP_039

TEST_TestOperationsApi_test_create_execution_for_service

test_create_execution_for_service

verified

REQ_INTEROP_035

TEST_TestOperationsApi_test_get_operation_details_for_apps

test_get_operation_details_for_apps

verified

REQ_INTEROP_034

TEST_TestOperationsApi_test_get_operation_details_for_service

test_get_operation_details_for_service

verified

REQ_INTEROP_034

TEST_TestOperationsApi_test_get_operation_not_found

test_get_operation_not_found

verified

REQ_INTEROP_034

TEST_TestOperationsApi_test_list_executions_returns_items_array

test_list_executions_returns_items_array

verified

REQ_INTEROP_036

TEST_TestOperationsApi_test_list_operations

test_list_operations

verified

REQ_INTEROP_033

TEST_TestOperationsApi_test_operation_call_calibrate_service

test_operation_call_calibrate_service

verified

REQ_INTEROP_035

TEST_TestOperationsApi_test_operation_call_invalid_entity_id

test_operation_call_invalid_entity_id

verified

REQ_INTEROP_035

TEST_TestOperationsApi_test_operation_call_invalid_operation_name

test_operation_call_invalid_operation_name

verified

REQ_INTEROP_035

TEST_TestOperationsApi_test_operation_call_nonexistent_entity

test_operation_call_nonexistent_entity

verified

REQ_INTEROP_035

TEST_TestOperationsApi_test_operation_call_nonexistent_operation

test_operation_call_nonexistent_operation

verified

REQ_INTEROP_035

TEST_TestOperationsApi_test_operation_call_with_invalid_json

test_operation_call_with_invalid_json

verified

REQ_INTEROP_035

TEST_TestOperationsApi_test_operations_listed_in_app_discovery

test_operations_listed_in_app_discovery

verified

REQ_INTEROP_033

TEST_TestOperationsApi_test_root_endpoint_includes_operations

test_root_endpoint_includes_operations

verified

REQ_INTEROP_033

TEST_TestScenarioActionLifecycle_test_01_create_action_execution_and_poll_to_completion

test_01_create_action_execution_and_poll_to_completion

verified

REQ_INTEROP_022

TEST_TestScenarioActionLifecycle_test_02_cancel_action_execution

test_02_cancel_action_execution

verified

REQ_INTEROP_022

TEST_TestScenarioActionLifecycle_test_03_service_execution_returns_immediately

test_03_service_execution_returns_immediately

verified

REQ_INTEROP_035

TEST_TestScenarioActionLifecycle_test_04_execution_appears_in_list

test_04_execution_appears_in_list

verified

REQ_INTEROP_022

TEST_TestScenarioActionLifecycle_test_06_get_operation_details

test_06_get_operation_details

verified

REQ_INTEROP_034

TEST_TestScenarioActionLifecycle_test_07_get_execution_status

test_07_get_execution_status

verified

REQ_INTEROP_037

TEST_TestScenarioActionLifecycle_test_08_update_execution_not_implemented

test_08_update_execution_not_implemented

verified

REQ_INTEROP_038

TEST_TestScenarioBulkDataDownload_test_01_download_rosbag_success

test_01_download_rosbag_success

verified

REQ_INTEROP_073

TEST_TestScenarioBulkDataDownload_test_02_download_wrong_entity_returns_404

test_02_download_wrong_entity_returns_404

verified

REQ_INTEROP_073

TEST_TestScenarioBulkDataDownload_test_03_verify_complete_rosbag_content

test_03_verify_complete_rosbag_content

verified

REQ_INTEROP_073

TEST_TestScenarioBulkDataUpload_test_01_upload_small_file

test_01_upload_small_file

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_02_upload_returns_location_header

test_02_upload_returns_location_header

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_03_upload_with_description

test_03_upload_with_description

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_04_upload_with_metadata

test_04_upload_with_metadata

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_05_upload_missing_file_field

test_05_upload_missing_file_field

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_06_upload_unknown_category

test_06_upload_unknown_category

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_07_upload_rosbags_rejected

test_07_upload_rosbags_rejected

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_08_upload_nonexistent_entity

test_08_upload_nonexistent_entity

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_09_upload_to_areas_405

test_09_upload_to_areas_405

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_10_upload_to_functions_405

test_10_upload_to_functions_405

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_11_delete_uploaded_item

test_11_delete_uploaded_item

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_12_delete_nonexistent_item

test_12_delete_nonexistent_item

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_13_delete_rosbags_rejected

test_13_delete_rosbags_rejected

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_14_delete_to_areas_405

test_14_delete_to_areas_405

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_15_list_categories_includes_configured

test_15_list_categories_includes_configured

verified

REQ_INTEROP_071

TEST_TestScenarioBulkDataUpload_test_16_list_descriptors_after_upload

test_16_list_descriptors_after_upload

verified

REQ_INTEROP_072

TEST_TestScenarioBulkDataUpload_test_17_download_uploaded_file

test_17_download_uploaded_file

verified

REQ_INTEROP_073

TEST_TestScenarioBulkDataUpload_test_18_download_nonexistent_returns_404

test_18_download_nonexistent_returns_404

verified

REQ_INTEROP_073

TEST_TestScenarioBulkDataUpload_test_19_list_empty_after_delete

test_19_list_empty_after_delete

verified

REQ_INTEROP_074

TEST_TestScenarioBulkDataUpload_test_20_full_crud_cycle

test_20_full_crud_cycle

verified

REQ_INTEROP_071; REQ_INTEROP_074

TEST_TestScenarioConfigManagement_test_01_list_configurations

test_01_list_configurations

verified

REQ_INTEROP_048

TEST_TestScenarioConfigManagement_test_02_get_configuration_value

test_02_get_configuration_value

verified

REQ_INTEROP_049

TEST_TestScenarioConfigManagement_test_03_set_and_verify_configuration

test_03_set_and_verify_configuration

verified

REQ_INTEROP_050

TEST_TestScenarioConfigManagement_test_04_reset_all_configurations

test_04_reset_all_configurations

verified

REQ_INTEROP_051

TEST_TestScenarioConfigManagement_test_05_reset_single_configuration

test_05_reset_single_configuration

verified

REQ_INTEROP_052

TEST_TestScenarioDataPublishVerify_test_01_read_sensor_data

test_01_read_sensor_data

verified

REQ_INTEROP_018

TEST_TestScenarioDataPublishVerify_test_02_publish_command_to_actuator

test_02_publish_command_to_actuator

verified

REQ_INTEROP_020

TEST_TestScenarioDataPublishVerify_test_03_read_actuator_feedback

test_03_read_actuator_feedback

verified

REQ_INTEROP_018

TEST_TestScenarioDiscoveryHybrid_test_01_areas_from_manifest

test_01_areas_from_manifest

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryHybrid_test_02_area_with_description

test_02_area_with_description

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryHybrid_test_03_area_subareas_hierarchy

test_03_area_subareas_hierarchy

verified

REQ_INTEROP_004

TEST_TestScenarioDiscoveryHybrid_test_04_nested_subareas

test_04_nested_subareas

verified

REQ_INTEROP_004

TEST_TestScenarioDiscoveryHybrid_test_05_components_from_manifest

test_05_components_from_manifest

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryHybrid_test_06_component_type_preserved

test_06_component_type_preserved

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryHybrid_test_07_component_area_relationship

test_07_component_area_relationship

verified

REQ_INTEROP_006

TEST_TestScenarioDiscoveryHybrid_test_08_component_subcomponents

test_08_component_subcomponents

verified

REQ_INTEROP_005

TEST_TestScenarioDiscoveryHybrid_test_09_component_subcomponents_not_found

test_09_component_subcomponents_not_found

verified

REQ_INTEROP_005

TEST_TestScenarioDiscoveryHybrid_test_10_component_depends_on_returns_items

test_10_component_depends_on_returns_items

verified

REQ_INTEROP_008

TEST_TestScenarioDiscoveryHybrid_test_11_component_depends_on_empty

test_11_component_depends_on_empty

verified

REQ_INTEROP_008

TEST_TestScenarioDiscoveryHybrid_test_12_component_depends_on_not_found

test_12_component_depends_on_not_found

verified

REQ_INTEROP_008

TEST_TestScenarioDiscoveryHybrid_test_13_component_capabilities_includes_depends_on_link

test_13_component_capabilities_includes_depends_on_link

verified

REQ_INTEROP_008

TEST_TestScenarioDiscoveryHybrid_test_14_apps_from_manifest

test_14_apps_from_manifest

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryHybrid_test_15_app_online_with_runtime_node

test_15_app_online_with_runtime_node

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryHybrid_test_19_app_depends_on_relationship

test_19_app_depends_on_relationship

verified

REQ_INTEROP_009

TEST_TestScenarioDiscoveryHybrid_test_20_functions_from_manifest

test_20_functions_from_manifest

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryHybrid_test_21_function_hosts_relationship

test_21_function_hosts_relationship

verified

REQ_INTEROP_007

TEST_TestScenarioDiscoveryHybrid_test_24_function_with_tags

test_24_function_with_tags

verified

REQ_INTEROP_011

TEST_TestScenarioDiscoveryManifest_test_01_list_areas

test_01_list_areas

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryManifest_test_02_get_area_details

test_02_get_area_details

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryManifest_test_04_area_subareas

test_04_area_subareas

verified

REQ_INTEROP_004

TEST_TestScenarioDiscoveryManifest_test_05_area_components

test_05_area_components

verified

REQ_INTEROP_006

TEST_TestScenarioDiscoveryManifest_test_06_list_components

test_06_list_components

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryManifest_test_07_get_component_details

test_07_get_component_details

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryManifest_test_09_component_subcomponents

test_09_component_subcomponents

verified

REQ_INTEROP_005

TEST_TestScenarioDiscoveryManifest_test_10_component_subcomponents_not_found

test_10_component_subcomponents_not_found

verified

REQ_INTEROP_005

TEST_TestScenarioDiscoveryManifest_test_11_list_apps

test_11_list_apps

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryManifest_test_12_get_app_details

test_12_get_app_details

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryManifest_test_15_app_data_endpoint

test_15_app_data_endpoint

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryManifest_test_17_app_configurations_endpoint

test_17_app_configurations_endpoint

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryManifest_test_18_app_data_item_endpoint

test_18_app_data_item_endpoint

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryManifest_test_19_list_functions

test_19_list_functions

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryManifest_test_20_get_function_details

test_20_get_function_details

verified

REQ_INTEROP_003

TEST_TestScenarioDiscoveryManifest_test_22_function_hosts

test_22_function_hosts

verified

REQ_INTEROP_007

TEST_TestScenarioFaultInspection_test_01_fault_response_structure

test_01_fault_response_structure

verified

REQ_INTEROP_013

TEST_TestScenarioFaultInspection_test_02_fault_status_object_structure

test_02_fault_status_object_structure

verified

REQ_INTEROP_013

TEST_TestScenarioFaultInspection_test_03_fault_environment_data_structure

test_03_fault_environment_data_structure

verified

REQ_INTEROP_013

TEST_TestScenarioFaultInspection_test_04_fault_snapshot_freeze_frame

test_04_fault_snapshot_freeze_frame

verified

REQ_INTEROP_013

TEST_TestScenarioFaultInspection_test_05_fault_snapshot_rosbag_has_bulk_data_uri

test_05_fault_snapshot_rosbag_has_bulk_data_uri

verified

REQ_INTEROP_013

TEST_TestScenarioFaultInspection_test_06_fault_x_medkit_extensions

test_06_fault_x_medkit_extensions

verified

REQ_INTEROP_013

TEST_TestScenarioFaultLifecycle_test_01_wait_for_faults_to_appear

test_01_wait_for_faults_to_appear

verified

REQ_INTEROP_012

TEST_TestScenarioFaultLifecycle_test_02_delete_all_faults_for_component

test_02_delete_all_faults_for_component

verified

REQ_INTEROP_014

TEST_TestScenarioFaultLifecycle_test_03_delete_all_faults_for_app

test_03_delete_all_faults_for_app

verified

REQ_INTEROP_014

TEST_TestScenarioFaultLifecycle_test_04_delete_all_faults_nonexistent

test_04_delete_all_faults_nonexistent

verified

REQ_INTEROP_014

TEST_TestScenarioFaultLifecycle_test_05_delete_single_fault

test_05_delete_single_fault

verified

REQ_INTEROP_015

TEST_TestScenarioSubscriptions_test_01_create_subscription_returns_201_with_correct_schema

test_01_create_subscription_returns_201_with_correct_schema

verified

REQ_INTEROP_089

TEST_TestScenarioSubscriptions_test_02_list_subscriptions_returns_created_ones

test_02_list_subscriptions_returns_created_ones

verified

REQ_INTEROP_025

TEST_TestScenarioSubscriptions_test_03_get_single_subscription

test_03_get_single_subscription

verified

REQ_INTEROP_026

TEST_TestScenarioSubscriptions_test_04_update_subscription_interval

test_04_update_subscription_interval

verified

REQ_INTEROP_027

TEST_TestScenarioSubscriptions_test_05_update_subscription_duration

test_05_update_subscription_duration

verified

REQ_INTEROP_027

TEST_TestScenarioSubscriptions_test_06_delete_subscription_returns_204

test_06_delete_subscription_returns_204

verified

REQ_INTEROP_028

TEST_TestScenarioSubscriptions_test_07_empty_list_after_delete

test_07_empty_list_after_delete

verified

REQ_INTEROP_025

TEST_TestScenarioSubscriptions_test_10_sse_stream_returns_correct_headers

test_10_sse_stream_returns_correct_headers

verified

REQ_INTEROP_090

TEST_TestScenarioSubscriptions_test_11_sse_stream_delivers_periodic_data

test_11_sse_stream_delivers_periodic_data

verified

REQ_INTEROP_090

TEST_TestScenarioSubscriptions_test_12_sse_stream_closes_on_subscription_delete

test_12_sse_stream_closes_on_subscription_delete

verified

REQ_INTEROP_028; REQ_INTEROP_090

TEST_TestScenarioSubscriptions_test_20_create_with_invalid_interval_returns_400

test_20_create_with_invalid_interval_returns_400

verified

REQ_INTEROP_089

TEST_TestScenarioSubscriptions_test_21_create_with_zero_duration_returns_400

test_21_create_with_zero_duration_returns_400

verified

REQ_INTEROP_089

TEST_TestScenarioSubscriptions_test_22_create_with_unsupported_protocol_returns_400

test_22_create_with_unsupported_protocol_returns_400

verified

REQ_INTEROP_089

TEST_TestScenarioSubscriptions_test_23_create_with_invalid_resource_uri_returns_400

test_23_create_with_invalid_resource_uri_returns_400

verified

REQ_INTEROP_089

TEST_TestScenarioSubscriptions_test_24_get_nonexistent_subscription_returns_404

test_24_get_nonexistent_subscription_returns_404

verified

REQ_INTEROP_026

TEST_TestScenarioSubscriptions_test_25_delete_nonexistent_subscription_returns_404

test_25_delete_nonexistent_subscription_returns_404

verified

REQ_INTEROP_028

TEST_TestScenarioSubscriptions_test_26_update_nonexistent_subscription_returns_404

test_26_update_nonexistent_subscription_returns_404

verified

REQ_INTEROP_027

TEST_TestScenarioSubscriptions_test_27_create_for_nonexistent_entity_returns_404

test_27_create_for_nonexistent_entity_returns_404

verified

REQ_INTEROP_089

TEST_TestScenarioSubscriptions_test_28_sse_stream_for_nonexistent_subscription_returns_404

test_28_sse_stream_for_nonexistent_subscription_returns_404

verified

REQ_INTEROP_090

TEST_TestScenarioSubscriptions_test_30_cyclic_subscriptions_work_on_components

test_30_cyclic_subscriptions_work_on_components

verified

REQ_INTEROP_089; REQ_INTEROP_025

TEST_TestScriptsCRUD_test_01_list_scripts_empty

test_01_list_scripts_empty

verified

REQ_INTEROP_041

TEST_TestScriptsCRUD_test_02_upload_and_list

test_02_upload_and_list

verified

REQ_INTEROP_040

TEST_TestScriptsCRUD_test_03_get_script_metadata

test_03_get_script_metadata

verified

REQ_INTEROP_042

TEST_TestScriptsCRUD_test_04_get_nonexistent_returns_404

test_04_get_nonexistent_returns_404

verified

REQ_INTEROP_042

TEST_TestScriptsCRUD_test_05_delete_script

test_05_delete_script

verified

REQ_INTEROP_043

TEST_TestScriptsCRUD_test_06_delete_nonexistent_returns_404

test_06_delete_nonexistent_returns_404

verified

REQ_INTEROP_043

TEST_TestScriptsCRUD_test_07_upload_missing_file_field

test_07_upload_missing_file_field

verified

REQ_INTEROP_040

TEST_TestScriptsCRUD_test_09_upload_with_metadata

test_09_upload_with_metadata

verified

REQ_INTEROP_040

TEST_TestScriptsExecution_test_01_execute_python_script

test_01_execute_python_script

verified

REQ_INTEROP_044

TEST_TestScriptsExecution_test_02_execute_shell_script

test_02_execute_shell_script

verified

REQ_INTEROP_044

TEST_TestScriptsExecution_test_03_terminate_running_execution

test_03_terminate_running_execution

verified

REQ_INTEROP_047

TEST_TestScriptsExecution_test_06_get_nonexistent_execution

test_06_get_nonexistent_execution

verified

REQ_INTEROP_046

TEST_TestScriptsExecution_test_07_start_execution_missing_type

test_07_start_execution_missing_type

verified

REQ_INTEROP_044

TEST_TestScriptsExecution_test_08_start_execution_invalid_json

test_08_start_execution_invalid_json

verified

REQ_INTEROP_044

TEST_TestScriptsExecution_test_09_execution_has_timestamps

test_09_execution_has_timestamps

verified

REQ_INTEROP_046

TEST_TestScriptsExecution_test_10_bash_script_execution

test_10_bash_script_execution

verified

REQ_INTEROP_044

TEST_TestScriptsExecution_test_11_output_content_verified

test_11_output_content_verified

verified

REQ_INTEROP_046

TEST_TestScriptsExecution_test_12_parameters_via_stdin

test_12_parameters_via_stdin

verified

REQ_INTEROP_044

TEST_TestScriptsExecution_test_13_failed_script_execution

test_13_failed_script_execution

verified

REQ_INTEROP_046

TEST_TestScriptsExecution_test_14_full_lifecycle

test_14_full_lifecycle

verified

REQ_INTEROP_040; REQ_INTEROP_046; REQ_INTEROP_044; REQ_INTEROP_042; REQ_INTEROP_041; REQ_INTEROP_043

TEST_TestScriptsNotConfigured_test_01_list_scripts_returns_501

test_01_list_scripts_returns_501

verified

REQ_INTEROP_041

TEST_TestScriptsNotConfigured_test_02_upload_script_returns_501

test_02_upload_script_returns_501

verified

REQ_INTEROP_040

TEST_TestScriptsNotConfigured_test_03_get_script_returns_501

test_03_get_script_returns_501

verified

REQ_INTEROP_042

TEST_TestScriptsNotConfigured_test_04_delete_script_returns_501

test_04_delete_script_returns_501

verified

REQ_INTEROP_043

TEST_TestScriptsNotConfigured_test_05_start_execution_returns_501

test_05_start_execution_returns_501

verified

REQ_INTEROP_044

TEST_TestScriptsNotConfigured_test_06_get_execution_returns_501

test_06_get_execution_returns_501

verified

REQ_INTEROP_046

TEST_TestScriptsNotConfigured_test_07_control_execution_returns_501

test_07_control_execution_returns_501

verified

REQ_INTEROP_047

TEST_TestSnapshotsApi_test_root_endpoint_excludes_legacy_snapshots

test_root_endpoint_excludes_legacy_snapshots

verified

REQ_INTEROP_088

TEST_TestSystemdAppEndpoint_test_returns_restart_count

test_returns_restart_count

verified

REQ_INTEROP_003

TEST_TestSystemdAppEndpoint_test_returns_unit_info

test_returns_unit_info

verified

REQ_INTEROP_003

TEST_TestSystemdAppEndpoint_test_returns_unit_type

test_returns_unit_type

verified

REQ_INTEROP_003

TEST_TestSystemdAppEndpoint_test_returns_watchdog_usec

test_returns_watchdog_usec

verified

REQ_INTEROP_003

TEST_TestSystemdComponentEndpoint_test_returns_units_aggregation

test_returns_units_aggregation

verified

REQ_INTEROP_003

TEST_TestSystemdComponentEndpoint_test_units_have_active_state

test_units_have_active_state

verified

REQ_INTEROP_003

TEST_TestSystemdComponentEndpoint_test_units_include_node_ids

test_units_include_node_ids

verified

REQ_INTEROP_003

TEST_TestSystemdErrorHandling_test_nonexistent_app_returns_404

test_nonexistent_app_returns_404

verified

REQ_INTEROP_003

TEST_TestSystemdErrorHandling_test_nonexistent_component_returns_404

test_nonexistent_component_returns_404

verified

REQ_INTEROP_003

TEST_TestTriggersData_test_01_create_trigger_returns_201_with_correct_schema

test_01_create_trigger_returns_201_with_correct_schema

verified

REQ_INTEROP_029

TEST_TestTriggersData_test_02_list_triggers_returns_created_trigger

test_02_list_triggers_returns_created_trigger

verified

REQ_INTEROP_030

TEST_TestTriggersData_test_03_get_single_trigger

test_03_get_single_trigger

verified

REQ_INTEROP_096

TEST_TestTriggersData_test_04_update_trigger_lifetime

test_04_update_trigger_lifetime

verified

REQ_INTEROP_031

TEST_TestTriggersData_test_05_delete_trigger_returns_204

test_05_delete_trigger_returns_204

verified

REQ_INTEROP_032

TEST_TestTriggersData_test_10_sse_stream_returns_correct_headers

test_10_sse_stream_returns_correct_headers

verified

REQ_INTEROP_097

TEST_TestTriggersData_test_11_sse_stream_delivers_data_events

test_11_sse_stream_delivers_data_events

verified

REQ_INTEROP_097

TEST_TestTriggersData_test_12_sse_stream_closes_on_trigger_delete

test_12_sse_stream_closes_on_trigger_delete

verified

REQ_INTEROP_097; REQ_INTEROP_032

TEST_TestTriggersData_test_27_events_for_nonexistent_trigger_returns_404

test_27_events_for_nonexistent_trigger_returns_404

verified

REQ_INTEROP_097

TEST_TestTriggersFaults_test_01_create_fault_trigger_returns_201

test_01_create_fault_trigger_returns_201

verified

REQ_INTEROP_029

TEST_TestTriggersFaults_test_02_list_fault_triggers

test_02_list_fault_triggers

verified

REQ_INTEROP_030

TEST_TestTriggersFaults_test_03_get_fault_trigger

test_03_get_fault_trigger

verified

REQ_INTEROP_096

TEST_TestTriggersFaults_test_04_update_fault_trigger_lifetime

test_04_update_fault_trigger_lifetime

verified

REQ_INTEROP_031

TEST_TestTriggersFaults_test_05_delete_fault_trigger

test_05_delete_fault_trigger

verified

REQ_INTEROP_032

TEST_TestTriggersFaults_test_10_sse_endpoint_connects_and_streams

test_10_sse_endpoint_connects_and_streams

verified

REQ_INTEROP_097

TEST_TestTriggersFaults_test_11_sse_fault_event_has_correct_headers

test_11_sse_fault_event_has_correct_headers

verified

REQ_INTEROP_097

TEST_TestTriggersHierarchy_test_01_component_trigger_created_successfully

test_01_component_trigger_created_successfully

verified

REQ_INTEROP_029

TEST_TestTriggersHierarchy_test_05_list_triggers_on_area

test_05_list_triggers_on_area

verified

REQ_INTEROP_030

TEST_TestTriggersHierarchy_test_06_delete_trigger_on_function

test_06_delete_trigger_on_function

verified

REQ_INTEROP_032

TEST_TestTriggersLogs_test_01_create_logs_trigger

test_01_create_logs_trigger

verified

REQ_INTEROP_029

TEST_TestTriggersLogs_test_02_list_logs_triggers

test_02_list_logs_triggers

verified

REQ_INTEROP_030

TEST_TestTriggersLogs_test_03_get_logs_trigger

test_03_get_logs_trigger

verified

REQ_INTEROP_096

TEST_TestTriggersLogs_test_04_update_logs_trigger_lifetime

test_04_update_logs_trigger_lifetime

verified

REQ_INTEROP_031

TEST_TestTriggersLogs_test_05_delete_logs_trigger

test_05_delete_logs_trigger

verified

REQ_INTEROP_032

TEST_TestTriggersLogs_test_10_sse_endpoint_connects_for_log_trigger

test_10_sse_endpoint_connects_for_log_trigger

verified

REQ_INTEROP_097

TEST_TestTriggersLogs_test_11_sse_log_event_headers

test_11_sse_log_event_headers

verified

REQ_INTEROP_097

TEST_TestTriggersPersistent_test_01_create_persistent_trigger

test_01_create_persistent_trigger

verified

REQ_INTEROP_029

TEST_TestTriggersPersistent_test_02_trigger_listed_on_primary

test_02_trigger_listed_on_primary

verified

REQ_INTEROP_030

TEST_TestTriggersPersistent_test_04_restored_trigger_fields_match

test_04_restored_trigger_fields_match

verified

REQ_INTEROP_096

TEST_TestTriggersPersistent_test_06_delete_via_secondary_removes_from_store

test_06_delete_via_secondary_removes_from_store

verified

REQ_INTEROP_032

TEST_TestTriggersUpdates_test_01_create_updates_trigger

test_01_create_updates_trigger

verified

REQ_INTEROP_029

TEST_TestTriggersUpdates_test_02_list_updates_triggers

test_02_list_updates_triggers

verified

REQ_INTEROP_030

TEST_TestTriggersUpdates_test_03_get_updates_trigger

test_03_get_updates_trigger

verified

REQ_INTEROP_096

TEST_TestTriggersUpdates_test_04_update_updates_trigger_lifetime

test_04_update_updates_trigger_lifetime

verified

REQ_INTEROP_031

TEST_TestTriggersUpdates_test_05_delete_updates_trigger

test_05_delete_updates_trigger

verified

REQ_INTEROP_032

TEST_TestTriggersUpdates_test_10_events_endpoint_returns_sse_headers

test_10_events_endpoint_returns_sse_headers

verified

REQ_INTEROP_097

TEST_TestTriggersUpdates_test_11_events_for_nonexistent_trigger_returns_404

test_11_events_for_nonexistent_trigger_returns_404

verified

REQ_INTEROP_097

TEST_TestUpdatesAutomated_test_01_automated_completes

test_01_automated_completes

verified

REQ_INTEROP_093

TEST_TestUpdatesAutomated_test_02_automated_on_non_automated_returns_400

test_02_automated_on_non_automated_returns_400

verified

REQ_INTEROP_093

TEST_TestUpdatesCRUD_test_01_list_updates_empty

test_01_list_updates_empty

verified

REQ_INTEROP_082

TEST_TestUpdatesCRUD_test_02_register_update

test_02_register_update

verified

REQ_INTEROP_083

TEST_TestUpdatesCRUD_test_03_list_after_register

test_03_list_after_register

verified

REQ_INTEROP_082

TEST_TestUpdatesCRUD_test_04_get_update_metadata

test_04_get_update_metadata

verified

REQ_INTEROP_085

TEST_TestUpdatesCRUD_test_05_get_nonexistent_returns_404

test_05_get_nonexistent_returns_404

verified

REQ_INTEROP_085

TEST_TestUpdatesCRUD_test_06_delete_update

test_06_delete_update

verified

REQ_INTEROP_084

TEST_TestUpdatesCRUD_test_07_delete_nonexistent_returns_404

test_07_delete_nonexistent_returns_404

verified

REQ_INTEROP_084

TEST_TestUpdatesCRUD_test_08_register_duplicate_returns_400

test_08_register_duplicate_returns_400

verified

REQ_INTEROP_083

TEST_TestUpdatesCRUD_test_09_list_with_origin_filter

test_09_list_with_origin_filter

verified

REQ_INTEROP_082

TEST_TestUpdatesCRUD_test_10_list_with_target_version_filter

test_10_list_with_target_version_filter

verified

REQ_INTEROP_082

TEST_TestUpdatesErrorCases_test_01_delete_during_prepare_returns_409

test_01_delete_during_prepare_returns_409

verified

REQ_INTEROP_084

TEST_TestUpdatesErrorCases_test_02_prepare_nonexistent_returns_404

test_02_prepare_nonexistent_returns_404

verified

REQ_INTEROP_091

TEST_TestUpdatesErrorCases_test_03_execute_nonexistent_returns_404

test_03_execute_nonexistent_returns_404

verified

REQ_INTEROP_092

TEST_TestUpdatesErrorCases_test_04_register_missing_required_fields

test_04_register_missing_required_fields

verified

REQ_INTEROP_083

TEST_TestUpdatesErrorCases_test_05_register_malformed_json

test_05_register_malformed_json

verified

REQ_INTEROP_083

TEST_TestUpdatesNoPlugin_test_01_list_updates_returns_501

test_01_list_updates_returns_501

verified

REQ_INTEROP_082

TEST_TestUpdatesNoPlugin_test_02_get_update_returns_501

test_02_get_update_returns_501

verified

REQ_INTEROP_085

TEST_TestUpdatesNoPlugin_test_03_register_update_returns_501

test_03_register_update_returns_501

verified

REQ_INTEROP_083

TEST_TestUpdatesNoPlugin_test_04_prepare_returns_501

test_04_prepare_returns_501

verified

REQ_INTEROP_091

TEST_TestUpdatesNoPlugin_test_05_execute_returns_501

test_05_execute_returns_501

verified

REQ_INTEROP_092

TEST_TestUpdatesNoPlugin_test_06_automated_returns_501

test_06_automated_returns_501

verified

REQ_INTEROP_093

TEST_TestUpdatesNoPlugin_test_07_status_returns_501

test_07_status_returns_501

verified

REQ_INTEROP_094

TEST_TestUpdatesNoPlugin_test_08_delete_returns_501

test_08_delete_returns_501

verified

REQ_INTEROP_084

TEST_TestUpdatesPrepareExecute_test_01_prepare_returns_202

test_01_prepare_returns_202

verified

REQ_INTEROP_091

TEST_TestUpdatesPrepareExecute_test_02_prepare_completes

test_02_prepare_completes

verified

REQ_INTEROP_091

TEST_TestUpdatesPrepareExecute_test_03_execute_after_prepare

test_03_execute_after_prepare

verified

REQ_INTEROP_092

TEST_TestUpdatesPrepareExecute_test_04_execute_without_prepare_returns_400

test_04_execute_without_prepare_returns_400

verified

REQ_INTEROP_092

TEST_TestUpdatesPrepareExecute_test_05_status_shows_progress

test_05_status_shows_progress

verified

REQ_INTEROP_094

TEST_TestUpdatesPrepareExecute_test_06_status_not_found_for_unknown

test_06_status_not_found_for_unknown

verified

REQ_INTEROP_094

TEST_TokenTypeTest_TokenTypeToString

TokenTypeToString

verified

REQ_INTEROP_087

TEST_TopicResolutionTest_DefaultTopicsUsedAsFallback

DefaultTopicsUsedAsFallback

verified

REQ_INTEROP_088

TEST_TopicResolutionTest_FaultSpecificHasHighestPriority

FaultSpecificHasHighestPriority

verified

REQ_INTEROP_088

TEST_TopicResolutionTest_PatternMatchUsedWhenNoFaultSpecific

PatternMatchUsedWhenNoFaultSpecific

verified

REQ_INTEROP_088

TEST_TransportRegistryTest_RegisterAndLookup

RegisterAndLookup

verified

REQ_INTEROP_089

TEST_TriggerErrorTest_InvalidParameterErrorFormat

InvalidParameterErrorFormat

verified

REQ_INTEROP_031; REQ_INTEROP_029; REQ_INTEROP_097; REQ_INTEROP_030; REQ_INTEROP_096; REQ_INTEROP_032

TEST_TriggerErrorTest_InvalidResourceUriVendorError

InvalidResourceUriVendorError

verified

REQ_INTEROP_029

TEST_TriggerManagerTest_Create_InvalidConditionType

Create_InvalidConditionType

verified

REQ_INTEROP_029

TEST_TriggerManagerTest_Create_InvalidParams

Create_InvalidParams

verified

REQ_INTEROP_029

TEST_TriggerManagerTest_Create_MaxTriggersExceeded

Create_MaxTriggersExceeded

verified

REQ_INTEROP_029

TEST_TriggerManagerTest_Create_ValidOnChangeTrigger

Create_ValidOnChangeTrigger

verified

REQ_INTEROP_029

TEST_TriggerManagerTest_EventEnvelopeFormat

EventEnvelopeFormat

verified

REQ_INTEROP_097

TEST_TriggerManagerTest_Get_Existing

Get_Existing

verified

REQ_INTEROP_096

TEST_TriggerManagerTest_Hierarchy_AreaToApp

Hierarchy_AreaToApp

verified

REQ_INTEROP_029

TEST_TriggerManagerTest_Hierarchy_ComponentToApp

Hierarchy_ComponentToApp

verified

REQ_INTEROP_029

TEST_TriggerManagerTest_JsonPointer_ExtractsSubElement

JsonPointer_ExtractsSubElement

verified

REQ_INTEROP_097

TEST_TriggerManagerTest_LifetimeExpiry

LifetimeExpiry

verified

REQ_INTEROP_029

TEST_TriggerManagerTest_List_ReturnsTriggersForEntity

List_ReturnsTriggersForEntity

verified

REQ_INTEROP_030

TEST_TriggerManagerTest_Multishot_NotifyTwice

Multishot_NotifyTwice

verified

REQ_INTEROP_097

TEST_TriggerManagerTest_OnRemovedCallback

OnRemovedCallback

verified

REQ_INTEROP_032

TEST_TriggerManagerTest_Remove_ExistingTrigger

Remove_ExistingTrigger

verified

REQ_INTEROP_032

TEST_TriggerManagerTest_SingleShot_NotifyMatchingChange

SingleShot_NotifyMatchingChange

verified

REQ_INTEROP_097

TEST_TriggerManagerTest_SingleShot_RemovedAfterFiring

SingleShot_RemovedAfterFiring

verified

REQ_INTEROP_029

TEST_TriggerManagerTest_Update_ChangeLifetime

Update_ChangeLifetime

verified

REQ_INTEROP_031

TEST_TriggerSSETrackerTest_ClientLimitEnforced

ClientLimitEnforced

verified

REQ_INTEROP_097

TEST_TriggerStore_FilePersistence

FilePersistence

verified

REQ_INTEROP_029

TEST_TriggerStore_SaveAndLoadRoundTrip

SaveAndLoadRoundTrip

verified

REQ_INTEROP_029

TEST_TriggerToJsonTest_ContainsAllRequiredFields

ContainsAllRequiredFields

verified

REQ_INTEROP_096; REQ_INTEROP_097; REQ_INTEROP_029

TEST_TriggerValidationTest_InvalidJsonPointer_Returns400

InvalidJsonPointer_Returns400

verified

REQ_INTEROP_029

TEST_TriggerValidationTest_PathTooLong_Returns400

PathTooLong_Returns400

verified

REQ_INTEROP_029

TEST_TriggerValidationTest_UnknownCollection_Returns400

UnknownCollection_Returns400

verified

REQ_INTEROP_029

TEST_TriggerValidationTest_UnsupportedProtocol_Returns400

UnsupportedProtocol_Returns400

verified

REQ_INTEROP_029

TEST_TriggerValidationTest_VendorExtensionCollection_Accepted

VendorExtensionCollection_Accepted

verified

REQ_INTEROP_029

TEST_UpdateManagerFailureTest_ExecuteExceptionSetsFailedStatus

ExecuteExceptionSetsFailedStatus

verified

REQ_INTEROP_092

TEST_UpdateManagerFailureTest_ExecuteFailureSetsFailedStatus

ExecuteFailureSetsFailedStatus

verified

REQ_INTEROP_092

TEST_UpdateManagerFailureTest_PrepareExceptionSetsFailedStatus

PrepareExceptionSetsFailedStatus

verified

REQ_INTEROP_091

TEST_UpdateManagerFailureTest_PrepareFailureSetsFailedStatus

PrepareFailureSetsFailedStatus

verified

REQ_INTEROP_091

TEST_UpdateManagerTest_AutomatedCompletes

AutomatedCompletes

verified

REQ_INTEROP_093

TEST_UpdateManagerTest_AutomatedRejectsNonAutomated

AutomatedRejectsNonAutomated

verified

REQ_INTEROP_093

TEST_UpdateManagerTest_ConcurrentPrepareOnSamePackageRejected

ConcurrentPrepareOnSamePackageRejected

verified

REQ_INTEROP_091

TEST_UpdateManagerTest_DeleteDuringOperationFails

DeleteDuringOperationFails

verified

REQ_INTEROP_084

TEST_UpdateManagerTest_DeleteUpdate

DeleteUpdate

verified

REQ_INTEROP_084

TEST_UpdateManagerTest_DuplicateRegistration

DuplicateRegistration

verified

REQ_INTEROP_083

TEST_UpdateManagerTest_ExecuteAfterPrepare

ExecuteAfterPrepare

verified

REQ_INTEROP_092

TEST_UpdateManagerTest_ExecuteRequiresPrepare

ExecuteRequiresPrepare

verified

REQ_INTEROP_092

TEST_UpdateManagerTest_GetUpdate

GetUpdate

verified

REQ_INTEROP_085

TEST_UpdateManagerTest_GetUpdateNotFound

GetUpdateNotFound

verified

REQ_INTEROP_085

TEST_UpdateManagerTest_HasBackend

HasBackend

verified

REQ_INTEROP_082

TEST_UpdateManagerTest_NoBackendMode

NoBackendMode

verified

REQ_INTEROP_082

TEST_UpdateManagerTest_PrepareAndPollStatus

PrepareAndPollStatus

verified

REQ_INTEROP_091

TEST_UpdateManagerTest_RegisterAndList

RegisterAndList

verified

REQ_INTEROP_082

TEST_UpdateManagerTest_StatusNotFoundForUnknown

StatusNotFoundForUnknown

verified

REQ_INTEROP_094

TEST_YamlLoadTest_LoadValidFile

LoadValidFile

verified

REQ_INTEROP_095

TEST_YamlLoadTest_MalformedYamlReturnsEmpty

MalformedYamlReturnsEmpty

verified

REQ_INTEROP_095

TEST_YamlLoadTest_MissingFileReturnsEmpty

MissingFileReturnsEmpty

verified

REQ_INTEROP_095

TEST_YamlLoadTest_PositiveConfirmationThresholdAutoNegated

PositiveConfirmationThresholdAutoNegated

verified

REQ_INTEROP_095