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
|
Verify that error responses follow RFC 6749 OAuth2 error format Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L182 (Test: |
Test Case: ReturnsBadRequestForEmptyClientId TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForEmptyClientId
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L140 (Test: |
Test Case: ReturnsBadRequestForEmptyClientSecret TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForEmptyClientSecret
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L168 (Test: |
Test Case: ReturnsBadRequestForMissingClientId TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForMissingClientId
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L126 (Test: |
Test Case: ReturnsBadRequestForMissingClientSecret TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForMissingClientSecret
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L154 (Test: |
Test Case: ReturnsBadRequestForWrongGrantType TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForWrongGrantType
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L112 (Test: |
Test Case: AuthorizeErrorBodyContainsErrorCode TEST_AuthHandlersDisabledTest_AuthorizeErrorBodyContainsErrorCode
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L70 (Test: |
Test Case: AuthorizeReturns404WhenAuthDisabled TEST_AuthHandlersDisabledTest_AuthorizeReturns404WhenAuthDisabled
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L62 (Test: |
Test Case: RevokeReturns404WhenAuthDisabled TEST_AuthHandlersDisabledTest_RevokeReturns404WhenAuthDisabled
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L88 (Test: |
Test Case: TokenReturns404WhenAuthDisabled TEST_AuthHandlersDisabledTest_TokenReturns404WhenAuthDisabled
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L80 (Test: |
Test Case: ReturnsBadRequestForInvalidJson TEST_AuthHandlersRevokeTest_ReturnsBadRequestForInvalidJson
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L269 (Test: |
Test Case: ReturnsBadRequestForMissingTokenField TEST_AuthHandlersRevokeTest_ReturnsBadRequestForMissingTokenField
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L284 (Test: |
Test Case: ReturnsBadRequestForNonStringToken TEST_AuthHandlersRevokeTest_ReturnsBadRequestForNonStringToken
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L298 (Test: |
Test Case: ReturnsBadRequestForEmptyRefreshToken TEST_AuthHandlersTokenTest_ReturnsBadRequestForEmptyRefreshToken
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L240 (Test: |
Test Case: ReturnsBadRequestForMissingRefreshToken TEST_AuthHandlersTokenTest_ReturnsBadRequestForMissingRefreshToken
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L226 (Test: |
Test Case: ReturnsBadRequestForWrongGrantType TEST_AuthHandlersTokenTest_ReturnsBadRequestForWrongGrantType
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L212 (Test: |
Test Case: AuthorizeReturnsTokensForValidCredentials TEST_AuthHandlersWithManagerTest_AuthorizeReturnsTokensForValidCredentials
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L349 (Test: |
Test Case: AuthorizeReturnsUnauthorizedForInvalidCredentials TEST_AuthHandlersWithManagerTest_AuthorizeReturnsUnauthorizedForInvalidCredentials
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L361 (Test: |
Test Case: RevokeRevokesRefreshTokenForSubsequentTokenRequest TEST_AuthHandlersWithManagerTest_RevokeRevokesRefreshTokenForSubsequentTokenRequest
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L401 (Test: |
Test Case: TokenReturnsNewAccessTokenForValidRefreshToken TEST_AuthHandlersWithManagerTest_TokenReturnsNewAccessTokenForValidRefreshToken
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L373 (Test: |
Test Case: TokenReturnsUnauthorizedForInvalidRefreshToken TEST_AuthHandlersWithManagerTest_TokenReturnsUnauthorizedForInvalidRefreshToken
|
Implementation: src/ros2_medkit_gateway/test/test_auth_handlers.cpp#L390 (Test: |
Test Case: RS256WithMissingPrivateKeyThrows TEST_AuthManagerRS256Test_RS256WithMissingPrivateKeyThrows
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L470 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L167 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L340 (Test: |
Authenticate first Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L516 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L277 (Test: |
Test Case: RefreshRevocationPropagatestoAccessToken TEST_AuthManagerTest_RefreshRevocationPropagatestoAccessToken
|
Get tokens Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L320 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L264 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L230 (Test: |
Test Case: ValidateTokenWithWrongTypeRejectsToken TEST_AuthManagerTest_ValidateTokenWithWrongTypeRejectsToken
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L247 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L194 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L970 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L981 (Test: |
Test Case: ExtractBearerToken_CaseInsensitive TEST_AuthMiddlewareTest_ExtractBearerToken_CaseInsensitive
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L876 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L883 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L895 (Test: |
Test Case: ExtractBearerToken_InvalidPrefix TEST_AuthMiddlewareTest_ExtractBearerToken_InvalidPrefix
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L889 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L869 (Test: |
GET requests don’t require auth when require_auth_for=WRITE Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L901 (Test: |
Test Case: ProcessWriteRequestWithInsufficientPermissions TEST_AuthMiddlewareTest_ProcessWriteRequestWithInsufficientPermissions
|
Authenticate as viewer Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L953 (Test: |
Test Case: ProcessWriteRequestWithInvalidToken TEST_AuthMiddlewareTest_ProcessWriteRequestWithInvalidToken
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L940 (Test: |
Test Case: ProcessWriteRequestWithValidToken TEST_AuthMiddlewareTest_ProcessWriteRequestWithValidToken
|
Authenticate first to get a valid token Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L924 (Test: |
POST requests require auth when require_auth_for=WRITE Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L912 (Test: |
Test Case: AllAuthPolicyAlwaysRequiresAuth TEST_AuthRequirementPolicyTest_AllAuthPolicyAlwaysRequiresAuth
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1027 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1060 (Test: |
Test Case: ConfigurablePolicyLongestMatchWins TEST_AuthRequirementPolicyTest_ConfigurablePolicyLongestMatchWins
|
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: |
Test Case: ConfigurablePolicyMultipleWildcards TEST_AuthRequirementPolicyTest_ConfigurablePolicyMultipleWildcards
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1083 (Test: |
Test Case: ConfigurablePolicyUnknownPathsRequireAuth TEST_AuthRequirementPolicyTest_ConfigurablePolicyUnknownPathsRequireAuth
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1092 (Test: |
Test Case: ConfigurablePolicyWildcardMatch TEST_AuthRequirementPolicyTest_ConfigurablePolicyWildcardMatch
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1070 (Test: |
Test Case: FactoryCreatesAllAuthFromConfig TEST_AuthRequirementPolicyTest_FactoryCreatesAllAuthFromConfig
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1144 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1118 (Test: |
Test Case: FactoryCreatesWriteOnlyFromConfig TEST_AuthRequirementPolicyTest_FactoryCreatesWriteOnlyFromConfig
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1130 (Test: |
Test Case: NoAuthPolicyNeverRequiresAuth TEST_AuthRequirementPolicyTest_NoAuthPolicyNeverRequiresAuth
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1017 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1158 (Test: |
Test Case: WriteOnlyPolicyForGetRequests TEST_AuthRequirementPolicyTest_WriteOnlyPolicyForGetRequests
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1037 (Test: |
Test Case: WriteOnlyPolicyForWriteRequests TEST_AuthRequirementPolicyTest_WriteOnlyPolicyForWriteRequests
|
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L1049 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L799 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L811 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L821 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L787 (Test: |
Content-Type may include charset Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L831 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L105 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L132 (Test: |
Test Case: DescriptorToJsonWithoutDescription TEST_BulkDataHandlersTest_DescriptorToJsonWithoutDescription
|
Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L158 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L81 (Test: |
Test Case: FormatTimestampNsNegativeFallback TEST_BulkDataHandlersTest_FormatTimestampNsNegativeFallback
|
Negative timestamps should return fallback Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L95 (Test: |
Test Case: FormatTimestampNsValidTimestamp TEST_BulkDataHandlersTest_FormatTimestampNsValidTimestamp
|
2026-02-08T00:00:00.000Z Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L71 (Test: |
Test Case: FormatTimestampNsWithMilliseconds TEST_BulkDataHandlersTest_FormatTimestampNsWithMilliseconds
|
1 second + 123 ms Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L87 (Test: |
Test Case: GetRosbagMimetypeCasesSensitive TEST_BulkDataHandlersTest_GetRosbagMimetypeCasesSensitive
|
MCAP should not match mcap (case sensitive) Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L62 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L47 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L57 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L37 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L42 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L52 (Test: |
Test Case: PayloadTooLargeErrorCodeDefined TEST_BulkDataHandlersTest_PayloadTooLargeErrorCodeDefined
|
Implementation: src/ros2_medkit_gateway/test/test_bulkdata_handlers.cpp#L188 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L221 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L185 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L168 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L340 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L327 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L123 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L271 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L104 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L279 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L198 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L348 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L229 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L136 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L159 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L311 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L48 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L248 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L71 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L289 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L302 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L356 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L262 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L84 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_bulk_data_store.cpp#L212 (Test: |
Test Case: EntityCollectionDetailPathHasParameters TEST_CapabilityGeneratorTest_EntityCollectionDetailPathHasParameters
|
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: |
Test Case: GenerateEntityCollectionReturnsSpec TEST_CapabilityGeneratorTest_GenerateEntityCollectionReturnsSpec
|
Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L261 (Test: |
Test Case: GenerateInvalidPathReturnsNullopt TEST_CapabilityGeneratorTest_GenerateInvalidPathReturnsNullopt
|
Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L241 (Test: |
Test Case: GenerateRootContainsEntityCollections TEST_CapabilityGeneratorTest_GenerateRootContainsEntityCollections
|
Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L175 (Test: |
Test Case: GenerateRootContainsEntityDetailPaths TEST_CapabilityGeneratorTest_GenerateRootContainsEntityDetailPaths
|
Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L188 (Test: |
Test Case: GenerateRootContainsGlobalFaults TEST_CapabilityGeneratorTest_GenerateRootContainsGlobalFaults
|
Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L201 (Test: |
Test Case: GenerateRootContainsHealthEndpoint TEST_CapabilityGeneratorTest_GenerateRootContainsHealthEndpoint
|
Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L153 (Test: |
Test Case: GenerateRootContainsVersionInfo TEST_CapabilityGeneratorTest_GenerateRootContainsVersionInfo
|
Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L164 (Test: |
Test Case: GenerateRootReturnsValidOpenApiSpec TEST_CapabilityGeneratorTest_GenerateRootReturnsValidOpenApiSpec
|
Implementation: src/ros2_medkit_gateway/test/test_capability_generator.cpp#L125 (Test: |
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: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L57 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L42 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L24 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L216 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L51 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L33 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L65 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L203 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L179 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L136 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_cgroup_reader.cpp#L91 (Test: |
Test Case: EnterRange_NonNumericReturnsFalse TEST_ConditionEvaluator_EnterRange_NonNumericReturnsFalse
|
Implementation: src/ros2_medkit_gateway/test/test_condition_evaluator.cpp#L239 (Test: |
Test Case: LeaveRange_NonNumericReturnsFalse TEST_ConditionEvaluator_LeaveRange_NonNumericReturnsFalse
|
Implementation: src/ros2_medkit_gateway/test/test_condition_evaluator.cpp#L329 (Test: |
Test Case: OnChangeTo_ValidateParams_MissingTarget TEST_ConditionEvaluator_OnChangeTo_ValidateParams_MissingTarget
|
Implementation: src/ros2_medkit_gateway/test/test_condition_evaluator.cpp#L123 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_condition_evaluator.cpp#L131 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_condition_evaluator.cpp#L64 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_container_plugin.cpp#L21 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_container_plugin.cpp#L38 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_container_plugin.cpp#L53 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_cyclic_subscription_handlers.cpp#L173 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_cyclic_subscription_handlers.cpp#L207 (Test: |
Test Case: DataCategoriesErrorBodyContainsFeatureParameter TEST_DataHandlersTest_DataCategoriesErrorBodyContainsFeatureParameter
|
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L85 (Test: |
Test Case: DataCategoriesErrorBodyContainsMessage TEST_DataHandlersTest_DataCategoriesErrorBodyContainsMessage
|
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L76 (Test: |
Test Case: DataCategoriesErrorCodeIsNotImplemented TEST_DataHandlersTest_DataCategoriesErrorCodeIsNotImplemented
|
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L66 (Test: |
Test Case: DataCategoriesResponseBodyIsValidJson TEST_DataHandlersTest_DataCategoriesResponseBodyIsValidJson
|
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L58 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L50 (Test: |
Test Case: DataGroupsErrorBodyContainsFeatureParameter TEST_DataHandlersTest_DataGroupsErrorBodyContainsFeatureParameter
|
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L134 (Test: |
Test Case: DataGroupsErrorBodyContainsMessage TEST_DataHandlersTest_DataGroupsErrorBodyContainsMessage
|
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L125 (Test: |
Test Case: DataGroupsErrorCodeIsNotImplemented TEST_DataHandlersTest_DataGroupsErrorCodeIsNotImplemented
|
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L115 (Test: |
Test Case: DataGroupsResponseBodyIsValidJson TEST_DataHandlersTest_DataGroupsResponseBodyIsValidJson
|
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L107 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L99 (Test: |
Test Case: GetDataItemBadRequestBodyContainsInvalidRequestErrorCode TEST_DataHandlersTest_GetDataItemBadRequestBodyContainsInvalidRequestErrorCode
|
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L179 (Test: |
Test Case: GetDataItemReturnsBadRequestWhenMatchesMissing TEST_DataHandlersTest_GetDataItemReturnsBadRequestWhenMatchesMissing
|
Default-constructed req has empty matches (size 0 < 3) Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L170 (Test: |
Test Case: ListDataBadRequestBodyContainsErrorCode TEST_DataHandlersTest_ListDataBadRequestBodyContainsErrorCode
|
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L157 (Test: |
Test Case: ListDataReturnsBadRequestWhenMatchesMissing TEST_DataHandlersTest_ListDataReturnsBadRequestWhenMatchesMissing
|
Default-constructed req has empty matches (size 0 < 2) Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L148 (Test: |
Test Case: PutDataItemBadRequestBodyContainsInvalidRequestErrorCode TEST_DataHandlersTest_PutDataItemBadRequestBodyContainsInvalidRequestErrorCode
|
Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L202 (Test: |
Test Case: PutDataItemReturnsBadRequestWhenMatchesMissing TEST_DataHandlersTest_PutDataItemReturnsBadRequestWhenMatchesMissing
|
Default-constructed req has empty matches (size 0 < 3) Implementation: src/ros2_medkit_gateway/test/test_data_handlers.cpp#L193 (Test: |
Create a script that sleeps briefly Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L724 (Test: |
Test Case: ControlCompletedExecutionReturnsNotRunning TEST_DefaultScriptProviderTest_ControlCompletedExecutionReturnsNotRunning
|
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L1014 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L843 (Test: |
Test Case: CrossEntityExecutionAccessRejected TEST_DefaultScriptProviderTest_CrossEntityExecutionAccessRejected
|
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L911 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L283 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L405 (Test: |
Test Case: DeleteScriptWithRunningExecutionBlocked TEST_DefaultScriptProviderTest_DeleteScriptWithRunningExecutionBlocked
|
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: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L256 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L675 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L779 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L642 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L222 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L295 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L237 (Test: |
Test Case: ListMergesManifestAndUploaded TEST_DefaultScriptProviderTest_ListMergesManifestAndUploaded
|
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L189 (Test: |
Test Case: ManifestScriptWithParametersSchema TEST_DefaultScriptProviderTest_ManifestScriptWithParametersSchema
|
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L415 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L124 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L609 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L580 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L874 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L699 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L483 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L459 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L500 (Test: |
Create a script that exits with code 1 Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L517 (Test: |
Create a script that sleeps for a long time Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L549 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L767 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L1001 (Test: |
Test Case: UploadExceedingFileSizeRejected TEST_DefaultScriptProviderTest_UploadExceedingFileSizeRejected
|
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L989 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L156 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L337 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L354 (Test: |
Test Case: UploadedScriptsIsolatedByEntity TEST_DefaultScriptProviderTest_UploadedScriptsIsolatedByEntity
|
Implementation: src/ros2_medkit_gateway/test/test_default_script_provider.cpp#L429 (Test: |
Test Case: AppDependsOnReturnsResolvedAndMissingDependencies TEST_DiscoveryHandlersFixtureTest_AppDependsOnReturnsResolvedAndMissingDependencies
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L689 (Test: |
Test Case: AppDependsOnUnknownAppReturns404 TEST_DiscoveryHandlersFixtureTest_AppDependsOnUnknownAppReturns404
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L716 (Test: |
Test Case: AppIsLocatedOnReturnsEmptyWhenAppHasNoComponent TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnReturnsEmptyWhenAppHasNoComponent
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L625 (Test: |
Test Case: AppIsLocatedOnReturnsMissingItemWhenHostComponentUnresolved TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnReturnsMissingItemWhenHostComponentUnresolved
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L639 (Test: |
Test Case: AppIsLocatedOnReturnsParentComponent TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnReturnsParentComponent
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L608 (Test: |
Test Case: AppIsLocatedOnUnknownAppReturns404 TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnUnknownAppReturns404
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L679 (Test: |
Test Case: AreaComponentsReturnsMatchingComponentsOnly TEST_DiscoveryHandlersFixtureTest_AreaComponentsReturnsMatchingComponentsOnly
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L312 (Test: |
Test Case: AreaComponentsUnknownAreaReturns404 TEST_DiscoveryHandlersFixtureTest_AreaComponentsUnknownAreaReturns404
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L334 (Test: |
Test Case: ComponentDependsOnReturnsResolvedAndMissingDependencies TEST_DiscoveryHandlersFixtureTest_ComponentDependsOnReturnsResolvedAndMissingDependencies
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L519 (Test: |
Test Case: ComponentDependsOnUnknownComponentReturns404 TEST_DiscoveryHandlersFixtureTest_ComponentDependsOnUnknownComponentReturns404
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L544 (Test: |
Test Case: FunctionHostsReturnsHostingApps TEST_DiscoveryHandlersFixtureTest_FunctionHostsReturnsHostingApps
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L793 (Test: |
Test Case: FunctionHostsUnknownFunctionReturns404 TEST_DiscoveryHandlersFixtureTest_FunctionHostsUnknownFunctionReturns404
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L783 (Test: |
Test Case: GetAppReturnsLinksAndCapabilities TEST_DiscoveryHandlersFixtureTest_GetAppReturnsLinksAndCapabilities
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L590 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L580 (Test: |
Test Case: GetAreaReturnsCapabilitiesAndLinks TEST_DiscoveryHandlersFixtureTest_GetAreaReturnsCapabilitiesAndLinks
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L298 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L288 (Test: |
Test Case: GetComponentReturnsRelationshipsAndCapabilities TEST_DiscoveryHandlersFixtureTest_GetComponentReturnsRelationshipsAndCapabilities
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L435 (Test: |
Test Case: GetContainsReturnsAreaComponents TEST_DiscoveryHandlersFixtureTest_GetContainsReturnsAreaComponents
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L377 (Test: |
Test Case: GetContainsUnknownAreaReturns404 TEST_DiscoveryHandlersFixtureTest_GetContainsUnknownAreaReturns404
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L401 (Test: |
Test Case: GetFunctionReturnsCapabilitiesAndGraphLink TEST_DiscoveryHandlersFixtureTest_GetFunctionReturnsCapabilitiesAndGraphLink
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L759 (Test: |
Test Case: GetFunctionUnknownIdReturns404 TEST_DiscoveryHandlersFixtureTest_GetFunctionUnknownIdReturns404
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L749 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L485 (Test: |
Test Case: GetHostsUnknownComponentReturns404 TEST_DiscoveryHandlersFixtureTest_GetHostsUnknownComponentReturns404
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L509 (Test: |
Test Case: GetSubareasReturnsChildAreas TEST_DiscoveryHandlersFixtureTest_GetSubareasReturnsChildAreas
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L344 (Test: |
Test Case: GetSubareasUnknownAreaReturns404 TEST_DiscoveryHandlersFixtureTest_GetSubareasUnknownAreaReturns404
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L367 (Test: |
Test Case: GetSubcomponentsReturnsChildren TEST_DiscoveryHandlersFixtureTest_GetSubcomponentsReturnsChildren
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L450 (Test: |
Test Case: GetSubcomponentsUnknownComponentReturns404 TEST_DiscoveryHandlersFixtureTest_GetSubcomponentsUnknownComponentReturns404
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L474 (Test: |
Test Case: ListAppsReturnsSeededMetadata TEST_DiscoveryHandlersFixtureTest_ListAppsReturnsSeededMetadata
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L565 (Test: |
Test Case: ListAreasReturnsSeededItems TEST_DiscoveryHandlersFixtureTest_ListAreasReturnsSeededItems
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L265 (Test: |
Test Case: ListComponentsReturnsMetadata TEST_DiscoveryHandlersFixtureTest_ListComponentsReturnsMetadata
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L411 (Test: |
Test Case: ListFunctionsReturnsSeededFunctions TEST_DiscoveryHandlersFixtureTest_ListFunctionsReturnsSeededFunctions
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L736 (Test: |
Test Case: AppDependsOnInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_AppDependsOnInvalidIdReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L706 (Test: |
Test Case: AppIsLocatedOnInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_AppIsLocatedOnInvalidIdReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L669 (Test: |
Test Case: AreaComponentsInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_AreaComponentsInvalidIdReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L324 (Test: |
Test Case: ComponentDependsOnInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_ComponentDependsOnInvalidIdReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L534 (Test: |
Test Case: FunctionHostsInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_FunctionHostsInvalidIdReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L773 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L555 (Test: |
Test Case: GetAreaInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_GetAreaInvalidIdReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L278 (Test: |
Test Case: GetAreaMissingMatchesReturns400 TEST_DiscoveryHandlersValidationTest_GetAreaMissingMatchesReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L179 (Test: |
Test Case: GetComponentInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_GetComponentInvalidIdReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L425 (Test: |
Test Case: GetContainsInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_GetContainsInvalidIdReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L391 (Test: |
Test Case: GetFunctionInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_GetFunctionInvalidIdReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L726 (Test: |
Test Case: GetHostsInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_GetHostsInvalidIdReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L499 (Test: |
Test Case: GetSubareasInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_GetSubareasInvalidIdReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L357 (Test: |
Test Case: GetSubcomponentsInvalidIdReturns400 TEST_DiscoveryHandlersValidationTest_GetSubcomponentsInvalidIdReturns400
|
Implementation: src/ros2_medkit_gateway/test/test_discovery_handlers.cpp#L463 (Test: |
Test Case: DocsAnyPathReturns200ForEntityCollection TEST_DocsHandlersTest_DocsAnyPathReturns200ForEntityCollection
|
Implementation: src/ros2_medkit_gateway/test/test_docs_handlers.cpp#L143 (Test: |
Test Case: DocsAnyPathReturns404ForInvalidPath TEST_DocsHandlersTest_DocsAnyPathReturns404ForInvalidPath
|
Implementation: src/ros2_medkit_gateway/test/test_docs_handlers.cpp#L177 (Test: |
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: |
Implementation: src/ros2_medkit_gateway/test/test_docs_handlers.cpp#L115 (Test: |
Test Case: ListFaultsForEntityEmptyResult TEST_FaultEventPublishingTest_ListFaultsForEntityEmptyResult
|
Report faults from a different entity Implementation: src/ros2_medkit_fault_manager/test/test_fault_manager.cpp#L1042 (Test: |
Report faults from different sources Implementation: src/ros2_medkit_fault_manager/test/test_fault_manager.cpp#L1018 (Test: |
Test Case: ListFaultsForEntityWithEmptyId TEST_FaultEventPublishingTest_ListFaultsForEntityWithEmptyId
|
Implementation: src/ros2_medkit_fault_manager/test/test_fault_manager.cpp#L1055 (Test: |
Test Case: BuildSovdFaultResponseBasicFields TEST_FaultHandlersTest_BuildSovdFaultResponseBasicFields
|
Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L37 (Test: |
Test Case: BuildSovdFaultResponseExtendedDataRecords TEST_FaultHandlersTest_BuildSovdFaultResponseExtendedDataRecords
|
Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L241 (Test: |
Test Case: BuildSovdFaultResponseMixedSnapshots TEST_FaultHandlersTest_BuildSovdFaultResponseMixedSnapshots
|
Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L315 (Test: |
Test Case: BuildSovdFaultResponseMultipleSources TEST_FaultHandlersTest_BuildSovdFaultResponseMultipleSources
|
Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L298 (Test: |
Test Case: BuildSovdFaultResponseNestedEntityPath TEST_FaultHandlersTest_BuildSovdFaultResponseNestedEntityPath
|
Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L123 (Test: |
Test Case: BuildSovdFaultResponsePrimaryValueExtraction TEST_FaultHandlersTest_BuildSovdFaultResponsePrimaryValueExtraction
|
Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L263 (Test: |
Test Case: BuildSovdFaultResponseSeverityLabels TEST_FaultHandlersTest_BuildSovdFaultResponseSeverityLabels
|
Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L172 (Test: |
Test Case: BuildSovdFaultResponseStatusCleared TEST_FaultHandlersTest_BuildSovdFaultResponseStatusCleared
|
Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L140 (Test: |
Test Case: BuildSovdFaultResponseStatusPassive TEST_FaultHandlersTest_BuildSovdFaultResponseStatusPassive
|
Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L157 (Test: |
Test Case: BuildSovdFaultResponseWithFreezeFrame TEST_FaultHandlersTest_BuildSovdFaultResponseWithFreezeFrame
|
Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L72 (Test: |
Test Case: BuildSovdFaultResponseWithInvalidJson TEST_FaultHandlersTest_BuildSovdFaultResponseWithInvalidJson
|
Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L220 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_fault_handlers.cpp#L98 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L559 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L300 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L314 (Test: |
Test Case: GetRosbagUsesConfiguredFaultManagerNamespace TEST_FaultManagerTest_GetRosbagUsesConfiguredFaultManagerNamespace
|
Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L339 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L279 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L241 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L259 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L120 (Test: |
Test Case: GetSnapshotsSuccessWithTopicFilter TEST_FaultManagerTest_GetSnapshotsSuccessWithTopicFilter
|
Create mock service that verifies topic filter is passed Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L221 (Test: |
Create mock service Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L134 (Test: |
Test Case: GetSnapshotsUsesConfiguredFaultManagerNamespace TEST_FaultManagerTest_GetSnapshotsUsesConfiguredFaultManagerNamespace
|
Implementation: src/ros2_medkit_gateway/test/test_fault_manager.cpp#L163 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L533 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L969 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L954 (Test: |
Test Case: RegistersFunctionCapabilityOnContext TEST_GraphProviderPluginRouteTest_RegistersFunctionCapabilityOnContext
|
Implementation: src/ros2_medkit_plugins/ros2_medkit_graph_provider/test/test_graph_provider_plugin.cpp#L616 (Test: |
Test Case: RegistersSamplerForCyclicSubscriptions TEST_GraphProviderPluginRouteTest_RegistersSamplerForCyclicSubscriptions
|
Implementation: src/ros2_medkit_plugins/ros2_medkit_graph_provider/test/test_graph_provider_plugin.cpp#L689 (Test: |
Test Case: ServesFunctionGraphFromCachedSnapshot TEST_GraphProviderPluginRouteTest_ServesFunctionGraphFromCachedSnapshot
|
Implementation: src/ros2_medkit_plugins/ros2_medkit_graph_provider/test/test_graph_provider_plugin.cpp#L579 (Test: |
Test Case: HandleRootAuthDisabledNoAuthEndpoints TEST_HealthHandlersTest_HandleRootAuthDisabledNoAuthEndpoints
|
With auth disabled (default), auth endpoints must not appear in the list Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L189 (Test: |
Test Case: HandleRootAuthEnabledAddsAuthEndpoints TEST_HealthHandlersTest_HandleRootAuthEnabledAddsAuthEndpoints
|
Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L215 (Test: |
Test Case: HandleRootAuthEnabledIncludesAuthMetadataBlock TEST_HealthHandlersTest_HandleRootAuthEnabledIncludesAuthMetadataBlock
|
Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L244 (Test: |
Test Case: HandleRootCapabilitiesAuthDisabled TEST_HealthHandlersTest_HandleRootCapabilitiesAuthDisabled
|
Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L200 (Test: |
Test Case: HandleRootCapabilitiesContainsDiscovery TEST_HealthHandlersTest_HandleRootCapabilitiesContainsDiscovery
|
Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L180 (Test: |
Test Case: HandleRootCapabilitiesTlsDisabled TEST_HealthHandlersTest_HandleRootCapabilitiesTlsDisabled
|
Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L207 (Test: |
Test Case: HandleRootEndpointsIsNonEmptyArray TEST_HealthHandlersTest_HandleRootEndpointsIsNonEmptyArray
|
Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L172 (Test: |
Test Case: HandleRootResponseContainsRequiredTopLevelFields TEST_HealthHandlersTest_HandleRootResponseContainsRequiredTopLevelFields
|
Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L158 (Test: |
Test Case: HandleRootTlsEnabledIncludesTlsMetadataBlock TEST_HealthHandlersTest_HandleRootTlsEnabledIncludesTlsMetadataBlock
|
Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L262 (Test: |
Test Case: HandleVersionInfoContainsItemsArray TEST_HealthHandlersTest_HandleVersionInfoContainsItemsArray
|
Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L119 (Test: |
Test Case: HandleVersionInfoItemsEntryHasBaseUri TEST_HealthHandlersTest_HandleVersionInfoItemsEntryHasBaseUri
|
Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L138 (Test: |
Test Case: HandleVersionInfoItemsEntryHasVendorInfo TEST_HealthHandlersTest_HandleVersionInfoItemsEntryHasVendorInfo
|
Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L146 (Test: |
Test Case: HandleVersionInfoItemsEntryHasVersionField TEST_HealthHandlersTest_HandleVersionInfoItemsEntryHasVersionField
|
Implementation: src/ros2_medkit_gateway/test/test_health_handlers.cpp#L128 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_subscription_manager.cpp#L28 (Test: |
Test Case: ExpiredTriggerMarkedTerminatedOnLoad TEST_LoadPersistentTriggers_ExpiredTriggerMarkedTerminatedOnLoad
|
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L885 (Test: |
Test Case: NewTriggerIdIsHigherThanRestoredId TEST_LoadPersistentTriggers_NewTriggerIdIsHigherThanRestoredId
|
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L921 (Test: |
Test Case: ResetBehaviorDoesNotRestoreTriggers TEST_LoadPersistentTriggers_ResetBehaviorDoesNotRestoreTriggers
|
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L860 (Test: |
Test Case: RestoreBehaviorLoadsActiveTrigger TEST_LoadPersistentTriggers_RestoreBehaviorLoadsActiveTrigger
|
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L829 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L123 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L138 (Test: |
Test Case: test_acquire_break_lock_not_breakable TEST_LockManagerTest_test_acquire_break_lock_not_breakable
|
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L158 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L183 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L173 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L84 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L112 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L100 (Test: |
Test Case: test_check_access_area_propagation TEST_LockManagerTest_test_check_access_area_propagation
|
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L415 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L352 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L342 (Test: |
Test Case: test_check_access_parent_propagation TEST_LockManagerTest_test_check_access_parent_propagation
|
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L393 (Test: |
Test Case: test_check_access_partial_scope_propagation TEST_LockManagerTest_test_check_access_partial_scope_propagation
|
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L438 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L365 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L381 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L333 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L458 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L481 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L544 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L252 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L283 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L271 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L297 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L313 (Test: |
Test Case: test_lock_required_different_collection_not_blocked TEST_LockManagerTest_test_lock_required_different_collection_not_blocked
|
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L527 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L512 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L498 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L208 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L238 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_lock_manager.cpp#L223 (Test: |
Test Case: GetLogsBadRequestBodyContainsInvalidRequestErrorCode TEST_LogHandlersTest_GetLogsBadRequestBodyContainsInvalidRequestErrorCode
|
Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L64 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L56 (Test: |
Test Case: GetLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode TEST_LogHandlersTest_GetLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode
|
Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L94 (Test: |
Test Case: GetLogsConfigurationBadRequestBodyIsValidJson TEST_LogHandlersTest_GetLogsConfigurationBadRequestBodyIsValidJson
|
Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L86 (Test: |
Test Case: GetLogsConfigurationReturnsBadRequestWhenMatchesMissing TEST_LogHandlersTest_GetLogsConfigurationReturnsBadRequestWhenMatchesMissing
|
Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L78 (Test: |
Test Case: GetLogsReturnsBadRequestWhenMatchesMissing TEST_LogHandlersTest_GetLogsReturnsBadRequestWhenMatchesMissing
|
Default-constructed req has empty matches (size 0 < 2) Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L47 (Test: |
Test Case: PutLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode TEST_LogHandlersTest_PutLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode
|
Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L124 (Test: |
Test Case: PutLogsConfigurationBadRequestBodyIsValidJson TEST_LogHandlersTest_PutLogsConfigurationBadRequestBodyIsValidJson
|
Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L116 (Test: |
Test Case: PutLogsConfigurationReturnsBadRequestWhenMatchesMissing TEST_LogHandlersTest_PutLogsConfigurationReturnsBadRequestWhenMatchesMissing
|
Implementation: src/ros2_medkit_gateway/test/test_log_handlers.cpp#L108 (Test: |
Test Case: AddLogEntry_EmptyMetadataNoSuffix TEST_LogManagerBufferTest_AddLogEntry_EmptyMetadataNoSuffix
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L364 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L326 (Test: |
Test Case: AddLogEntry_InvalidSeverityFallsBackToInfo TEST_LogManagerBufferTest_AddLogEntry_InvalidSeverityFallsBackToInfo
|
“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: |
Test Case: AddLogEntry_MetadataAppendedToMessage TEST_LogManagerBufferTest_AddLogEntry_MetadataAppendedToMessage
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L350 (Test: |
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: |
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L281 (Test: |
Test Case: FqnWithLeadingSlashMatchesBuffer TEST_LogManagerBufferTest_FqnWithLeadingSlashMatchesBuffer
|
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: |
Test Case: GetConfigReturnsDefaultsForUnknownEntity TEST_LogManagerBufferTest_GetConfigReturnsDefaultsForUnknownEntity
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L387 (Test: |
Test Case: GetLogsMatchesDotNotationLoggerNames TEST_LogManagerBufferTest_GetLogsMatchesDotNotationLoggerNames
|
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: |
Test Case: GetLogsPrefixMatchesDotNotationLoggerNames TEST_LogManagerBufferTest_GetLogsPrefixMatchesDotNotationLoggerNames
|
Component namespace prefix matching must also work against dot-format logger names. Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L309 (Test: |
Test Case: MaxEntriesCapsMostRecentEntries TEST_LogManagerBufferTest_MaxEntriesCapsMostRecentEntries
|
Inject 5 entries, set max_entries=2 via config Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L265 (Test: |
Test Case: PartialConfigUpdatePreservesOtherField TEST_LogManagerBufferTest_PartialConfigUpdatePreservesOtherField
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L395 (Test: |
Test Case: PrefixMatchDoesNotFalsePositiveOnSubstring TEST_LogManagerBufferTest_PrefixMatchDoesNotFalsePositiveOnSubstring
|
“engine” must NOT match “engine_control” (only full namespace segments) Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L255 (Test: |
Test Case: PrefixMatchIncludesChildNamespaces TEST_LogManagerBufferTest_PrefixMatchIncludesChildNamespaces
|
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: |
Test Case: RingBufferEvictsOldestEntryWhenFull TEST_LogManagerBufferTest_RingBufferEvictsOldestEntryWhenFull
|
Buffer size is 3; inject 4 entries for the same node Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L196 (Test: |
Test Case: SeverityFilterExcludesLowerLevels TEST_LogManagerBufferTest_SeverityFilterExcludesLowerLevels
|
inject debug(10), info(20), warning(30) Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L226 (Test: |
Test Case: UpdateConfigRejectsInvalidSeverity TEST_LogManagerBufferTest_UpdateConfigRejectsInvalidSeverity
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L375 (Test: |
Test Case: UpdateConfigRejectsZeroMaxEntries TEST_LogManagerBufferTest_UpdateConfigRejectsZeroMaxEntries
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L381 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L148 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L97 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L127 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L92 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L86 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L80 (Test: |
Test Case: DefaultManagesIngestionPreservesCurrentBehavior TEST_LogManagerIngestionTest_DefaultManagesIngestionPreservesCurrentBehavior
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L661 (Test: |
Test Case: ManagesIngestionDelegatesToPlugin TEST_LogManagerIngestionTest_ManagesIngestionDelegatesToPlugin
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L591 (Test: |
Test Case: ManagesIngestionGetConfigDelegatesToPlugin TEST_LogManagerIngestionTest_ManagesIngestionGetConfigDelegatesToPlugin
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L623 (Test: |
Test Case: ManagesIngestionLocalBufferBypassed TEST_LogManagerIngestionTest_ManagesIngestionLocalBufferBypassed
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L641 (Test: |
Test Case: ManagesIngestionStillValidatesBeforeDelegation TEST_LogManagerIngestionTest_ManagesIngestionStillValidatesBeforeDelegation
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L694 (Test: |
Test Case: ManagesIngestionUpdateConfigDelegatesToPlugin TEST_LogManagerIngestionTest_ManagesIngestionUpdateConfigDelegatesToPlugin
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L608 (Test: |
Test Case: NoPluginPreservesDefaultBehavior TEST_LogManagerIngestionTest_NoPluginPreservesDefaultBehavior
|
No plugin manager at all - ring buffer works as before Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L679 (Test: |
Test Case: PluginGetConfigThrowReturnsError TEST_LogManagerIngestionTest_PluginGetConfigThrowReturnsError
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L725 (Test: |
Test Case: PluginGetLogsThrowReturnsError TEST_LogManagerIngestionTest_PluginGetLogsThrowReturnsError
|
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L714 (Test: |
Test Case: ResolverMatchesBareNameReturnsEntityId TEST_LogManagerResolverTest_ResolverMatchesBareNameReturnsEntityId
|
Resolver returns “my_app” when called with bare name (no leading slash) Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L841 (Test: |
Test Case: ResolverMatchesWithSlashPrefixReturnsEntityId TEST_LogManagerResolverTest_ResolverMatchesWithSlashPrefixReturnsEntityId
|
Resolver returns “temp_sensor_app” when called with “/powertrain/temp_sensor” Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L820 (Test: |
Test Case: ResolverReturnsEmptyFallsBackToLastSegment TEST_LogManagerResolverTest_ResolverReturnsEmptyFallsBackToLastSegment
|
Resolver always returns empty -> on_rosout falls back to last path segment Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L860 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L66 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L40 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_log_manager.cpp#L52 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L347 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_manifest_parser.cpp#L273 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_manifest_parser.cpp#L427 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_manifest_parser.cpp#L403 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_manifest_parser.cpp#L415 (Test: |
Test Case: ParseScriptsTimeoutClampedToMinimum TEST_ManifestParserTest_ParseScriptsTimeoutClampedToMinimum
|
Implementation: src/ros2_medkit_gateway/test/test_manifest_parser.cpp#L439 (Test: |
Two layers provide the same App with different is_online values Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L859 (Test: |
Test Case: LayerExceptionDoesNotCrashPipeline TEST_MergePipelineTest_LayerExceptionDoesNotCrashPipeline
|
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: |
Manifest layer provides a component Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L451 (Test: |
Test Case: ThreeLayerMerge_PerFieldGroupOwnerTracking TEST_MergePipelineTest_ThreeLayerMerge_PerFieldGroupOwnerTracking
|
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: |
Test Case: ThreeLayerMerge_PluginEnrichesManifestEntity TEST_MergePipelineTest_ThreeLayerMerge_PluginEnrichesManifestEntity
|
Manifest: component “engine” with AUTHORITATIVE identity Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L802 (Test: |
Verify enum values exist and are distinct Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L65 (Test: |
Test Case: AlwaysIncludesGenericErrorResponse TEST_OpenApiSpecBuilderTest_AlwaysIncludesGenericErrorResponse
|
Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L189 (Test: |
Test Case: BuildContainsComponentsSchemas TEST_OpenApiSpecBuilderTest_BuildContainsComponentsSchemas
|
Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L167 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L39 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L131 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L91 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L47 (Test: |
Test Case: BuildProducesOpenApi310Version TEST_OpenApiSpecBuilderTest_BuildProducesOpenApi310Version
|
Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L32 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L265 (Test: |
Test Case: GenericErrorSchemaAlwaysPresent TEST_OpenApiSpecBuilderTest_GenericErrorSchemaAlwaysPresent
|
Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L331 (Test: |
Test Case: NonEmptySchemasArePresentInOutput TEST_OpenApiSpecBuilderTest_NonEmptySchemasArePresentInOutput
|
Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L341 (Test: |
Test Case: SecuritySchemeAddsToComponents TEST_OpenApiSpecBuilderTest_SecuritySchemeAddsToComponents
|
Implementation: src/ros2_medkit_gateway/test/test_openapi_spec_builder.cpp#L225 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_cyclic_subscription_handlers.cpp#L31 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_cyclic_subscription_handlers.cpp#L137 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L257 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L374 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L288 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L385 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L132 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L152 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L160 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L40 (Test: |
Test Case: EntityDetailConcretePathOmitsParameters TEST_PathBuilderTest_EntityDetailConcretePathOmitsParameters
|
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: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L90 (Test: |
Test Case: EntityDetailTemplatePathHasParameters TEST_PathBuilderTest_EntityDetailTemplatePathHasParameters
|
Default (use_template=true) should still include path parameters Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L118 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L430 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L313 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L341 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L204 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L226 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_builder.cpp#L408 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L73 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L37 (Test: |
“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: |
Test Case: HostsUnderFunctionsIsResourceCollection TEST_PathResolverTest_HostsUnderFunctionsIsResourceCollection
|
Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L185 (Test: |
Topic names like /sensors/temperature produce multi-segment resource IDs Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L234 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L87 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L52 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L26 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L44 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_path_resolver.cpp#L60 (Test: |
Test Case: BackwardCompatibleWithoutResolver TEST_PerEntityStorageTest_BackwardCompatibleWithoutResolver
|
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: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L318 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L269 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L336 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L280 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L307 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L83 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L167 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L126 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L58 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L74 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L151 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L106 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_pid_cache.cpp#L141 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L407 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L62 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L48 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L77 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L84 (Test: |
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: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_procfs_plugin.cpp#L21 (Test: |
Test Case: ProcessInfoToJsonNegativeUptimeClamped TEST_ProcfsPlugin_ProcessInfoToJsonNegativeUptimeClamped
|
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_procfs_plugin.cpp#L68 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_procfs_plugin.cpp#L58 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L50 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L59 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L83 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L101 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L128 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L72 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L112 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L142 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_resource_change_notifier.cpp#L218 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_resource_change_notifier.cpp#L34 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L120 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L84 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L91 (Test: |
Test Case: ConstructorSucceedsWithValidParams TEST_RosbagCaptureTest_ConstructorSucceedsWithValidParams
|
Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L98 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L112 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L105 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_rosbag_capture.cpp#L130 (Test: |
Test Case: EmptyBuilderProducesEmptyDescriptions TEST_RouteDescriptionsTest_EmptyBuilderProducesEmptyDescriptions
|
Implementation: src/ros2_medkit_gateway/test/test_route_descriptions.cpp#L37 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_route_descriptions.cpp#L70 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_route_descriptions.cpp#L82 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_route_descriptions.cpp#L98 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_route_descriptions.cpp#L46 (Test: |
Test Case: AuthEnabledAdds401And403Responses TEST_RouteRegistryTest_AuthEnabledAdds401And403Responses
|
Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L128 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L548 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L221 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L264 (Test: |
Test Case: ToOpenapiPathsContainsRegisteredRoute TEST_RouteRegistryTest_ToOpenapiPathsContainsRegisteredRoute
|
Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L44 (Test: |
Test Case: ToOpenapiPathsMultipleMethodsSamePath TEST_RouteRegistryTest_ToOpenapiPathsMultipleMethodsSamePath
|
Implementation: src/ros2_medkit_gateway/test/test_route_registry.cpp#L56 (Test: |
Test Case: ToRegexPathRootBecomesRootAnchored TEST_RouteRegistryTest_ToRegexPathRootBecomesRootAnchored
|
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: |
Implementation: src/ros2_medkit_gateway/test/test_merge_pipeline.cpp#L374 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_runtime_linker.cpp#L77 (Test: |
Test Case: OrphanPolicy_IncludeAsOrphan_NoError TEST_RuntimeLinkerTest_OrphanPolicy_IncludeAsOrphan_NoError
|
Implementation: src/ros2_medkit_gateway/test/test_runtime_linker.cpp#L307 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_runtime_linker.cpp#L293 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_schema_builder.cpp#L230 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_schema_builder.cpp#L241 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L427 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L437 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L537 (Test: |
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: |
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L416 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L407 (Test: |
Test Case: StartExecutionReturns202WithLocation TEST_ScriptHandlersErrorMappingTest_StartExecutionReturns202WithLocation
|
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L518 (Test: |
Test Case: UploadRejectsWrongContentType TEST_ScriptHandlersErrorMappingTest_UploadRejectsWrongContentType
|
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L497 (Test: |
Test Case: UploadReturns201WithLocation TEST_ScriptHandlersErrorMappingTest_UploadReturns201WithLocation
|
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L471 (Test: |
Test Case: ControlExecutionReturns501WhenNoBackend TEST_ScriptHandlersNoBackendTest_ControlExecutionReturns501WhenNoBackend
|
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L271 (Test: |
Test Case: DeleteReturns501WhenNoBackend TEST_ScriptHandlersNoBackendTest_DeleteReturns501WhenNoBackend
|
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L247 (Test: |
Test Case: GetExecutionReturns501WhenNoBackend TEST_ScriptHandlersNoBackendTest_GetExecutionReturns501WhenNoBackend
|
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L263 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L239 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L231 (Test: |
Test Case: StartExecutionReturns501WhenNoBackend TEST_ScriptHandlersNoBackendTest_StartExecutionReturns501WhenNoBackend
|
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L255 (Test: |
Test Case: UploadReturns501WhenNoBackend TEST_ScriptHandlersNoBackendTest_UploadReturns501WhenNoBackend
|
Implementation: src/ros2_medkit_gateway/test/test_script_handlers.cpp#L221 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L232 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L208 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L202 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L224 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L181 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L188 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L173 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L215 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_script_manager.cpp#L195 (Test: |
Test Case: BackgroundCaptureInitializesSubscriptions TEST_SnapshotCaptureTest_BackgroundCaptureInitializesSubscriptions
|
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L201 (Test: |
Test Case: ConfigAccessorReturnsCorrectValues TEST_SnapshotCaptureTest_ConfigAccessorReturnsCorrectValues
|
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L169 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L48 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L54 (Test: |
Test Case: ConstructorSucceedsWithValidParams TEST_SnapshotCaptureTest_ConstructorSucceedsWithValidParams
|
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L60 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L67 (Test: |
Test Case: EmptyConfigurationHandledGracefully TEST_SnapshotCaptureTest_EmptyConfigurationHandledGracefully
|
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L186 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L145 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L81 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L156 (Test: |
Test Case: OnDemandCaptureHandlesNonExistentTopic TEST_SnapshotCaptureTest_OnDemandCaptureHandlesNonExistentTopic
|
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L213 (Test: |
Test Case: ClearFaultDeletesAssociatedSnapshots TEST_SqliteFaultStorageTest_ClearFaultDeletesAssociatedSnapshots
|
Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L683 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L646 (Test: |
Test Case: GetAllRosbagFilesReturnsSortedByCreatedAt TEST_SqliteFaultStorageTest_GetAllRosbagFilesReturnsSortedByCreatedAt
|
Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L771 (Test: |
Test Case: ListRosbagsForEntityFiltersCorrectly TEST_SqliteFaultStorageTest_ListRosbagsForEntityFiltersCorrectly
|
Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L724 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L616 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L677 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_sqlite_storage.cpp#L586 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_sse_transport_provider.cpp#L32 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_sse_transport_provider.cpp#L37 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_sse_transport_provider.cpp#L53 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L188 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L137 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L176 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L94 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L165 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_proc_reader.cpp#L200 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L52 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L37 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L27 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L47 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L32 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L22 (Test: |
Implementation: src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/test/test_systemd_plugin.cpp#L42 (Test: |
Test Case: test_03_authenticate_valid_credentials TEST_TestAuthenticationIntegration_test_03_authenticate_valid_credentials
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_auth.test.py#L97 (Test: |
Test Case: test_06_authenticate_form_urlencoded TEST_TestAuthenticationIntegration_test_06_authenticate_form_urlencoded
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_auth.test.py#L146 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_auth.test.py#L158 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L167 (Test: |
Test Case: test_bulk_data_list_categories_all_entity_types TEST_TestBulkDataApi_test_bulk_data_list_categories_all_entity_types
|
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 Case: test_bulk_data_list_categories_entity_not_found TEST_TestBulkDataApi_test_bulk_data_list_categories_entity_not_found
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L94 (Test: |
Test Case: test_bulk_data_list_categories_success TEST_TestBulkDataApi_test_bulk_data_list_categories_success
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L51 (Test: |
Test Case: test_bulk_data_list_descriptors_empty_result TEST_TestBulkDataApi_test_bulk_data_list_descriptors_empty_result
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L136 (Test: |
Test Case: test_bulk_data_list_descriptors_structure TEST_TestBulkDataApi_test_bulk_data_list_descriptors_structure
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L108 (Test: |
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 Case: test_bulk_data_unknown_category_returns_404 TEST_TestBulkDataApi_test_bulk_data_unknown_category_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_bulk_data_api.test.py#L153 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L47 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L80 (Test: |
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 Case: test_04_delete_configuration_resets_to_default TEST_TestConfigurationApi_test_04_delete_configuration_resets_to_default
|
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 Case: test_05_configurations_nonexistent_app TEST_TestConfigurationApi_test_05_configurations_nonexistent_app
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L202 (Test: |
Test Case: test_06_configuration_nonexistent_parameter TEST_TestConfigurationApi_test_06_configuration_nonexistent_parameter
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L220 (Test: |
Test Case: test_07_set_configuration_missing_value TEST_TestConfigurationApi_test_07_set_configuration_missing_value
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L236 (Test: |
Test Case: test_08_root_endpoint_includes_configurations TEST_TestConfigurationApi_test_08_root_endpoint_includes_configurations
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_configuration_api.test.py#L253 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L195 (Test: |
Test Case: test_container_id_is_64_char_hex TEST_TestContainerAppEndpoint_test_container_id_is_64_char_hex
|
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L114 (Test: |
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: |
docker-compose.container.yml sets 512MB = 536870912 bytes. Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L146 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L99 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L132 (Test: |
Test Case: test_containers_include_node_ids TEST_TestContainerComponentEndpoint_test_containers_include_node_ids
|
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L233 (Test: |
Test Case: test_containers_include_runtime TEST_TestContainerComponentEndpoint_test_containers_include_runtime
|
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L249 (Test: |
Test Case: test_returns_containers_aggregation TEST_TestContainerComponentEndpoint_test_returns_containers_aggregation
|
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L218 (Test: |
Test Case: test_nonexistent_app_returns_404 TEST_TestContainerErrorHandling_test_nonexistent_app_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L267 (Test: |
Test Case: test_nonexistent_component_returns_404 TEST_TestContainerErrorHandling_test_nonexistent_component_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_container_introspection.py#L278 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L100 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L81 (Test: |
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: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L119 (Test: |
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: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L142 (Test: |
Test Case: test_component_nonexistent_topic_metadata_only TEST_TestDataRead_test_component_nonexistent_topic_metadata_only
|
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 Case: test_component_topic_data_structure TEST_TestDataRead_test_component_topic_data_structure
|
Uses synthetic ‘powertrain’ component. Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L248 (Test: |
Test Case: test_component_topic_nonexistent_component_error TEST_TestDataRead_test_component_topic_nonexistent_component_error
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L310 (Test: |
Uses synthetic ‘chassis’ component. Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L224 (Test: |
Uses synthetic ‘powertrain’ component. Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L200 (Test: |
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: |
Uses synthetic ‘powertrain’ component. Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L348 (Test: |
Uses synthetic ‘powertrain’ component. Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L329 (Test: |
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: |
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: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L456 (Test: |
The root area aggregates all entities in the system. Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L474 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L539 (Test: |
Test Case: test_list_function_data_nonexistent TEST_TestDataRead_test_list_function_data_nonexistent
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_read.test.py#L521 (Test: |
Uses synthetic ‘chassis’ component. Implementation: src/ros2_medkit_integration_tests/test/features/test_data_write.test.py#L47 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_write.test.py#L156 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_write.test.py#L137 (Test: |
Test Case: test_publish_validation_invalid_type_format TEST_TestDataWrite_test_publish_validation_invalid_type_format
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_write.test.py#L107 (Test: |
Test Case: test_publish_validation_missing_data TEST_TestDataWrite_test_publish_validation_missing_data
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_write.test.py#L90 (Test: |
Test Case: test_publish_validation_missing_type TEST_TestDataWrite_test_publish_validation_missing_type
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_data_write.test.py#L73 (Test: |
Test Case: test_apps_docs_returns_entity_collection_spec TEST_TestDocsEndpoint_test_apps_docs_returns_entity_collection_spec
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L80 (Test: |
Test Case: test_areas_docs_returns_entity_collection_spec TEST_TestDocsEndpoint_test_areas_docs_returns_entity_collection_spec
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L114 (Test: |
Test Case: test_components_docs_returns_entity_collection_spec TEST_TestDocsEndpoint_test_components_docs_returns_entity_collection_spec
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L97 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L157 (Test: |
Test Case: test_logs_configuration_schema_field_names TEST_TestDocsEndpoint_test_logs_configuration_schema_field_names
|
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 Case: test_nonexistent_entity_docs_returns_404 TEST_TestDocsEndpoint_test_nonexistent_entity_docs_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L236 (Test: |
Test Case: test_nonexistent_path_docs_returns_404 TEST_TestDocsEndpoint_test_nonexistent_path_docs_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L249 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L185 (Test: |
Test Case: test_root_docs_returns_openapi_spec TEST_TestDocsEndpoint_test_root_docs_returns_openapi_spec
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L56 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L276 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L262 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_docs_endpoint.test.py#L131 (Test: |
Test Case: test_area_components_nonexistent_error TEST_TestEntityListing_test_area_components_nonexistent_error
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L153 (Test: |
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: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L64 (Test: |
Test Case: test_invalid_app_id_special_chars TEST_TestEntityListing_test_invalid_app_id_special_chars
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L171 (Test: |
Test Case: test_invalid_area_id_special_chars TEST_TestEntityListing_test_invalid_area_id_special_chars
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L203 (Test: |
Test Case: test_invalid_ids_with_special_chars TEST_TestEntityListing_test_invalid_ids_with_special_chars
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L256 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L51 (Test: |
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: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_listing.test.py#L231 (Test: |
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 Case: test_component_route_rejects_app_id_configurations TEST_TestEntityRouting_test_component_route_rejects_app_id_configurations
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_routing.test.py#L135 (Test: |
Test Case: test_component_route_rejects_app_id_data TEST_TestEntityRouting_test_component_route_rejects_app_id_data
|
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 Case: test_component_route_rejects_app_id_faults TEST_TestEntityRouting_test_component_route_rejects_app_id_faults
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_routing.test.py#L152 (Test: |
Test Case: test_component_route_rejects_app_id_operations TEST_TestEntityRouting_test_component_route_rejects_app_id_operations
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_entity_routing.test.py#L118 (Test: |
Test Case: test_16_snapshot_capture_on_fault_confirmation TEST_TestFaultManagerIntegration_test_16_snapshot_capture_on_fault_confirmation
|
Test that snapshot is captured when fault is confirmed. Implementation: src/ros2_medkit_fault_manager/test/test_integration.test.py#L559 (Test: |
Test Case: test_17_get_snapshots_nonexistent_fault TEST_TestFaultManagerIntegration_test_17_get_snapshots_nonexistent_fault
|
Test GetSnapshots returns error for nonexistent fault. Implementation: src/ros2_medkit_fault_manager/test/test_integration.test.py#L636 (Test: |
Test Case: test_18_get_snapshots_empty_fault_code TEST_TestFaultManagerIntegration_test_18_get_snapshots_empty_fault_code
|
Test GetSnapshots returns error for empty fault code. Implementation: src/ros2_medkit_fault_manager/test/test_integration.test.py#L652 (Test: |
Test Case: test_19_snapshot_with_topic_filter TEST_TestFaultManagerIntegration_test_19_snapshot_with_topic_filter
|
Test GetSnapshots with specific topic filter. Implementation: src/ros2_medkit_fault_manager/test/test_integration.test.py#L668 (Test: |
Test Case: test_20_snapshot_config_loads_patterns TEST_TestFaultManagerIntegration_test_20_snapshot_config_loads_patterns
|
Test that pattern-based config is loaded correctly. Implementation: src/ros2_medkit_fault_manager/test/test_integration.test.py#L699 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_faults_api.test.py#L103 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_faults_api.test.py#L121 (Test: |
Test Case: test_list_faults_response_structure TEST_TestFaultsApi_test_list_faults_response_structure
|
In the heuristic discovery model, ROS nodes are Apps. Implementation: src/ros2_medkit_integration_tests/test/features/test_faults_api.test.py#L79 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_faults_api.test.py#L48 (Test: |
Test Case: test_app_accessible_without_areas TEST_TestFlatEntityTree_test_app_accessible_without_areas
|
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: |
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: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_flat_entity_tree.test.py#L68 (Test: |
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: |
Expected: autonomous-navigation, teleoperation. Implementation: src/ros2_medkit_integration_tests/test/features/test_flat_entity_tree.test.py#L148 (Test: |
Expected: raspberry-pi, opencr-board, lds-sensor. Implementation: src/ros2_medkit_integration_tests/test/features/test_flat_entity_tree.test.py#L102 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L871 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L789 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L799 (Test: |
Test Case: test_execution_update_execution_not_found TEST_TestGatewayNode_test_execution_update_execution_not_found
|
Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L695 (Test: |
Test Case: test_execution_update_invalid_component_id TEST_TestGatewayNode_test_execution_update_invalid_component_id
|
Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L655 (Test: |
Test Case: test_execution_update_missing_capability TEST_TestGatewayNode_test_execution_update_missing_capability
|
Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L668 (Test: |
Test Case: test_execution_update_unsupported_capability TEST_TestGatewayNode_test_execution_update_unsupported_capability
|
Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L681 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L292 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L308 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L232 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_gateway_node.cpp#L267 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L165 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L90 (Test: |
Test Case: test_area_detail_has_capability_uris TEST_TestHateoas_test_area_detail_has_capability_uris
|
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: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L110 (Test: |
Test Case: test_component_detail_has_capability_uris TEST_TestHateoas_test_component_detail_has_capability_uris
|
SOVD requires entity details to have flat capability URIs. Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L134 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L70 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L292 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L375 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L401 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L348 (Test: |
Test Case: test_function_detail_has_capability_uris TEST_TestHateoas_test_function_detail_has_capability_uris
|
Requires hybrid discovery mode with a manifest that defines functions. Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L210 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L464 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L318 (Test: |
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: |
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: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L238 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_hateoas.test.py#L261 (Test: |
Test Case: test_x_medkit_extension_in_list_responses TEST_TestHateoas_test_x_medkit_extension_in_list_responses
|
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: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_health.test.py#L131 (Test: |
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: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_health.test.py#L47 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_health.test.py#L55 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_health.test.py#L114 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_health.test.py#L93 (Test: |
App count must match manifest exactly - no underscored duplicates. Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L156 (Test: |
Area count must match manifest exactly - no synthetic extras. Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L119 (Test: |
Component count must match manifest exactly - no underscored duplicates. Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L135 (Test: |
Function count must match manifest exactly. Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L172 (Test: |
Health endpoint should confirm hybrid discovery mode. Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L268 (Test: |
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 Case: test_no_root_or_synthetic_areas TEST_TestHybridSuppression_test_no_root_or_synthetic_areas
|
No ‘root’ or underscored synthetic areas should exist. Implementation: src/ros2_medkit_integration_tests/test/features/test_hybrid_suppression.test.py#L230 (Test: |
Test Case: test_no_underscored_app_duplicates TEST_TestHybridSuppression_test_no_underscored_app_duplicates
|
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 Case: test_no_underscored_component_duplicates TEST_TestHybridSuppression_test_no_underscored_component_duplicates
|
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 Case: test_global_clear_skips_locked_entity_faults TEST_TestLockingFaults_test_global_clear_skips_locked_entity_faults
|
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 Case: test_component_lock_allows_owner_on_child TEST_TestLockingPropagation_test_component_lock_allows_owner_on_child
|
Lock owner can still access child app. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking_propagation.test.py#L107 (Test: |
Test Case: test_component_lock_blocks_child_app TEST_TestLockingPropagation_test_component_lock_blocks_child_app
|
Lock on component blocks mutating operations on child app. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking_propagation.test.py#L78 (Test: |
Acquire a lock on an app and verify the response. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L103 (Test: |
Acquire a scoped lock. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L119 (Test: |
Test Case: test_acquire_without_client_id_returns_400 TEST_TestLocking_test_acquire_without_client_id_returns_400
|
Acquire without X-Client-Id header returns 400. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L297 (Test: |
Test Case: test_acquire_without_expiration_returns_400 TEST_TestLocking_test_acquire_without_expiration_returns_400
|
Acquire without lock_expiration returns 400. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L307 (Test: |
Second acquire by different client returns 409. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L313 (Test: |
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: |
Acquire then extend a lock’s expiration. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L174 (Test: |
Acquire then get lock details by lock ID. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L155 (Test: |
Acquire then list locks. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L131 (Test: |
List locks when none exist returns empty items. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L148 (Test: |
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: |
Lock with short TTL expires and no longer blocks access. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L345 (Test: |
Acquiring lock on nonexistent entity returns 404. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L371 (Test: |
The ‘owned’ field reflects the requesting client. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L272 (Test: |
Acquire then release a lock, verify it’s gone. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L192 (Test: |
Releasing another client’s lock returns 403. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L328 (Test: |
Test Case: test_scoped_lock_allows_other_collections TEST_TestLocking_test_scoped_lock_allows_other_collections
|
Scoped lock on configurations does not block data writes. Implementation: src/ros2_medkit_integration_tests/test/features/test_locking.test.py#L230 (Test: |
Test Case: test_configurations_subscription_create TEST_TestMultiCollectionSubscriptions_test_configurations_subscription_create
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L178 (Test: |
Test Case: test_data_subscription_create TEST_TestMultiCollectionSubscriptions_test_data_subscription_create
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L142 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L346 (Test: |
Test Case: test_faults_subscription_create TEST_TestMultiCollectionSubscriptions_test_faults_subscription_create
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L161 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L302 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L280 (Test: |
Test Case: test_logs_subscription_create TEST_TestMultiCollectionSubscriptions_test_logs_subscription_create
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L195 (Test: |
Test Case: test_logs_subscription_sse_stream TEST_TestMultiCollectionSubscriptions_test_logs_subscription_sse_stream
|
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 Case: test_update_subscription_interval TEST_TestMultiCollectionSubscriptions_test_update_subscription_interval
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_multi_collection_subscriptions.test.py#L325 (Test: |
Test Case: test_cancel_nonexistent_execution TEST_TestOperationsApi_test_cancel_nonexistent_execution
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L462 (Test: |
Test Case: test_create_execution_for_service TEST_TestOperationsApi_test_create_execution_for_service
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L426 (Test: |
Test Case: test_get_operation_details_for_apps TEST_TestOperationsApi_test_get_operation_details_for_apps
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L331 (Test: |
Test Case: test_get_operation_details_for_service TEST_TestOperationsApi_test_get_operation_details_for_service
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L279 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L367 (Test: |
Test Case: test_list_executions_returns_items_array TEST_TestOperationsApi_test_list_executions_returns_items_array
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L387 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L481 (Test: |
Test Case: test_operation_call_calibrate_service TEST_TestOperationsApi_test_operation_call_calibrate_service
|
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 Case: test_operation_call_invalid_entity_id TEST_TestOperationsApi_test_operation_call_invalid_entity_id
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L113 (Test: |
Test Case: test_operation_call_invalid_operation_name TEST_TestOperationsApi_test_operation_call_invalid_operation_name
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L140 (Test: |
Test Case: test_operation_call_nonexistent_entity TEST_TestOperationsApi_test_operation_call_nonexistent_entity
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L97 (Test: |
Test Case: test_operation_call_nonexistent_operation TEST_TestOperationsApi_test_operation_call_nonexistent_operation
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L79 (Test: |
Test Case: test_operation_call_with_invalid_json TEST_TestOperationsApi_test_operation_call_with_invalid_json
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L167 (Test: |
Test Case: test_operations_listed_in_app_discovery TEST_TestOperationsApi_test_operations_listed_in_app_discovery
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L188 (Test: |
Test Case: test_root_endpoint_includes_operations TEST_TestOperationsApi_test_root_endpoint_includes_operations
|
Implementation: src/ros2_medkit_integration_tests/test/features/test_operations_api.test.py#L222 (Test: |
Test Case: test_01_create_action_execution_and_poll_to_completion TEST_TestScenarioActionLifecycle_test_01_create_action_execution_and_poll_to_completion
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L100 (Test: |
Test Case: test_02_cancel_action_execution TEST_TestScenarioActionLifecycle_test_02_cancel_action_execution
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L118 (Test: |
Test Case: test_03_service_execution_returns_immediately TEST_TestScenarioActionLifecycle_test_03_service_execution_returns_immediately
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L145 (Test: |
Test Case: test_04_execution_appears_in_list TEST_TestScenarioActionLifecycle_test_04_execution_appears_in_list
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L182 (Test: |
Test Case: test_06_get_operation_details TEST_TestScenarioActionLifecycle_test_06_get_operation_details
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L252 (Test: |
Test Case: test_07_get_execution_status TEST_TestScenarioActionLifecycle_test_07_get_execution_status
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_action_lifecycle.test.py#L297 (Test: |
Test Case: test_08_update_execution_not_implemented TEST_TestScenarioActionLifecycle_test_08_update_execution_not_implemented
|
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 Case: test_01_download_rosbag_success TEST_TestScenarioBulkDataDownload_test_01_download_rosbag_success
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_download.test.py#L61 (Test: |
Test Case: test_02_download_wrong_entity_returns_404 TEST_TestScenarioBulkDataDownload_test_02_download_wrong_entity_returns_404
|
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 Case: test_03_verify_complete_rosbag_content TEST_TestScenarioBulkDataDownload_test_03_verify_complete_rosbag_content
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_download.test.py#L121 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L136 (Test: |
Test Case: test_02_upload_returns_location_header TEST_TestScenarioBulkDataUpload_test_02_upload_returns_location_header
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L152 (Test: |
Test Case: test_03_upload_with_description TEST_TestScenarioBulkDataUpload_test_03_upload_with_description
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L170 (Test: |
Test Case: test_04_upload_with_metadata TEST_TestScenarioBulkDataUpload_test_04_upload_with_metadata
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L182 (Test: |
Test Case: test_05_upload_missing_file_field TEST_TestScenarioBulkDataUpload_test_05_upload_missing_file_field
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L196 (Test: |
Test Case: test_06_upload_unknown_category TEST_TestScenarioBulkDataUpload_test_06_upload_unknown_category
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L207 (Test: |
Test Case: test_07_upload_rosbags_rejected TEST_TestScenarioBulkDataUpload_test_07_upload_rosbags_rejected
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L217 (Test: |
Test Case: test_08_upload_nonexistent_entity TEST_TestScenarioBulkDataUpload_test_08_upload_nonexistent_entity
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L228 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L238 (Test: |
Test Case: test_10_upload_to_functions_405 TEST_TestScenarioBulkDataUpload_test_10_upload_to_functions_405
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L249 (Test: |
Test Case: test_11_delete_uploaded_item TEST_TestScenarioBulkDataUpload_test_11_delete_uploaded_item
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L261 (Test: |
Test Case: test_12_delete_nonexistent_item TEST_TestScenarioBulkDataUpload_test_12_delete_nonexistent_item
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L276 (Test: |
Test Case: test_13_delete_rosbags_rejected TEST_TestScenarioBulkDataUpload_test_13_delete_rosbags_rejected
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L285 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L294 (Test: |
Test Case: test_15_list_categories_includes_configured TEST_TestScenarioBulkDataUpload_test_15_list_categories_includes_configured
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L306 (Test: |
Test Case: test_16_list_descriptors_after_upload TEST_TestScenarioBulkDataUpload_test_16_list_descriptors_after_upload
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L319 (Test: |
Test Case: test_17_download_uploaded_file TEST_TestScenarioBulkDataUpload_test_17_download_uploaded_file
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L335 (Test: |
Test Case: test_18_download_nonexistent_returns_404 TEST_TestScenarioBulkDataUpload_test_18_download_nonexistent_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L354 (Test: |
Test Case: test_19_list_empty_after_delete TEST_TestScenarioBulkDataUpload_test_19_list_empty_after_delete
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L363 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_bulk_data_upload.test.py#L385 (Test: |
Test Case: test_01_list_configurations TEST_TestScenarioConfigManagement_test_01_list_configurations
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_config_management.test.py#L64 (Test: |
Test Case: test_02_get_configuration_value TEST_TestScenarioConfigManagement_test_02_get_configuration_value
|
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 Case: test_03_set_and_verify_configuration TEST_TestScenarioConfigManagement_test_03_set_and_verify_configuration
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_config_management.test.py#L104 (Test: |
Test Case: test_04_reset_all_configurations TEST_TestScenarioConfigManagement_test_04_reset_all_configurations
|
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 Case: test_05_reset_single_configuration TEST_TestScenarioConfigManagement_test_05_reset_single_configuration
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_config_management.test.py#L182 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_data_publish_verify.test.py#L63 (Test: |
Test Case: test_02_publish_command_to_actuator TEST_TestScenarioDataPublishVerify_test_02_publish_command_to_actuator
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_data_publish_verify.test.py#L87 (Test: |
Test Case: test_03_read_actuator_feedback TEST_TestScenarioDataPublishVerify_test_03_read_actuator_feedback
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_data_publish_verify.test.py#L112 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L112 (Test: |
Test Case: test_02_area_with_description TEST_TestScenarioDiscoveryHybrid_test_02_area_with_description
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L122 (Test: |
Test Case: test_03_area_subareas_hierarchy TEST_TestScenarioDiscoveryHybrid_test_03_area_subareas_hierarchy
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L132 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L142 (Test: |
Test Case: test_05_components_from_manifest TEST_TestScenarioDiscoveryHybrid_test_05_components_from_manifest
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L155 (Test: |
Test Case: test_06_component_type_preserved TEST_TestScenarioDiscoveryHybrid_test_06_component_type_preserved
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L165 (Test: |
Test Case: test_07_component_area_relationship TEST_TestScenarioDiscoveryHybrid_test_07_component_area_relationship
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L173 (Test: |
Test Case: test_08_component_subcomponents TEST_TestScenarioDiscoveryHybrid_test_08_component_subcomponents
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L184 (Test: |
Test Case: test_09_component_subcomponents_not_found TEST_TestScenarioDiscoveryHybrid_test_09_component_subcomponents_not_found
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L193 (Test: |
Test Case: test_10_component_depends_on_returns_items TEST_TestScenarioDiscoveryHybrid_test_10_component_depends_on_returns_items
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L202 (Test: |
Test Case: test_11_component_depends_on_empty TEST_TestScenarioDiscoveryHybrid_test_11_component_depends_on_empty
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L219 (Test: |
Test Case: test_12_component_depends_on_not_found TEST_TestScenarioDiscoveryHybrid_test_12_component_depends_on_not_found
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L228 (Test: |
Test Case: test_13_component_capabilities_includes_depends_on_link TEST_TestScenarioDiscoveryHybrid_test_13_component_capabilities_includes_depends_on_link
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L235 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L254 (Test: |
Test Case: test_15_app_online_with_runtime_node TEST_TestScenarioDiscoveryHybrid_test_15_app_online_with_runtime_node
|
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 Case: test_19_app_depends_on_relationship TEST_TestScenarioDiscoveryHybrid_test_19_app_depends_on_relationship
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L333 (Test: |
Test Case: test_20_functions_from_manifest TEST_TestScenarioDiscoveryHybrid_test_20_functions_from_manifest
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L346 (Test: |
Test Case: test_21_function_hosts_relationship TEST_TestScenarioDiscoveryHybrid_test_21_function_hosts_relationship
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L359 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_hybrid.test.py#L383 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L109 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L128 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L143 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L153 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L165 (Test: |
Test Case: test_07_get_component_details TEST_TestScenarioDiscoveryManifest_test_07_get_component_details
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L178 (Test: |
Test Case: test_09_component_subcomponents TEST_TestScenarioDiscoveryManifest_test_09_component_subcomponents
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L194 (Test: |
Test Case: test_10_component_subcomponents_not_found TEST_TestScenarioDiscoveryManifest_test_10_component_subcomponents_not_found
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L203 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L216 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L232 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L263 (Test: |
Test Case: test_17_app_configurations_endpoint TEST_TestScenarioDiscoveryManifest_test_17_app_configurations_endpoint
|
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 Case: test_18_app_data_item_endpoint TEST_TestScenarioDiscoveryManifest_test_18_app_data_item_endpoint
|
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: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L312 (Test: |
Test Case: test_20_get_function_details TEST_TestScenarioDiscoveryManifest_test_20_get_function_details
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L328 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_discovery_manifest.test.py#L343 (Test: |
Test Case: test_01_fault_response_structure TEST_TestScenarioFaultInspection_test_01_fault_response_structure
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_inspection.test.py#L89 (Test: |
Test Case: test_02_fault_status_object_structure TEST_TestScenarioFaultInspection_test_02_fault_status_object_structure
|
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 Case: test_03_fault_environment_data_structure TEST_TestScenarioFaultInspection_test_03_fault_environment_data_structure
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_inspection.test.py#L123 (Test: |
Test Case: test_04_fault_snapshot_freeze_frame TEST_TestScenarioFaultInspection_test_04_fault_snapshot_freeze_frame
|
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 Case: test_05_fault_snapshot_rosbag_has_bulk_data_uri TEST_TestScenarioFaultInspection_test_05_fault_snapshot_rosbag_has_bulk_data_uri
|
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 Case: test_06_fault_x_medkit_extensions TEST_TestScenarioFaultInspection_test_06_fault_x_medkit_extensions
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_inspection.test.py#L174 (Test: |
Test Case: test_01_wait_for_faults_to_appear TEST_TestScenarioFaultLifecycle_test_01_wait_for_faults_to_appear
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_lifecycle.test.py#L71 (Test: |
Test Case: test_02_delete_all_faults_for_component TEST_TestScenarioFaultLifecycle_test_02_delete_all_faults_for_component
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_lifecycle.test.py#L88 (Test: |
Test Case: test_03_delete_all_faults_for_app TEST_TestScenarioFaultLifecycle_test_03_delete_all_faults_for_app
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_lifecycle.test.py#L103 (Test: |
Test Case: test_04_delete_all_faults_nonexistent TEST_TestScenarioFaultLifecycle_test_04_delete_all_faults_nonexistent
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_fault_lifecycle.test.py#L117 (Test: |
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 Case: test_01_create_subscription_returns_201_with_correct_schema TEST_TestScenarioSubscriptions_test_01_create_subscription_returns_201_with_correct_schema
|
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 Case: test_02_list_subscriptions_returns_created_ones TEST_TestScenarioSubscriptions_test_02_list_subscriptions_returns_created_ones
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L182 (Test: |
Test Case: test_03_get_single_subscription TEST_TestScenarioSubscriptions_test_03_get_single_subscription
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L212 (Test: |
Test Case: test_04_update_subscription_interval TEST_TestScenarioSubscriptions_test_04_update_subscription_interval
|
Dashboard user decides they need higher-frequency updates. Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L231 (Test: |
Test Case: test_05_update_subscription_duration TEST_TestScenarioSubscriptions_test_05_update_subscription_duration
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L252 (Test: |
Test Case: test_06_delete_subscription_returns_204 TEST_TestScenarioSubscriptions_test_06_delete_subscription_returns_204
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L267 (Test: |
Test Case: test_07_empty_list_after_delete TEST_TestScenarioSubscriptions_test_07_empty_list_after_delete
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L287 (Test: |
Test Case: test_10_sse_stream_returns_correct_headers TEST_TestScenarioSubscriptions_test_10_sse_stream_returns_correct_headers
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L307 (Test: |
Test Case: test_11_sse_stream_delivers_periodic_data TEST_TestScenarioSubscriptions_test_11_sse_stream_delivers_periodic_data
|
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 Case: test_12_sse_stream_closes_on_subscription_delete TEST_TestScenarioSubscriptions_test_12_sse_stream_closes_on_subscription_delete
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L378 (Test: |
Test Case: test_20_create_with_invalid_interval_returns_400 TEST_TestScenarioSubscriptions_test_20_create_with_invalid_interval_returns_400
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L427 (Test: |
Test Case: test_21_create_with_zero_duration_returns_400 TEST_TestScenarioSubscriptions_test_21_create_with_zero_duration_returns_400
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L445 (Test: |
Test Case: test_22_create_with_unsupported_protocol_returns_400 TEST_TestScenarioSubscriptions_test_22_create_with_unsupported_protocol_returns_400
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L462 (Test: |
Test Case: test_23_create_with_invalid_resource_uri_returns_400 TEST_TestScenarioSubscriptions_test_23_create_with_invalid_resource_uri_returns_400
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L480 (Test: |
Test Case: test_24_get_nonexistent_subscription_returns_404 TEST_TestScenarioSubscriptions_test_24_get_nonexistent_subscription_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L497 (Test: |
Test Case: test_25_delete_nonexistent_subscription_returns_404 TEST_TestScenarioSubscriptions_test_25_delete_nonexistent_subscription_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L509 (Test: |
Test Case: test_26_update_nonexistent_subscription_returns_404 TEST_TestScenarioSubscriptions_test_26_update_nonexistent_subscription_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L520 (Test: |
Test Case: test_27_create_for_nonexistent_entity_returns_404 TEST_TestScenarioSubscriptions_test_27_create_for_nonexistent_entity_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L532 (Test: |
Test Case: test_28_sse_stream_for_nonexistent_subscription_returns_404 TEST_TestScenarioSubscriptions_test_28_sse_stream_for_nonexistent_subscription_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L549 (Test: |
Test Case: test_30_cyclic_subscriptions_work_on_components TEST_TestScenarioSubscriptions_test_30_cyclic_subscriptions_work_on_components
|
Implementation: src/ros2_medkit_integration_tests/test/scenarios/test_scenario_subscriptions.test.py#L564 (Test: |
GET /apps/{app}/scripts returns empty items initially. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L218 (Test: |
Upload a script, verify it appears in the list. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L225 (Test: |
GET /apps/{app}/scripts/{id} returns full metadata. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L235 (Test: |
Test Case: test_04_get_nonexistent_returns_404 TEST_TestScriptsCRUD_test_04_get_nonexistent_returns_404
|
GET /apps/{app}/scripts/nonexistent returns 404. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L246 (Test: |
DELETE /apps/{app}/scripts/{id} removes it. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L255 (Test: |
Test Case: test_06_delete_nonexistent_returns_404 TEST_TestScriptsCRUD_test_06_delete_nonexistent_returns_404
|
DELETE /apps/{app}/scripts/nonexistent returns 404. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L273 (Test: |
POST without multipart file field returns 400. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L282 (Test: |
Upload with metadata field sets custom name and description. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L301 (Test: |
Upload Python script, execute, poll until completed. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L365 (Test: |
Upload shell script, execute, poll until completed. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L388 (Test: |
Test Case: test_03_terminate_running_execution TEST_TestScriptsExecution_test_03_terminate_running_execution
|
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 Case: test_06_get_nonexistent_execution TEST_TestScriptsExecution_test_06_get_nonexistent_execution
|
GET nonexistent execution returns 404. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L511 (Test: |
Test Case: test_07_start_execution_missing_type TEST_TestScriptsExecution_test_07_start_execution_missing_type
|
POST without execution_type returns 400. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L522 (Test: |
Test Case: test_08_start_execution_invalid_json TEST_TestScriptsExecution_test_08_start_execution_invalid_json
|
POST with invalid JSON body returns 400. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L533 (Test: |
Test Case: test_09_execution_has_timestamps TEST_TestScriptsExecution_test_09_execution_has_timestamps
|
Completed execution has started_at and completed_at timestamps. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L545 (Test: |
Upload and execute a .bash script. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L566 (Test: |
Test Case: test_11_output_content_verified TEST_TestScriptsExecution_test_11_output_content_verified
|
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: |
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 Case: test_13_failed_script_execution TEST_TestScriptsExecution_test_13_failed_script_execution
|
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: |
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 Case: test_01_list_scripts_returns_501 TEST_TestScriptsNotConfigured_test_01_list_scripts_returns_501
|
GET /apps/{app}/scripts returns 501 without backend. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L117 (Test: |
Test Case: test_02_upload_script_returns_501 TEST_TestScriptsNotConfigured_test_02_upload_script_returns_501
|
POST /apps/{app}/scripts returns 501 without backend. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L126 (Test: |
Test Case: test_03_get_script_returns_501 TEST_TestScriptsNotConfigured_test_03_get_script_returns_501
|
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 Case: test_04_delete_script_returns_501 TEST_TestScriptsNotConfigured_test_04_delete_script_returns_501
|
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 Case: test_05_start_execution_returns_501 TEST_TestScriptsNotConfigured_test_05_start_execution_returns_501
|
POST /apps/{app}/scripts/{id}/executions returns 501. Implementation: src/ros2_medkit_integration_tests/test/features/test_scripts_api.test.py#L153 (Test: |
Test Case: test_06_get_execution_returns_501 TEST_TestScriptsNotConfigured_test_06_get_execution_returns_501
|
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 Case: test_07_control_execution_returns_501 TEST_TestScriptsNotConfigured_test_07_control_execution_returns_501
|
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 Case: test_root_endpoint_excludes_legacy_snapshots TEST_TestSnapshotsApi_test_root_endpoint_excludes_legacy_snapshots
|
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: |
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L128 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L98 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L116 (Test: |
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L142 (Test: |
Test Case: test_returns_units_aggregation TEST_TestSystemdComponentEndpoint_test_returns_units_aggregation
|
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L159 (Test: |
Test Case: test_units_have_active_state TEST_TestSystemdComponentEndpoint_test_units_have_active_state
|
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L190 (Test: |
Test Case: test_units_include_node_ids TEST_TestSystemdComponentEndpoint_test_units_include_node_ids
|
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L174 (Test: |
Test Case: test_nonexistent_app_returns_404 TEST_TestSystemdErrorHandling_test_nonexistent_app_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L208 (Test: |
Test Case: test_nonexistent_component_returns_404 TEST_TestSystemdErrorHandling_test_nonexistent_component_returns_404
|
Implementation: src/ros2_medkit_integration_tests/test/docker/introspection/test_systemd_introspection.py#L219 (Test: |
Test Case: test_01_create_trigger_returns_201_with_correct_schema TEST_TestTriggersData_test_01_create_trigger_returns_201_with_correct_schema
|
POST creates trigger with correct schema response. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L128 (Test: |
Test Case: test_02_list_triggers_returns_created_trigger TEST_TestTriggersData_test_02_list_triggers_returns_created_trigger
|
GET /triggers returns list with the created trigger. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L152 (Test: |
GET /triggers/{id} returns the trigger details. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L169 (Test: |
PUT /triggers/{id} updates the lifetime. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_data.test.py#L186 (Test: |
Test Case: test_05_delete_trigger_returns_204 TEST_TestTriggersData_test_05_delete_trigger_returns_204
|
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 Case: test_10_sse_stream_returns_correct_headers TEST_TestTriggersData_test_10_sse_stream_returns_correct_headers
|
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 Case: test_11_sse_stream_delivers_data_events TEST_TestTriggersData_test_11_sse_stream_delivers_data_events
|
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 Case: test_12_sse_stream_closes_on_trigger_delete TEST_TestTriggersData_test_12_sse_stream_closes_on_trigger_delete
|
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 Case: test_27_events_for_nonexistent_trigger_returns_404 TEST_TestTriggersData_test_27_events_for_nonexistent_trigger_returns_404
|
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 Case: test_01_create_fault_trigger_returns_201 TEST_TestTriggersFaults_test_01_create_fault_trigger_returns_201
|
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: |
GET /triggers lists fault triggers for the entity. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_faults.test.py#L109 (Test: |
GET /triggers/{id} returns fault trigger details. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_faults.test.py#L125 (Test: |
Test Case: test_04_update_fault_trigger_lifetime TEST_TestTriggersFaults_test_04_update_fault_trigger_lifetime
|
PUT /triggers/{id} updates fault trigger lifetime. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_faults.test.py#L140 (Test: |
DELETE /triggers/{id} removes the fault trigger. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_faults.test.py#L154 (Test: |
Test Case: test_10_sse_endpoint_connects_and_streams TEST_TestTriggersFaults_test_10_sse_endpoint_connects_and_streams
|
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 Case: test_11_sse_fault_event_has_correct_headers TEST_TestTriggersFaults_test_11_sse_fault_event_has_correct_headers
|
SSE events endpoint for faults returns correct headers. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_faults.test.py#L217 (Test: |
Test Case: test_01_component_trigger_created_successfully TEST_TestTriggersHierarchy_test_01_component_trigger_created_successfully
|
Create trigger on component that hosts apps. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_hierarchy.test.py#L111 (Test: |
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 Case: test_06_delete_trigger_on_function TEST_TestTriggersHierarchy_test_06_delete_trigger_on_function
|
DELETE removes trigger from function entity. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_hierarchy.test.py#L297 (Test: |
POST creates a trigger on logs collection. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L86 (Test: |
GET /triggers lists log triggers for the entity. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L110 (Test: |
GET /triggers/{id} returns log trigger details. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L126 (Test: |
Test Case: test_04_update_logs_trigger_lifetime TEST_TestTriggersLogs_test_04_update_logs_trigger_lifetime
|
PUT /triggers/{id} updates log trigger lifetime. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L145 (Test: |
DELETE /triggers/{id} removes the log trigger. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L161 (Test: |
Test Case: test_10_sse_endpoint_connects_for_log_trigger TEST_TestTriggersLogs_test_10_sse_endpoint_connects_for_log_trigger
|
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: |
SSE events endpoint for logs returns correct headers. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_logs.test.py#L234 (Test: |
Test Case: test_01_create_persistent_trigger TEST_TestTriggersPersistent_test_01_create_persistent_trigger
|
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 Case: test_02_trigger_listed_on_primary TEST_TestTriggersPersistent_test_02_trigger_listed_on_primary
|
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 Case: test_04_restored_trigger_fields_match TEST_TestTriggersPersistent_test_04_restored_trigger_fields_match
|
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 Case: test_06_delete_via_secondary_removes_from_store TEST_TestTriggersPersistent_test_06_delete_via_secondary_removes_from_store
|
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: |
POST creates a trigger on updates collection. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L89 (Test: |
GET /triggers lists updates triggers for the entity. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L107 (Test: |
GET /triggers/{id} returns updates trigger details. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L126 (Test: |
Test Case: test_04_update_updates_trigger_lifetime TEST_TestTriggersUpdates_test_04_update_updates_trigger_lifetime
|
PUT /triggers/{id} updates the trigger lifetime. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L148 (Test: |
DELETE /triggers/{id} removes the updates trigger. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L165 (Test: |
Test Case: test_10_events_endpoint_returns_sse_headers TEST_TestTriggersUpdates_test_10_events_endpoint_returns_sse_headers
|
SSE events endpoint returns correct content-type headers. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L199 (Test: |
Test Case: test_11_events_for_nonexistent_trigger_returns_404 TEST_TestTriggersUpdates_test_11_events_for_nonexistent_trigger_returns_404
|
GET /events for a nonexistent trigger returns 404. Implementation: src/ros2_medkit_integration_tests/test/features/test_triggers_updates.test.py#L218 (Test: |
Automated update runs prepare + execute and completes. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L456 (Test: |
Test Case: test_02_automated_on_non_automated_returns_400 TEST_TestUpdatesAutomated_test_02_automated_on_non_automated_returns_400
|
Automated on non-automated package returns 400. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L472 (Test: |
GET /updates returns empty list initially. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L229 (Test: |
POST /updates registers a new package. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L236 (Test: |
GET /updates includes registered package. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L242 (Test: |
GET /updates/{id} returns full metadata. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L249 (Test: |
Test Case: test_05_get_nonexistent_returns_404 TEST_TestUpdatesCRUD_test_05_get_nonexistent_returns_404
|
GET /updates/{id} returns 404 for unknown package. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L275 (Test: |
DELETE /updates/{id} removes the package. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L283 (Test: |
Test Case: test_07_delete_nonexistent_returns_404 TEST_TestUpdatesCRUD_test_07_delete_nonexistent_returns_404
|
DELETE /updates/{id} returns 404 for unknown package. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L299 (Test: |
Test Case: test_08_register_duplicate_returns_400 TEST_TestUpdatesCRUD_test_08_register_duplicate_returns_400
|
POST /updates returns 400 when ID already exists. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L307 (Test: |
GET /updates?origin=remote filters by origin. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L323 (Test: |
Test Case: test_10_list_with_target_version_filter TEST_TestUpdatesCRUD_test_10_list_with_target_version_filter
|
GET /updates?target-version=X filters by target version. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L337 (Test: |
Test Case: test_01_delete_during_prepare_returns_409 TEST_TestUpdatesErrorCases_test_01_delete_during_prepare_returns_409
|
Cannot delete a package while prepare is in progress. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L488 (Test: |
Test Case: test_02_prepare_nonexistent_returns_404 TEST_TestUpdatesErrorCases_test_02_prepare_nonexistent_returns_404
|
Cannot prepare a package that doesn’t exist. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L504 (Test: |
Test Case: test_03_execute_nonexistent_returns_404 TEST_TestUpdatesErrorCases_test_03_execute_nonexistent_returns_404
|
Cannot execute a package that doesn’t exist. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L515 (Test: |
Test Case: test_04_register_missing_required_fields TEST_TestUpdatesErrorCases_test_04_register_missing_required_fields
|
POST /updates with missing required fields returns 400. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L526 (Test: |
Test Case: test_05_register_malformed_json TEST_TestUpdatesErrorCases_test_05_register_malformed_json
|
POST /updates with broken JSON returns 400. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L539 (Test: |
Test Case: test_01_list_updates_returns_501 TEST_TestUpdatesNoPlugin_test_01_list_updates_returns_501
|
GET /updates returns 501 when no plugin loaded. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L149 (Test: |
GET /updates/{id} returns 501 when no plugin loaded. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L156 (Test: |
Test Case: test_03_register_update_returns_501 TEST_TestUpdatesNoPlugin_test_03_register_update_returns_501
|
POST /updates returns 501 when no plugin loaded. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L163 (Test: |
PUT /updates/{id}/prepare returns 501 when no plugin loaded. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L179 (Test: |
PUT /updates/{id}/execute returns 501 when no plugin loaded. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L188 (Test: |
PUT /updates/{id}/automated returns 501 when no plugin loaded. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L197 (Test: |
GET /updates/{id}/status returns 501 when no plugin loaded. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L206 (Test: |
DELETE /updates/{id} returns 501 when no plugin loaded. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L215 (Test: |
PUT /updates/{id}/prepare returns 202 Accepted. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L357 (Test: |
Prepare workflow completes successfully with status polling. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L368 (Test: |
Test Case: test_03_execute_after_prepare TEST_TestUpdatesPrepareExecute_test_03_execute_after_prepare
|
Execute succeeds after prepare completes. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L378 (Test: |
Test Case: test_04_execute_without_prepare_returns_400 TEST_TestUpdatesPrepareExecute_test_04_execute_without_prepare_returns_400
|
Execute before prepare returns 400. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L396 (Test: |
Test Case: test_05_status_shows_progress TEST_TestUpdatesPrepareExecute_test_05_status_shows_progress
|
Status endpoint shows progress during prepare. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L405 (Test: |
Test Case: test_06_status_not_found_for_unknown TEST_TestUpdatesPrepareExecute_test_06_status_not_found_for_unknown
|
GET /status for unknown package returns 404. Implementation: src/ros2_medkit_integration_tests/test/features/test_updates.test.py#L441 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_auth_manager.cpp#L150 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L131 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L101 (Test: |
Test Case: PatternMatchUsedWhenNoFaultSpecific TEST_TopicResolutionTest_PatternMatchUsedWhenNoFaultSpecific
|
Implementation: src/ros2_medkit_fault_manager/test/test_snapshot_capture.cpp#L117 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_transport_registry.cpp#L56 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L221 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L273 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L100 (Test: |
EnterRange requires lower_bound <= upper_bound Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L109 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L120 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L88 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L433 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L132 (Test: |
Set up hierarchy: area “navigation” contains apps Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L358 (Test: |
Set up hierarchy: component “chassis” contains app “sensor” Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L332 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L541 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L311 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L148 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L286 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L413 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L203 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L220 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L253 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_manager.cpp#L164 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L252 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_store.cpp#L366 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_store.cpp#L70 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L123 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L289 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L308 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L331 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_trigger_handlers.cpp#L321 (Test: |
Test Case: VendorExtensionCollection_Accepted TEST_TriggerValidationTest_VendorExtensionCollection_Accepted
|
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: |
Test Case: ExecuteExceptionSetsFailedStatus TEST_UpdateManagerFailureTest_ExecuteExceptionSetsFailedStatus
|
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L555 (Test: |
Test Case: ExecuteFailureSetsFailedStatus TEST_UpdateManagerFailureTest_ExecuteFailureSetsFailedStatus
|
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L522 (Test: |
Test Case: PrepareExceptionSetsFailedStatus TEST_UpdateManagerFailureTest_PrepareExceptionSetsFailedStatus
|
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L477 (Test: |
Test Case: PrepareFailureSetsFailedStatus TEST_UpdateManagerFailureTest_PrepareFailureSetsFailedStatus
|
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L388 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L248 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L273 (Test: |
Test Case: ConcurrentPrepareOnSamePackageRejected TEST_UpdateManagerTest_ConcurrentPrepareOnSamePackageRejected
|
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L313 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L283 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L156 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L302 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L204 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L194 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L139 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L149 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L114 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L119 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L168 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L127 (Test: |
Implementation: src/ros2_medkit_gateway/test/test_update_manager.cpp#L295 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L173 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L210 (Test: |
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L204 (Test: |
Test Case: PositiveConfirmationThresholdAutoNegated TEST_YamlLoadTest_PositiveConfirmationThresholdAutoNegated
|
Implementation: src/ros2_medkit_fault_manager/test/test_entity_thresholds.cpp#L222 (Test: |
ID |
Title |
Status |
Verifies |
|---|---|---|---|
TEST_AuthHandlersAuthorizeTest_AuthorizeErrorBodyFollowsOAuth2Format |
AuthorizeErrorBodyFollowsOAuth2Format |
verified |
|
TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForEmptyClientId |
ReturnsBadRequestForEmptyClientId |
verified |
|
TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForEmptyClientSecret |
ReturnsBadRequestForEmptyClientSecret |
verified |
|
TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForMissingClientId |
ReturnsBadRequestForMissingClientId |
verified |
|
TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForMissingClientSecret |
ReturnsBadRequestForMissingClientSecret |
verified |
|
TEST_AuthHandlersAuthorizeTest_ReturnsBadRequestForWrongGrantType |
ReturnsBadRequestForWrongGrantType |
verified |
|
TEST_AuthHandlersDisabledTest_AuthorizeErrorBodyContainsErrorCode |
AuthorizeErrorBodyContainsErrorCode |
verified |
|
TEST_AuthHandlersDisabledTest_AuthorizeReturns404WhenAuthDisabled |
AuthorizeReturns404WhenAuthDisabled |
verified |
|
TEST_AuthHandlersDisabledTest_RevokeReturns404WhenAuthDisabled |
RevokeReturns404WhenAuthDisabled |
verified |
|
TEST_AuthHandlersDisabledTest_TokenReturns404WhenAuthDisabled |
TokenReturns404WhenAuthDisabled |
verified |
|
ReturnsBadRequestForInvalidJson |
verified |
||
TEST_AuthHandlersRevokeTest_ReturnsBadRequestForMissingTokenField |
ReturnsBadRequestForMissingTokenField |
verified |
|
TEST_AuthHandlersRevokeTest_ReturnsBadRequestForNonStringToken |
ReturnsBadRequestForNonStringToken |
verified |
|
TEST_AuthHandlersTokenTest_ReturnsBadRequestForEmptyRefreshToken |
ReturnsBadRequestForEmptyRefreshToken |
verified |
|
TEST_AuthHandlersTokenTest_ReturnsBadRequestForMissingRefreshToken |
ReturnsBadRequestForMissingRefreshToken |
verified |
|
TEST_AuthHandlersTokenTest_ReturnsBadRequestForWrongGrantType |
ReturnsBadRequestForWrongGrantType |
verified |
|
TEST_AuthHandlersWithManagerTest_AuthorizeReturnsTokensForValidCredentials |
AuthorizeReturnsTokensForValidCredentials |
verified |
|
TEST_AuthHandlersWithManagerTest_AuthorizeReturnsUnauthorizedForInvalidCredentials |
AuthorizeReturnsUnauthorizedForInvalidCredentials |
verified |
|
TEST_AuthHandlersWithManagerTest_RevokeRevokesRefreshTokenForSubsequentTokenRequest |
RevokeRevokesRefreshTokenForSubsequentTokenRequest |
verified |
|
TEST_AuthHandlersWithManagerTest_TokenReturnsNewAccessTokenForValidRefreshToken |
TokenReturnsNewAccessTokenForValidRefreshToken |
verified |
|
TEST_AuthHandlersWithManagerTest_TokenReturnsUnauthorizedForInvalidRefreshToken |
TokenReturnsUnauthorizedForInvalidRefreshToken |
verified |
|
RS256WithMissingPrivateKeyThrows |
verified |
||
AuthenticateValidCredentials |
verified |
||
AuthorizeViewerCanRead |
verified |
||
DisabledClientTokenBecomesInvalid |
verified |
||
RefreshAccessToken |
verified |
||
TEST_AuthManagerTest_RefreshRevocationPropagatestoAccessToken |
RefreshRevocationPropagatestoAccessToken |
verified |
|
RefreshWithAccessTokenFails |
verified |
||
ValidateTokenWithCorrectType |
verified |
||
ValidateTokenWithWrongTypeRejectsToken |
verified |
||
ValidateValidToken |
verified |
||
AuthEndpointsNeverRequireAuth |
verified |
||
DisabledMiddlewareAllowsAll |
verified |
||
ExtractBearerToken_CaseInsensitive |
verified |
||
ExtractBearerToken_EmptyHeader |
verified |
||
ExtractBearerToken_EmptyToken |
verified |
||
ExtractBearerToken_InvalidPrefix |
verified |
||
ExtractBearerToken_ValidToken |
verified |
||
ProcessGetRequestWithoutAuth |
verified |
||
TEST_AuthMiddlewareTest_ProcessWriteRequestWithInsufficientPermissions |
ProcessWriteRequestWithInsufficientPermissions |
verified |
|
ProcessWriteRequestWithInvalidToken |
verified |
||
ProcessWriteRequestWithoutAuth |
verified |
||
ProcessWriteRequestWithValidToken |
verified |
||
ParseRequestFormUrlEncoded |
verified |
||
ParseRequestInvalidContentType |
verified |
||
ParseRequestInvalidJson |
verified |
||
ParseRequestJson |
verified |
||
ParseRequestJsonWithCharset |
verified |
||
TEST_AuthRequirementPolicyTest_AllAuthPolicyAlwaysRequiresAuth |
AllAuthPolicyAlwaysRequiresAuth |
verified |
|
ConfigurablePolicyExactMatch |
verified |
||
TEST_AuthRequirementPolicyTest_ConfigurablePolicyLongestMatchWins |
ConfigurablePolicyLongestMatchWins |
verified |
|
TEST_AuthRequirementPolicyTest_ConfigurablePolicyMultipleWildcards |
ConfigurablePolicyMultipleWildcards |
verified |
|
TEST_AuthRequirementPolicyTest_ConfigurablePolicyUnknownPathsRequireAuth |
ConfigurablePolicyUnknownPathsRequireAuth |
verified |
|
TEST_AuthRequirementPolicyTest_ConfigurablePolicyWildcardMatch |
ConfigurablePolicyWildcardMatch |
verified |
|
TEST_AuthRequirementPolicyTest_FactoryCreatesAllAuthFromConfig |
FactoryCreatesAllAuthFromConfig |
verified |
|
FactoryCreatesNoAuthPolicy |
verified |
||
TEST_AuthRequirementPolicyTest_FactoryCreatesWriteOnlyFromConfig |
FactoryCreatesWriteOnlyFromConfig |
verified |
|
TEST_AuthRequirementPolicyTest_NoAuthPolicyNeverRequiresAuth |
NoAuthPolicyNeverRequiresAuth |
verified |
|
PolicyDescriptions |
verified |
||
TEST_AuthRequirementPolicyTest_WriteOnlyPolicyForGetRequests |
WriteOnlyPolicyForGetRequests |
verified |
|
TEST_AuthRequirementPolicyTest_WriteOnlyPolicyForWriteRequests |
WriteOnlyPolicyForWriteRequests |
verified |
|
DescriptorToJsonConversion |
verified |
||
DescriptorToJsonWithMetadata |
verified |
||
TEST_BulkDataHandlersTest_DescriptorToJsonWithoutDescription |
DescriptorToJsonWithoutDescription |
verified |
|
FormatTimestampNsEpoch |
verified |
||
FormatTimestampNsNegativeFallback |
verified |
||
FormatTimestampNsValidTimestamp |
verified |
||
FormatTimestampNsWithMilliseconds |
verified |
||
GetRosbagMimetypeCasesSensitive |
verified |
||
GetRosbagMimetypeDb3 |
verified |
||
GetRosbagMimetypeEmpty |
verified |
||
GetRosbagMimetypeMcap |
verified |
||
GetRosbagMimetypeSqlite3 |
verified |
||
GetRosbagMimetypeUnknown |
verified |
||
PayloadTooLargeErrorCodeDefined |
verified |
||
EmptyCategories |
verified |
||
GenerateUniqueIds |
verified |
||
GetFilePath |
verified |
||
GetFilePathNonexistent |
verified |
||
IdFormatIsReadable |
verified |
||
ListCategories |
verified |
||
ListItemsEmptyCategory |
verified |
||
ListItemsInCategory |
verified |
||
ListItemsWrongEntity |
verified |
||
MaxUploadSizeEnforced |
verified |
||
MaxUploadZeroMeansUnlimited |
verified |
||
PathTraversalRejected |
verified |
||
RemoveItem |
verified |
||
RemoveNonexistent |
verified |
||
RemoveThenListDoesNotInclude |
verified |
||
StoreAndRetrieve |
verified |
||
StoreAtomicWriteDescriptorExists |
verified |
||
StoreCreatesDirectoryStructure |
verified |
||
StoreEmptyFile |
verified |
||
StoreEmptyFilename |
verified |
||
StoreLargeFile |
verified |
||
StoreUnknownCategoryRejected |
verified |
||
StoreWithMetadata |
verified |
||
UnknownCategory |
verified |
||
TEST_CapabilityGeneratorTest_EntityCollectionDetailPathHasParameters |
EntityCollectionDetailPathHasParameters |
verified |
|
TEST_CapabilityGeneratorTest_GenerateEntityCollectionReturnsSpec |
GenerateEntityCollectionReturnsSpec |
verified |
|
TEST_CapabilityGeneratorTest_GenerateInvalidPathReturnsNullopt |
GenerateInvalidPathReturnsNullopt |
verified |
|
TEST_CapabilityGeneratorTest_GenerateRootContainsEntityCollections |
GenerateRootContainsEntityCollections |
verified |
|
TEST_CapabilityGeneratorTest_GenerateRootContainsEntityDetailPaths |
GenerateRootContainsEntityDetailPaths |
verified |
|
TEST_CapabilityGeneratorTest_GenerateRootContainsGlobalFaults |
GenerateRootContainsGlobalFaults |
verified |
|
TEST_CapabilityGeneratorTest_GenerateRootContainsHealthEndpoint |
GenerateRootContainsHealthEndpoint |
verified |
|
TEST_CapabilityGeneratorTest_GenerateRootContainsVersionInfo |
GenerateRootContainsVersionInfo |
verified |
|
TEST_CapabilityGeneratorTest_GenerateRootReturnsValidOpenApiSpec |
GenerateRootReturnsValidOpenApiSpec |
verified |
|
CgroupV1FormatNotSupported |
verified |
||
DetectRuntime |
verified |
||
ExtractContainerdContainerId |
verified |
||
ExtractDockerContainerId |
verified |
||
ExtractDockerOldStyleContainerId |
verified |
||
ExtractNoContainerId |
verified |
||
ExtractPodmanContainerId |
verified |
||
IsContainerizedSyntheticProc |
verified |
||
ReadCgroupInfoMissingCgroupFile |
verified |
||
ReadCgroupInfoMissingResourceFiles |
verified |
||
ReadCgroupInfoUnlimitedResources |
verified |
||
ReadCgroupInfoWithResourceLimits |
verified |
||
EnterRange_NonNumericReturnsFalse |
verified |
||
LeaveRange_NonNumericReturnsFalse |
verified |
||
OnChange_ValidateParams |
verified |
||
TEST_ConditionEvaluator_OnChangeTo_ValidateParams_MissingTarget |
OnChangeTo_ValidateParams_MissingTarget |
verified |
|
OnChangeTo_ValidateParams_Valid |
verified |
||
CgroupInfoToJsonAllFields |
verified |
||
CgroupInfoToJsonMissingOptionals |
verified |
||
NotContainerizedSkipped |
verified |
||
ContainsAllRequiredFields |
verified |
||
ServerLevelUpdateResource |
verified |
||
TEST_DataHandlersTest_DataCategoriesErrorBodyContainsFeatureParameter |
DataCategoriesErrorBodyContainsFeatureParameter |
verified |
|
TEST_DataHandlersTest_DataCategoriesErrorBodyContainsMessage |
DataCategoriesErrorBodyContainsMessage |
verified |
|
TEST_DataHandlersTest_DataCategoriesErrorCodeIsNotImplemented |
DataCategoriesErrorCodeIsNotImplemented |
verified |
|
DataCategoriesResponseBodyIsValidJson |
verified |
||
DataCategoriesReturns501 |
verified |
||
TEST_DataHandlersTest_DataGroupsErrorBodyContainsFeatureParameter |
DataGroupsErrorBodyContainsFeatureParameter |
verified |
|
DataGroupsErrorBodyContainsMessage |
verified |
||
DataGroupsErrorCodeIsNotImplemented |
verified |
||
DataGroupsResponseBodyIsValidJson |
verified |
||
DataGroupsReturns501 |
verified |
||
TEST_DataHandlersTest_GetDataItemBadRequestBodyContainsInvalidRequestErrorCode |
GetDataItemBadRequestBodyContainsInvalidRequestErrorCode |
verified |
|
TEST_DataHandlersTest_GetDataItemReturnsBadRequestWhenMatchesMissing |
GetDataItemReturnsBadRequestWhenMatchesMissing |
verified |
|
TEST_DataHandlersTest_ListDataBadRequestBodyContainsErrorCode |
ListDataBadRequestBodyContainsErrorCode |
verified |
|
TEST_DataHandlersTest_ListDataReturnsBadRequestWhenMatchesMissing |
ListDataReturnsBadRequestWhenMatchesMissing |
verified |
|
TEST_DataHandlersTest_PutDataItemBadRequestBodyContainsInvalidRequestErrorCode |
PutDataItemBadRequestBodyContainsInvalidRequestErrorCode |
verified |
|
TEST_DataHandlersTest_PutDataItemReturnsBadRequestWhenMatchesMissing |
PutDataItemReturnsBadRequestWhenMatchesMissing |
verified |
|
ConcurrencyLimit |
verified |
||
TEST_DefaultScriptProviderTest_ControlCompletedExecutionReturnsNotRunning |
ControlCompletedExecutionReturnsNotRunning |
verified |
|
ControlStopExecution |
verified |
||
TEST_DefaultScriptProviderTest_CrossEntityExecutionAccessRejected |
CrossEntityExecutionAccessRejected |
verified |
|
DeleteManifestScriptFails |
verified |
||
DeleteNonexistentScriptFails |
verified |
||
TEST_DefaultScriptProviderTest_DeleteScriptWithRunningExecutionBlocked |
DeleteScriptWithRunningExecutionBlocked |
verified |
|
DeleteUploadedScript |
verified |
||
EnvVars |
verified |
||
ExecutionNotFound |
verified |
||
FlagArgs |
verified |
||
GetManifestScript |
verified |
||
GetNonexistentScript |
verified |
||
GetUploadedScript |
verified |
||
TEST_DefaultScriptProviderTest_ListMergesManifestAndUploaded |
ListMergesManifestAndUploaded |
verified |
|
ManifestScriptsLoaded |
verified |
||
TEST_DefaultScriptProviderTest_ManifestScriptWithParametersSchema |
ManifestScriptWithParametersSchema |
verified |
|
NamedArgs |
verified |
||
PositionalArgs |
verified |
||
ScriptNotFoundExecution |
verified |
||
StdinJsonFallback |
verified |
||
SubprocessExecutionBash |
verified |
||
SubprocessExecutionPython |
verified |
||
SubprocessExecutionSh |
verified |
||
SubprocessFailure |
verified |
||
SubprocessTimeout |
verified |
||
UnsupportedExecutionType |
verified |
||
UploadDisabledReturnsError |
verified |
||
TEST_DefaultScriptProviderTest_UploadedScriptsIsolatedByEntity |
UploadedScriptsIsolatedByEntity |
verified |
|
TEST_DefaultScriptProviderTest_UploadExceedingFileSizeRejected |
UploadExceedingFileSizeRejected |
verified |
|
UploadToFilesystem |
verified |
||
UploadWithoutMetadata |
verified |
||
UploadWithParametersSchema |
verified |
||
TEST_DiscoveryHandlersFixtureTest_AppDependsOnReturnsResolvedAndMissingDependencies |
AppDependsOnReturnsResolvedAndMissingDependencies |
verified |
|
TEST_DiscoveryHandlersFixtureTest_AppDependsOnUnknownAppReturns404 |
AppDependsOnUnknownAppReturns404 |
verified |
|
TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnReturnsEmptyWhenAppHasNoComponent |
AppIsLocatedOnReturnsEmptyWhenAppHasNoComponent |
verified |
|
TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnReturnsMissingItemWhenHostComponentUnresolved |
AppIsLocatedOnReturnsMissingItemWhenHostComponentUnresolved |
verified |
|
TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnReturnsParentComponent |
AppIsLocatedOnReturnsParentComponent |
verified |
|
TEST_DiscoveryHandlersFixtureTest_AppIsLocatedOnUnknownAppReturns404 |
AppIsLocatedOnUnknownAppReturns404 |
verified |
|
TEST_DiscoveryHandlersFixtureTest_AreaComponentsReturnsMatchingComponentsOnly |
AreaComponentsReturnsMatchingComponentsOnly |
verified |
|
TEST_DiscoveryHandlersFixtureTest_AreaComponentsUnknownAreaReturns404 |
AreaComponentsUnknownAreaReturns404 |
verified |
|
TEST_DiscoveryHandlersFixtureTest_ComponentDependsOnReturnsResolvedAndMissingDependencies |
ComponentDependsOnReturnsResolvedAndMissingDependencies |
verified |
|
TEST_DiscoveryHandlersFixtureTest_ComponentDependsOnUnknownComponentReturns404 |
ComponentDependsOnUnknownComponentReturns404 |
verified |
|
TEST_DiscoveryHandlersFixtureTest_FunctionHostsReturnsHostingApps |
FunctionHostsReturnsHostingApps |
verified |
|
TEST_DiscoveryHandlersFixtureTest_FunctionHostsUnknownFunctionReturns404 |
FunctionHostsUnknownFunctionReturns404 |
verified |
|
TEST_DiscoveryHandlersFixtureTest_GetAppReturnsLinksAndCapabilities |
GetAppReturnsLinksAndCapabilities |
verified |
|
GetAppUnknownIdReturns404 |
verified |
||
TEST_DiscoveryHandlersFixtureTest_GetAreaReturnsCapabilitiesAndLinks |
GetAreaReturnsCapabilitiesAndLinks |
verified |
|
TEST_DiscoveryHandlersFixtureTest_GetAreaUnknownIdReturns404 |
GetAreaUnknownIdReturns404 |
verified |
|
TEST_DiscoveryHandlersFixtureTest_GetComponentReturnsRelationshipsAndCapabilities |
GetComponentReturnsRelationshipsAndCapabilities |
verified |
|
TEST_DiscoveryHandlersFixtureTest_GetContainsReturnsAreaComponents |
GetContainsReturnsAreaComponents |
verified |
|
TEST_DiscoveryHandlersFixtureTest_GetContainsUnknownAreaReturns404 |
GetContainsUnknownAreaReturns404 |
verified |
|
TEST_DiscoveryHandlersFixtureTest_GetFunctionReturnsCapabilitiesAndGraphLink |
GetFunctionReturnsCapabilitiesAndGraphLink |
verified |
|
TEST_DiscoveryHandlersFixtureTest_GetFunctionUnknownIdReturns404 |
GetFunctionUnknownIdReturns404 |
verified |
|
GetHostsReturnsHostedApps |
verified |
||
TEST_DiscoveryHandlersFixtureTest_GetHostsUnknownComponentReturns404 |
GetHostsUnknownComponentReturns404 |
verified |
|
TEST_DiscoveryHandlersFixtureTest_GetSubareasReturnsChildAreas |
GetSubareasReturnsChildAreas |
verified |
|
TEST_DiscoveryHandlersFixtureTest_GetSubareasUnknownAreaReturns404 |
GetSubareasUnknownAreaReturns404 |
verified |
|
TEST_DiscoveryHandlersFixtureTest_GetSubcomponentsReturnsChildren |
GetSubcomponentsReturnsChildren |
verified |
|
TEST_DiscoveryHandlersFixtureTest_GetSubcomponentsUnknownComponentReturns404 |
GetSubcomponentsUnknownComponentReturns404 |
verified |
|
TEST_DiscoveryHandlersFixtureTest_ListAppsReturnsSeededMetadata |
ListAppsReturnsSeededMetadata |
verified |
|
TEST_DiscoveryHandlersFixtureTest_ListAreasReturnsSeededItems |
ListAreasReturnsSeededItems |
verified |
|
TEST_DiscoveryHandlersFixtureTest_ListComponentsReturnsMetadata |
ListComponentsReturnsMetadata |
verified |
|
TEST_DiscoveryHandlersFixtureTest_ListFunctionsReturnsSeededFunctions |
ListFunctionsReturnsSeededFunctions |
verified |
|
TEST_DiscoveryHandlersValidationTest_AppDependsOnInvalidIdReturns400 |
AppDependsOnInvalidIdReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_AppIsLocatedOnInvalidIdReturns400 |
AppIsLocatedOnInvalidIdReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_AreaComponentsInvalidIdReturns400 |
AreaComponentsInvalidIdReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_ComponentDependsOnInvalidIdReturns400 |
ComponentDependsOnInvalidIdReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_FunctionHostsInvalidIdReturns400 |
FunctionHostsInvalidIdReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_GetAppInvalidIdReturns400 |
GetAppInvalidIdReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_GetAreaInvalidIdReturns400 |
GetAreaInvalidIdReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_GetAreaMissingMatchesReturns400 |
GetAreaMissingMatchesReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_GetComponentInvalidIdReturns400 |
GetComponentInvalidIdReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_GetContainsInvalidIdReturns400 |
GetContainsInvalidIdReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_GetFunctionInvalidIdReturns400 |
GetFunctionInvalidIdReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_GetHostsInvalidIdReturns400 |
GetHostsInvalidIdReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_GetSubareasInvalidIdReturns400 |
GetSubareasInvalidIdReturns400 |
verified |
|
TEST_DiscoveryHandlersValidationTest_GetSubcomponentsInvalidIdReturns400 |
GetSubcomponentsInvalidIdReturns400 |
verified |
|
TEST_DocsHandlersTest_DocsAnyPathReturns200ForEntityCollection |
DocsAnyPathReturns200ForEntityCollection |
verified |
|
DocsAnyPathReturns404ForInvalidPath |
verified |
||
DocsDisabledReturns501 |
verified |
||
DocsRootReturnsValidJson |
verified |
||
TEST_FaultEventPublishingTest_ListFaultsForEntityEmptyResult |
ListFaultsForEntityEmptyResult |
verified |
|
ListFaultsForEntitySuccess |
verified |
||
TEST_FaultEventPublishingTest_ListFaultsForEntityWithEmptyId |
ListFaultsForEntityWithEmptyId |
verified |
|
BuildSovdFaultResponseBasicFields |
verified |
||
TEST_FaultHandlersTest_BuildSovdFaultResponseExtendedDataRecords |
BuildSovdFaultResponseExtendedDataRecords |
verified |
|
BuildSovdFaultResponseMixedSnapshots |
verified |
||
TEST_FaultHandlersTest_BuildSovdFaultResponseMultipleSources |
BuildSovdFaultResponseMultipleSources |
verified |
|
TEST_FaultHandlersTest_BuildSovdFaultResponseNestedEntityPath |
BuildSovdFaultResponseNestedEntityPath |
verified |
|
TEST_FaultHandlersTest_BuildSovdFaultResponsePrimaryValueExtraction |
BuildSovdFaultResponsePrimaryValueExtraction |
verified |
|
BuildSovdFaultResponseSeverityLabels |
verified |
||
BuildSovdFaultResponseStatusCleared |
verified |
||
BuildSovdFaultResponseStatusPassive |
verified |
||
TEST_FaultHandlersTest_BuildSovdFaultResponseWithFreezeFrame |
BuildSovdFaultResponseWithFreezeFrame |
verified |
|
TEST_FaultHandlersTest_BuildSovdFaultResponseWithInvalidJson |
BuildSovdFaultResponseWithInvalidJson |
verified |
|
BuildSovdFaultResponseWithRosbag |
verified |
||
GetRosbagNotFound |
verified |
||
GetRosbagServiceNotAvailable |
verified |
||
GetRosbagSuccess |
verified |
||
TEST_FaultManagerTest_GetRosbagUsesConfiguredFaultManagerNamespace |
GetRosbagUsesConfiguredFaultManagerNamespace |
verified |
|
GetSnapshotsEmptyResponse |
verified |
||
GetSnapshotsErrorResponse |
verified |
||
GetSnapshotsInvalidJsonFallback |
verified |
||
GetSnapshotsServiceNotAvailable |
verified |
||
GetSnapshotsSuccessWithTopicFilter |
verified |
||
GetSnapshotsSuccessWithValidJson |
verified |
||
TEST_FaultManagerTest_GetSnapshotsUsesConfiguredFaultManagerNamespace |
GetSnapshotsUsesConfiguredFaultManagerNamespace |
verified |
|
DefaultAllowsAll |
verified |
||
NamespaceBlacklistFiltersAreas |
verified |
||
NamespaceWhitelistFiltersAreas |
verified |
||
TEST_GraphProviderPluginRouteTest_RegistersFunctionCapabilityOnContext |
RegistersFunctionCapabilityOnContext |
verified |
|
TEST_GraphProviderPluginRouteTest_RegistersSamplerForCyclicSubscriptions |
RegistersSamplerForCyclicSubscriptions |
verified |
|
TEST_GraphProviderPluginRouteTest_ServesFunctionGraphFromCachedSnapshot |
ServesFunctionGraphFromCachedSnapshot |
verified |
|
TEST_HealthHandlersTest_HandleRootAuthDisabledNoAuthEndpoints |
HandleRootAuthDisabledNoAuthEndpoints |
verified |
|
TEST_HealthHandlersTest_HandleRootAuthEnabledAddsAuthEndpoints |
HandleRootAuthEnabledAddsAuthEndpoints |
verified |
|
TEST_HealthHandlersTest_HandleRootAuthEnabledIncludesAuthMetadataBlock |
HandleRootAuthEnabledIncludesAuthMetadataBlock |
verified |
|
HandleRootCapabilitiesAuthDisabled |
verified |
||
TEST_HealthHandlersTest_HandleRootCapabilitiesContainsDiscovery |
HandleRootCapabilitiesContainsDiscovery |
verified |
|
HandleRootCapabilitiesTlsDisabled |
verified |
||
HandleRootEndpointsIsNonEmptyArray |
verified |
||
TEST_HealthHandlersTest_HandleRootResponseContainsRequiredTopLevelFields |
HandleRootResponseContainsRequiredTopLevelFields |
verified |
|
TEST_HealthHandlersTest_HandleRootTlsEnabledIncludesTlsMetadataBlock |
HandleRootTlsEnabledIncludesTlsMetadataBlock |
verified |
|
HandleVersionInfoContainsItemsArray |
verified |
||
TEST_HealthHandlersTest_HandleVersionInfoItemsEntryHasBaseUri |
HandleVersionInfoItemsEntryHasBaseUri |
verified |
|
TEST_HealthHandlersTest_HandleVersionInfoItemsEntryHasVendorInfo |
HandleVersionInfoItemsEntryHasVendorInfo |
verified |
|
TEST_HealthHandlersTest_HandleVersionInfoItemsEntryHasVersionField |
HandleVersionInfoItemsEntryHasVersionField |
verified |
|
ParsesValidIntervals |
verified |
||
TEST_LoadPersistentTriggers_ExpiredTriggerMarkedTerminatedOnLoad |
ExpiredTriggerMarkedTerminatedOnLoad |
verified |
|
TEST_LoadPersistentTriggers_NewTriggerIdIsHigherThanRestoredId |
NewTriggerIdIsHigherThanRestoredId |
verified |
|
TEST_LoadPersistentTriggers_ResetBehaviorDoesNotRestoreTriggers |
ResetBehaviorDoesNotRestoreTriggers |
verified |
|
TEST_LoadPersistentTriggers_RestoreBehaviorLoadsActiveTrigger |
RestoreBehaviorLoadsActiveTrigger |
verified |
|
test_acquire_already_locked |
verified |
||
test_acquire_break_lock |
verified |
||
test_acquire_break_lock_not_breakable |
verified |
||
test_acquire_invalid_expiration |
verified |
||
test_acquire_invalid_scope |
verified |
||
test_acquire_lock_basic |
verified |
||
test_acquire_lock_full |
verified |
||
test_acquire_lock_scoped |
verified |
||
test_check_access_area_propagation |
verified |
||
test_check_access_not_owner |
verified |
||
test_check_access_owner |
verified |
||
test_check_access_parent_propagation |
verified |
||
TEST_LockManagerTest_test_check_access_partial_scope_propagation |
test_check_access_partial_scope_propagation |
verified |
|
test_check_access_scoped_match |
verified |
||
test_check_access_scoped_no_match |
verified |
||
test_check_access_unlocked |
verified |
||
test_cleanup_expired |
verified |
||
test_cleanup_not_expired |
verified |
||
test_config_disabled |
verified |
||
test_extend_lock |
verified |
||
test_extend_not_found |
verified |
||
test_extend_not_owner |
verified |
||
test_get_lock |
verified |
||
test_get_lock_by_id |
verified |
||
TEST_LockManagerTest_test_lock_required_different_collection_not_blocked |
test_lock_required_different_collection_not_blocked |
verified |
|
test_lock_required_has_lock |
verified |
||
test_lock_required_no_lock_held |
verified |
||
test_release_lock |
verified |
||
test_release_not_found |
verified |
||
test_release_not_owner |
verified |
||
TEST_LogHandlersTest_GetLogsBadRequestBodyContainsInvalidRequestErrorCode |
GetLogsBadRequestBodyContainsInvalidRequestErrorCode |
verified |
|
GetLogsBadRequestBodyIsValidJson |
verified |
||
TEST_LogHandlersTest_GetLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode |
GetLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode |
verified |
|
TEST_LogHandlersTest_GetLogsConfigurationBadRequestBodyIsValidJson |
GetLogsConfigurationBadRequestBodyIsValidJson |
verified |
|
TEST_LogHandlersTest_GetLogsConfigurationReturnsBadRequestWhenMatchesMissing |
GetLogsConfigurationReturnsBadRequestWhenMatchesMissing |
verified |
|
TEST_LogHandlersTest_GetLogsReturnsBadRequestWhenMatchesMissing |
GetLogsReturnsBadRequestWhenMatchesMissing |
verified |
|
TEST_LogHandlersTest_PutLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode |
PutLogsConfigurationBadRequestBodyContainsInvalidRequestErrorCode |
verified |
|
TEST_LogHandlersTest_PutLogsConfigurationBadRequestBodyIsValidJson |
PutLogsConfigurationBadRequestBodyIsValidJson |
verified |
|
TEST_LogHandlersTest_PutLogsConfigurationReturnsBadRequestWhenMatchesMissing |
PutLogsConfigurationReturnsBadRequestWhenMatchesMissing |
verified |
|
AddLogEntry_EmptyMetadataNoSuffix |
verified |
||
AddLogEntry_EntryRetrievable |
verified |
||
TEST_LogManagerBufferTest_AddLogEntry_InvalidSeverityFallsBackToInfo |
AddLogEntry_InvalidSeverityFallsBackToInfo |
verified |
|
TEST_LogManagerBufferTest_AddLogEntry_MetadataAppendedToMessage |
AddLogEntry_MetadataAppendedToMessage |
verified |
|
BufferCapDropsNewNodesWhenFull |
verified |
||
ContextFilterMatchesSubstring |
verified |
||
FqnWithLeadingSlashMatchesBuffer |
verified |
||
TEST_LogManagerBufferTest_GetConfigReturnsDefaultsForUnknownEntity |
GetConfigReturnsDefaultsForUnknownEntity |
verified |
|
TEST_LogManagerBufferTest_GetLogsMatchesDotNotationLoggerNames |
GetLogsMatchesDotNotationLoggerNames |
verified |
|
TEST_LogManagerBufferTest_GetLogsPrefixMatchesDotNotationLoggerNames |
GetLogsPrefixMatchesDotNotationLoggerNames |
verified |
|
MaxEntriesCapsMostRecentEntries |
verified |
||
TEST_LogManagerBufferTest_PartialConfigUpdatePreservesOtherField |
PartialConfigUpdatePreservesOtherField |
verified |
|
TEST_LogManagerBufferTest_PrefixMatchDoesNotFalsePositiveOnSubstring |
PrefixMatchDoesNotFalsePositiveOnSubstring |
verified |
|
TEST_LogManagerBufferTest_PrefixMatchIncludesChildNamespaces |
PrefixMatchIncludesChildNamespaces |
verified |
|
TEST_LogManagerBufferTest_RingBufferEvictsOldestEntryWhenFull |
RingBufferEvictsOldestEntryWhenFull |
verified |
|
SeverityFilterExcludesLowerLevels |
verified |
||
TEST_LogManagerBufferTest_UpdateConfigRejectsInvalidSeverity |
UpdateConfigRejectsInvalidSeverity |
verified |
|
UpdateConfigRejectsZeroMaxEntries |
verified |
||
AllSeverityLevels |
verified |
||
BasicFields |
verified |
||
EmptyOptionalFieldsOmitted |
verified |
||
NormalizeEmptyStringUnchanged |
verified |
||
NormalizeNoLeadingSlashUnchanged |
verified |
||
NormalizeStripsLeadingSlash |
verified |
||
TEST_LogManagerIngestionTest_DefaultManagesIngestionPreservesCurrentBehavior |
DefaultManagesIngestionPreservesCurrentBehavior |
verified |
|
TEST_LogManagerIngestionTest_ManagesIngestionDelegatesToPlugin |
ManagesIngestionDelegatesToPlugin |
verified |
|
TEST_LogManagerIngestionTest_ManagesIngestionGetConfigDelegatesToPlugin |
ManagesIngestionGetConfigDelegatesToPlugin |
verified |
|
TEST_LogManagerIngestionTest_ManagesIngestionLocalBufferBypassed |
ManagesIngestionLocalBufferBypassed |
verified |
|
TEST_LogManagerIngestionTest_ManagesIngestionStillValidatesBeforeDelegation |
ManagesIngestionStillValidatesBeforeDelegation |
verified |
|
TEST_LogManagerIngestionTest_ManagesIngestionUpdateConfigDelegatesToPlugin |
ManagesIngestionUpdateConfigDelegatesToPlugin |
verified |
|
TEST_LogManagerIngestionTest_NoPluginPreservesDefaultBehavior |
NoPluginPreservesDefaultBehavior |
verified |
|
TEST_LogManagerIngestionTest_PluginGetConfigThrowReturnsError |
PluginGetConfigThrowReturnsError |
verified |
|
PluginGetLogsThrowReturnsError |
verified |
||
TEST_LogManagerResolverTest_ResolverMatchesBareNameReturnsEntityId |
ResolverMatchesBareNameReturnsEntityId |
verified |
|
TEST_LogManagerResolverTest_ResolverMatchesWithSlashPrefixReturnsEntityId |
ResolverMatchesWithSlashPrefixReturnsEntityId |
verified |
|
TEST_LogManagerResolverTest_ResolverReturnsEmptyFallsBackToLastSegment |
ResolverReturnsEmptyFallsBackToLastSegment |
verified |
|
IsValidSeverity |
verified |
||
LevelToSeverityMapping |
verified |
||
SeverityToLevelMapping |
verified |
||
DefaultPolicies |
verified |
||
ParseScripts |
verified |
||
ParseScriptsMissingFormat |
verified |
||
ParseScriptsMissingId |
verified |
||
ParseScriptsMissingPath |
verified |
||
ParseScriptsTimeoutClampedToMinimum |
verified |
||
AppStatusMerge_BoolOrSemantics |
verified |
||
LayerExceptionDoesNotCrashPipeline |
verified |
||
PluginReceivesDiscoveryContext |
verified |
||
TEST_MergePipelineTest_ThreeLayerMerge_PerFieldGroupOwnerTracking |
ThreeLayerMerge_PerFieldGroupOwnerTracking |
verified |
|
TEST_MergePipelineTest_ThreeLayerMerge_PluginEnrichesManifestEntity |
ThreeLayerMerge_PluginEnrichesManifestEntity |
verified |
|
MergePolicyValues |
verified |
||
TEST_OpenApiSpecBuilderTest_AlwaysIncludesGenericErrorResponse |
AlwaysIncludesGenericErrorResponse |
verified |
|
BuildContainsComponentsSchemas |
verified |
||
BuildContainsInfoBlock |
verified |
||
BuildContainsPathsObject |
verified |
||
BuildContainsServersArray |
verified |
||
BuildContainsSovdVersion |
verified |
||
BuildProducesOpenApi310Version |
verified |
||
FluentInterfaceChaining |
verified |
||
GenericErrorSchemaAlwaysPresent |
verified |
||
TEST_OpenApiSpecBuilderTest_NonEmptySchemasArePresentInOutput |
NonEmptySchemasArePresentInOutput |
verified |
|
SecuritySchemeAddsToComponents |
verified |
||
DataCollectionWithTopic |
verified |
||
UpdateStatusUri |
verified |
||
ActionOperationHasGetAndPost |
verified |
||
BulkDataHasGet |
verified |
||
ConfigurationsHasGetAndDelete |
verified |
||
CyclicSubscriptionsHasGetAndPost |
verified |
||
DataCollectionHasGet |
verified |
||
DataItemGetAlwaysPresent |
verified |
||
DataItemPutForSubscribeTopic |
verified |
||
EntityCollectionHasGet |
verified |
||
TEST_PathBuilderTest_EntityDetailConcretePathOmitsParameters |
EntityDetailConcretePathOmitsParameters |
verified |
|
EntityDetailHasGet |
verified |
||
EntityDetailTemplatePathHasParameters |
verified |
||
ErrorResponsesWithoutAuth |
verified |
||
FaultsHasGetAndDelete |
verified |
||
LogsHasGet |
verified |
||
OperationsCollectionHasGet |
verified |
||
ServiceOperationHasGetAndPost |
verified |
||
SseEndpointHasGet |
verified |
||
DeepNestedPath |
verified |
||
EntityCollection |
verified |
||
HostsIsResourceCollection |
verified |
||
TEST_PathResolverTest_HostsUnderFunctionsIsResourceCollection |
HostsUnderFunctionsIsResourceCollection |
verified |
|
MultiSegmentResourceId |
verified |
||
NestedEntityCollection |
verified |
||
ResourceCollection |
verified |
||
RootPath |
verified |
||
SpecificEntity |
verified |
||
SpecificResource |
verified |
||
BackwardCompatibleWithoutResolver |
verified |
||
DifferentEntitiesSameFaultCode |
verified |
||
LidarFaultConfirmsImmediately |
verified |
||
LidarHealingWithThreshold1 |
verified |
||
MotorFaultNeedsDebouncing |
verified |
||
UnknownEntityUsesGlobalConfig |
verified |
||
AutoRefreshOnTTLExpiry |
verified |
||
ConcurrentLookupDoesNotCrash |
verified |
||
EmptyProcDir |
verified |
||
LookupAfterRefresh |
verified |
||
LookupMissingNode |
verified |
||
LookupRootNamespaceNode |
verified |
||
NonexistentProcDir |
verified |
||
NoRefreshWithinTTL |
verified |
||
DefaultPolicies |
verified |
||
ProcessInfoToJsonAllFields |
verified |
||
ProcessInfoToJsonNegativeUptimeClamped |
verified |
||
ProcessInfoToJsonZeroUptime |
verified |
||
ReadNonexistentPidFails |
verified |
||
ReadSelfProcess |
verified |
||
ReadSystemUptime |
verified |
||
ReadSystemUptimeMissingFile |
verified |
||
StateFieldPopulated |
verified |
||
EmptyResolverReturnsGlobal |
verified |
||
ExactMatch |
verified |
||
LongestPrefixWins |
verified |
||
NoMatchReturnsGlobal |
verified |
||
PartialOverrideMergesWithGlobal |
verified |
||
PrefixMatch |
verified |
||
PrefixMatchRequiresPathBoundary |
verified |
||
SizeReturnsEntryCount |
verified |
||
AsyncDispatchNonBlocking |
verified |
||
SubscribeAndNotify |
verified |
||
ConstructorAcceptsMcapFormat |
verified |
||
ConstructorRequiresValidNode |
verified |
||
ConstructorRequiresValidStorage |
verified |
||
ConstructorSucceedsWithValidParams |
verified |
||
ConstructorThrowsOnInvalidFormat |
verified |
||
ConstructorWithDisabledRosbag |
verified |
||
IsEnabledReturnsConfigState |
verified |
||
TEST_RouteDescriptionsTest_EmptyBuilderProducesEmptyDescriptions |
EmptyBuilderProducesEmptyDescriptions |
verified |
|
MultipleEndpoints |
verified |
||
PostWithRequestBody |
verified |
||
SchemaTypes |
verified |
||
SingleGetEndpoint |
verified |
||
AuthEnabledAdds401And403Responses |
verified |
||
ErrorResponsesUseGenericErrorRef |
verified |
||
OperationIdIsGenerated |
verified |
||
PathParamDescriptionsArePresent |
verified |
||
TEST_RouteRegistryTest_ToOpenapiPathsContainsRegisteredRoute |
ToOpenapiPathsContainsRegisteredRoute |
verified |
|
TEST_RouteRegistryTest_ToOpenapiPathsMultipleMethodsSamePath |
ToOpenapiPathsMultipleMethodsSamePath |
verified |
|
ToRegexPathRootBecomesRootAnchored |
verified |
||
DefaultPolicies |
verified |
||
ExactMatch_NodeNameAndNamespace |
verified |
||
OrphanPolicy_IncludeAsOrphan_NoError |
verified |
||
OrphanPolicy_Warn_NoError |
verified |
||
FromRosMsgKnownType |
verified |
||
FromRosMsgUnknownType |
verified |
||
AlreadyRunningMapsTo409 |
verified |
||
TEST_ScriptHandlersErrorMappingTest_ConcurrencyLimitMapsTo429 |
ConcurrencyLimitMapsTo429 |
verified |
|
DeleteReturns204 |
verified |
||
FileTooLargeMapsTo413 |
verified |
||
ManagedScriptMapsTo409 |
verified |
||
NotFoundMapsTo404 |
verified |
||
TEST_ScriptHandlersErrorMappingTest_StartExecutionReturns202WithLocation |
StartExecutionReturns202WithLocation |
verified |
|
TEST_ScriptHandlersErrorMappingTest_UploadRejectsWrongContentType |
UploadRejectsWrongContentType |
verified |
|
TEST_ScriptHandlersErrorMappingTest_UploadReturns201WithLocation |
UploadReturns201WithLocation |
verified |
|
TEST_ScriptHandlersNoBackendTest_ControlExecutionReturns501WhenNoBackend |
ControlExecutionReturns501WhenNoBackend |
verified |
|
TEST_ScriptHandlersNoBackendTest_DeleteReturns501WhenNoBackend |
DeleteReturns501WhenNoBackend |
verified |
|
TEST_ScriptHandlersNoBackendTest_GetExecutionReturns501WhenNoBackend |
GetExecutionReturns501WhenNoBackend |
verified |
|
GetReturns501WhenNoBackend |
verified |
||
TEST_ScriptHandlersNoBackendTest_ListReturns501WhenNoBackend |
ListReturns501WhenNoBackend |
verified |
|
TEST_ScriptHandlersNoBackendTest_StartExecutionReturns501WhenNoBackend |
StartExecutionReturns501WhenNoBackend |
verified |
|
TEST_ScriptHandlersNoBackendTest_UploadReturns501WhenNoBackend |
UploadReturns501WhenNoBackend |
verified |
|
ControlExecution |
verified |
||
DeleteManifestScript |
verified |
||
DeleteScript |
verified |
||
GetExecution |
verified |
||
GetScript |
verified |
||
GetScriptNotFound |
verified |
||
ListScripts |
verified |
||
StartExecution |
verified |
||
UploadScript |
verified |
||
TEST_SnapshotCaptureTest_BackgroundCaptureInitializesSubscriptions |
BackgroundCaptureInitializesSubscriptions |
verified |
|
ConfigAccessorReturnsCorrectValues |
verified |
||
ConstructorRequiresValidNode |
verified |
||
ConstructorRequiresValidStorage |
verified |
||
ConstructorSucceedsWithValidParams |
verified |
||
DisabledCaptureSkipsProcessing |
verified |
||
TEST_SnapshotCaptureTest_EmptyConfigurationHandledGracefully |
EmptyConfigurationHandledGracefully |
verified |
|
InvalidRegexPatternIsSkipped |
verified |
||
IsEnabledReturnsConfigState |
verified |
||
MultipleValidPatternsCompiled |
verified |
||
TEST_SnapshotCaptureTest_OnDemandCaptureHandlesNonExistentTopic |
OnDemandCaptureHandlesNonExistentTopic |
verified |
|
TEST_SqliteFaultStorageTest_ClearFaultDeletesAssociatedSnapshots |
ClearFaultDeletesAssociatedSnapshots |
verified |
|
FilterSnapshotsByTopic |
verified |
||
TEST_SqliteFaultStorageTest_GetAllRosbagFilesReturnsSortedByCreatedAt |
GetAllRosbagFilesReturnsSortedByCreatedAt |
verified |
|
TEST_SqliteFaultStorageTest_ListRosbagsForEntityFiltersCorrectly |
ListRosbagsForEntityFiltersCorrectly |
verified |
|
MultipleSnapshotsForSameFault |
verified |
||
NoSnapshotsForUnknownFault |
verified |
||
StoreAndRetrieveSnapshot |
verified |
||
ProtocolReturnsSse |
verified |
||
StartReturnsEventsUrl |
verified |
||
StopRemovesStream |
verified |
||
EmptyStatFile |
verified |
||
FindPidForNodeInSyntheticProc |
verified |
||
MalformedStatMissingComm |
verified |
||
ReadSyntheticProc |
verified |
||
ReadSystemUptimeSynthetic |
verified |
||
TruncatedStatAfterComm |
verified |
||
ComponentEndpointEmptyUnitsArray |
verified |
||
EscapeAtSignInTemplateUnit |
verified |
||
EscapeDotInServiceExtension |
verified |
||
EscapeEmptyString |
verified |
||
EscapeHyphenInUnitName |
verified |
||
EscapeSimpleServiceName |
verified |
||
EscapeSlashInPath |
verified |
||
TEST_TestAuthenticationIntegration_test_03_authenticate_valid_credentials |
test_03_authenticate_valid_credentials |
verified |
|
TEST_TestAuthenticationIntegration_test_06_authenticate_form_urlencoded |
test_06_authenticate_form_urlencoded |
verified |
|
test_07_refresh_token |
verified |
||
test_bulk_data_download_not_found |
verified |
||
TEST_TestBulkDataApi_test_bulk_data_list_categories_all_entity_types |
test_bulk_data_list_categories_all_entity_types |
verified |
|
TEST_TestBulkDataApi_test_bulk_data_list_categories_entity_not_found |
test_bulk_data_list_categories_entity_not_found |
verified |
|
test_bulk_data_list_categories_success |
verified |
||
TEST_TestBulkDataApi_test_bulk_data_list_descriptors_empty_result |
test_bulk_data_list_descriptors_empty_result |
verified |
|
TEST_TestBulkDataApi_test_bulk_data_list_descriptors_structure |
test_bulk_data_list_descriptors_structure |
verified |
|
test_bulk_data_nested_entity_path |
verified |
||
TEST_TestBulkDataApi_test_bulk_data_unknown_category_returns_404 |
test_bulk_data_unknown_category_returns_404 |
verified |
|
test_01_list_configurations |
verified |
||
test_02_get_configuration |
verified |
||
test_03_set_configuration |
verified |
||
TEST_TestConfigurationApi_test_04_delete_configuration_resets_to_default |
test_04_delete_configuration_resets_to_default |
verified |
|
TEST_TestConfigurationApi_test_05_configurations_nonexistent_app |
test_05_configurations_nonexistent_app |
verified |
|
TEST_TestConfigurationApi_test_06_configuration_nonexistent_parameter |
test_06_configuration_nonexistent_parameter |
verified |
|
TEST_TestConfigurationApi_test_07_set_configuration_missing_value |
test_07_set_configuration_missing_value |
verified |
|
TEST_TestConfigurationApi_test_08_root_endpoint_includes_configurations |
test_08_root_endpoint_includes_configurations |
verified |
|
test_all_apps_same_container |
verified |
||
TEST_TestContainerAppEndpoint_test_container_id_is_64_char_hex |
test_container_id_is_64_char_hex |
verified |
|
test_cpu_quota_detected |
verified |
||
test_memory_limit_detected |
verified |
||
test_returns_container_info |
verified |
||
test_runtime_is_docker |
verified |
||
TEST_TestContainerComponentEndpoint_test_containers_include_node_ids |
test_containers_include_node_ids |
verified |
|
TEST_TestContainerComponentEndpoint_test_containers_include_runtime |
test_containers_include_runtime |
verified |
|
TEST_TestContainerComponentEndpoint_test_returns_containers_aggregation |
test_returns_containers_aggregation |
verified |
|
TEST_TestContainerErrorHandling_test_nonexistent_app_returns_404 |
test_nonexistent_app_returns_404 |
verified |
|
TEST_TestContainerErrorHandling_test_nonexistent_component_returns_404 |
test_nonexistent_component_returns_404 |
verified |
|
test_app_data_body_door |
verified |
||
test_app_data_chassis_brakes |
verified |
||
test_app_data_powertrain_engine |
verified |
||
test_app_data_structure |
verified |
||
test_app_no_topics |
verified |
||
test_app_nonexistent_error |
verified |
||
TEST_TestDataRead_test_component_nonexistent_topic_metadata_only |
test_component_nonexistent_topic_metadata_only |
verified |
|
test_component_topic_data_structure |
verified |
||
TEST_TestDataRead_test_component_topic_nonexistent_component_error |
test_component_topic_nonexistent_component_error |
verified |
|
test_component_topic_pressure |
verified |
||
test_component_topic_rpm |
verified |
||
test_component_topic_temperature |
verified |
||
test_component_topic_valid_names |
verified |
||
test_component_topic_with_slashes |
verified |
||
test_list_area_data |
verified |
||
test_list_area_data_empty |
verified |
||
test_list_area_data_nonexistent |
verified |
||
test_list_area_data_root |
verified |
||
test_list_function_data_invalid_id |
verified |
||
test_list_function_data_nonexistent |
verified |
||
test_publish_brake_command |
verified |
||
test_publish_invalid_json_body |
verified |
||
test_publish_nonexistent_component |
verified |
||
TEST_TestDataWrite_test_publish_validation_invalid_type_format |
test_publish_validation_invalid_type_format |
verified |
|
test_publish_validation_missing_data |
verified |
||
test_publish_validation_missing_type |
verified |
||
TEST_TestDocsEndpoint_test_apps_docs_returns_entity_collection_spec |
test_apps_docs_returns_entity_collection_spec |
verified |
|
TEST_TestDocsEndpoint_test_areas_docs_returns_entity_collection_spec |
test_areas_docs_returns_entity_collection_spec |
verified |
|
TEST_TestDocsEndpoint_test_components_docs_returns_entity_collection_spec |
test_components_docs_returns_entity_collection_spec |
verified |
|
test_data_collection_docs |
verified |
||
TEST_TestDocsEndpoint_test_logs_configuration_schema_field_names |
test_logs_configuration_schema_field_names |
verified |
|
TEST_TestDocsEndpoint_test_nonexistent_entity_docs_returns_404 |
test_nonexistent_entity_docs_returns_404 |
verified |
|
TEST_TestDocsEndpoint_test_nonexistent_path_docs_returns_404 |
test_nonexistent_path_docs_returns_404 |
verified |
|
test_operations_collection_docs |
verified |
||
test_root_docs_returns_openapi_spec |
verified |
||
test_spec_contains_components |
verified |
||
test_spec_contains_server_info |
verified |
||
test_specific_app_docs |
verified |
||
TEST_TestEntityListing_test_area_components_nonexistent_error |
test_area_components_nonexistent_error |
verified |
|
test_area_components_success |
verified |
||
test_automotive_areas_discovery |
verified |
||
test_invalid_app_id_special_chars |
verified |
||
test_invalid_area_id_special_chars |
verified |
||
test_invalid_ids_with_special_chars |
verified |
||
test_list_areas |
verified |
||
test_list_components |
verified |
||
test_valid_ids_with_underscores |
verified |
||
test_app_routes_work_with_app_id |
verified |
||
TEST_TestEntityRouting_test_component_route_rejects_app_id_configurations |
test_component_route_rejects_app_id_configurations |
verified |
|
TEST_TestEntityRouting_test_component_route_rejects_app_id_data |
test_component_route_rejects_app_id_data |
verified |
|
TEST_TestEntityRouting_test_component_route_rejects_app_id_faults |
test_component_route_rejects_app_id_faults |
verified |
|
TEST_TestEntityRouting_test_component_route_rejects_app_id_operations |
test_component_route_rejects_app_id_operations |
verified |
|
TEST_TestFaultManagerIntegration_test_16_snapshot_capture_on_fault_confirmation |
test_16_snapshot_capture_on_fault_confirmation |
verified |
|
TEST_TestFaultManagerIntegration_test_17_get_snapshots_nonexistent_fault |
test_17_get_snapshots_nonexistent_fault |
verified |
|
TEST_TestFaultManagerIntegration_test_18_get_snapshots_empty_fault_code |
test_18_get_snapshots_empty_fault_code |
verified |
|
TEST_TestFaultManagerIntegration_test_19_snapshot_with_topic_filter |
test_19_snapshot_with_topic_filter |
verified |
|
TEST_TestFaultManagerIntegration_test_20_snapshot_config_loads_patterns |
test_20_snapshot_config_loads_patterns |
verified |
|
test_faults_nonexistent_component |
verified |
||
test_get_nonexistent_fault |
verified |
||
test_list_faults_response_structure |
verified |
||
test_root_endpoint_includes_faults |
verified |
||
test_app_accessible_without_areas |
verified |
||
test_apps_count |
verified |
||
test_areas_empty |
verified |
||
test_components_count |
verified |
||
test_functions_count |
verified |
||
test_subcomponents_count |
verified |
||
test_app_is_located_on_endpoint |
verified |
||
test_area_contains_nonexistent |
verified |
||
test_component_hosts_nonexistent |
verified |
||
TEST_TestGatewayNode_test_execution_update_execution_not_found |
test_execution_update_execution_not_found |
verified |
|
TEST_TestGatewayNode_test_execution_update_invalid_component_id |
test_execution_update_invalid_component_id |
verified |
|
TEST_TestGatewayNode_test_execution_update_missing_capability |
test_execution_update_missing_capability |
verified |
|
TEST_TestGatewayNode_test_execution_update_unsupported_capability |
test_execution_update_unsupported_capability |
verified |
|
test_list_areas_endpoint |
verified |
||
test_list_components_endpoint |
verified |
||
test_root_endpoint |
verified |
||
test_version_info_endpoint |
verified |
||
test_app_detail_has_capability_uris |
verified |
||
test_apps_list_has_href |
verified |
||
test_area_detail_has_capability_uris |
verified |
||
test_areas_list_has_href |
verified |
||
test_component_detail_has_capability_uris |
verified |
||
test_components_list_has_href |
verified |
||
test_contains_list_has_href |
verified |
||
test_depends_on_apps_has_href |
verified |
||
test_depends_on_apps_nonexistent |
verified |
||
test_depends_on_components_has_href |
verified |
||
test_function_detail_has_capability_uris |
verified |
||
test_functions_list_has_href |
verified |
||
test_hosts_list_has_href |
verified |
||
test_is_located_on_apps_has_href |
verified |
||
test_is_located_on_apps_nonexistent |
verified |
||
test_subareas_list_has_href |
verified |
||
test_subcomponents_list_has_href |
verified |
||
test_x_medkit_extension_in_list_responses |
verified |
||
test_docs_endpoint |
verified |
||
test_docs_spec_completeness |
verified |
||
test_health_endpoint_returns_200 |
verified |
||
test_root_endpoint_returns_api_info |
verified |
||
test_root_includes_apps_endpoints |
verified |
||
test_version_endpoint |
verified |
||
test_exact_app_count |
verified |
||
test_exact_area_count |
verified |
||
test_exact_component_count |
verified |
||
test_exact_function_count |
verified |
||
test_health_shows_hybrid_mode |
verified |
||
test_manifest_apps_are_online |
verified |
||
test_no_root_or_synthetic_areas |
verified |
||
TEST_TestHybridSuppression_test_no_underscored_app_duplicates |
test_no_underscored_app_duplicates |
verified |
|
TEST_TestHybridSuppression_test_no_underscored_component_duplicates |
test_no_underscored_component_duplicates |
verified |
|
test_acquire_lock_on_app |
verified |
||
test_acquire_lock_with_scopes |
verified |
||
test_acquire_without_client_id_returns_400 |
verified |
||
TEST_TestLocking_test_acquire_without_expiration_returns_400 |
test_acquire_without_expiration_returns_400 |
verified |
|
test_already_locked_returns_409 |
verified |
||
test_break_lock |
verified |
||
test_extend_lock |
verified |
||
test_get_lock_details |
verified |
||
test_list_locks |
verified |
||
test_list_locks_empty |
verified |
||
test_lock_blocks_other_client |
verified |
||
test_lock_expires_automatically |
verified |
||
test_nonexistent_entity_returns_404 |
verified |
||
test_owned_field_per_client |
verified |
||
test_release_lock |
verified |
||
test_release_not_owner_returns_403 |
verified |
||
test_scoped_lock_allows_other_collections |
verified |
||
TEST_TestLockingFaults_test_global_clear_skips_locked_entity_faults |
test_global_clear_skips_locked_entity_faults |
verified |
|
TEST_TestLockingPropagation_test_component_lock_allows_owner_on_child |
test_component_lock_allows_owner_on_child |
verified |
|
TEST_TestLockingPropagation_test_component_lock_blocks_child_app |
test_component_lock_blocks_child_app |
verified |
|
TEST_TestMultiCollectionSubscriptions_test_configurations_subscription_create |
test_configurations_subscription_create |
verified |
|
TEST_TestMultiCollectionSubscriptions_test_data_subscription_create |
test_data_subscription_create |
verified |
|
TEST_TestMultiCollectionSubscriptions_test_delete_subscription |
test_delete_subscription |
verified |
|
TEST_TestMultiCollectionSubscriptions_test_faults_subscription_create |
test_faults_subscription_create |
verified |
|
test_get_subscription |
verified |
||
TEST_TestMultiCollectionSubscriptions_test_list_subscriptions |
test_list_subscriptions |
verified |
|
TEST_TestMultiCollectionSubscriptions_test_logs_subscription_create |
test_logs_subscription_create |
verified |
|
TEST_TestMultiCollectionSubscriptions_test_logs_subscription_sse_stream |
test_logs_subscription_sse_stream |
verified |
|
TEST_TestMultiCollectionSubscriptions_test_update_subscription_interval |
test_update_subscription_interval |
verified |
|
test_cancel_nonexistent_execution |
verified |
||
test_create_execution_for_service |
verified |
||
test_get_operation_details_for_apps |
verified |
||
TEST_TestOperationsApi_test_get_operation_details_for_service |
test_get_operation_details_for_service |
verified |
|
test_get_operation_not_found |
verified |
||
TEST_TestOperationsApi_test_list_executions_returns_items_array |
test_list_executions_returns_items_array |
verified |
|
test_list_operations |
verified |
||
TEST_TestOperationsApi_test_operation_call_calibrate_service |
test_operation_call_calibrate_service |
verified |
|
TEST_TestOperationsApi_test_operation_call_invalid_entity_id |
test_operation_call_invalid_entity_id |
verified |
|
TEST_TestOperationsApi_test_operation_call_invalid_operation_name |
test_operation_call_invalid_operation_name |
verified |
|
TEST_TestOperationsApi_test_operation_call_nonexistent_entity |
test_operation_call_nonexistent_entity |
verified |
|
TEST_TestOperationsApi_test_operation_call_nonexistent_operation |
test_operation_call_nonexistent_operation |
verified |
|
TEST_TestOperationsApi_test_operation_call_with_invalid_json |
test_operation_call_with_invalid_json |
verified |
|
TEST_TestOperationsApi_test_operations_listed_in_app_discovery |
test_operations_listed_in_app_discovery |
verified |
|
TEST_TestOperationsApi_test_root_endpoint_includes_operations |
test_root_endpoint_includes_operations |
verified |
|
TEST_TestScenarioActionLifecycle_test_01_create_action_execution_and_poll_to_completion |
test_01_create_action_execution_and_poll_to_completion |
verified |
|
TEST_TestScenarioActionLifecycle_test_02_cancel_action_execution |
test_02_cancel_action_execution |
verified |
|
TEST_TestScenarioActionLifecycle_test_03_service_execution_returns_immediately |
test_03_service_execution_returns_immediately |
verified |
|
TEST_TestScenarioActionLifecycle_test_04_execution_appears_in_list |
test_04_execution_appears_in_list |
verified |
|
TEST_TestScenarioActionLifecycle_test_06_get_operation_details |
test_06_get_operation_details |
verified |
|
TEST_TestScenarioActionLifecycle_test_07_get_execution_status |
test_07_get_execution_status |
verified |
|
TEST_TestScenarioActionLifecycle_test_08_update_execution_not_implemented |
test_08_update_execution_not_implemented |
verified |
|
TEST_TestScenarioBulkDataDownload_test_01_download_rosbag_success |
test_01_download_rosbag_success |
verified |
|
TEST_TestScenarioBulkDataDownload_test_02_download_wrong_entity_returns_404 |
test_02_download_wrong_entity_returns_404 |
verified |
|
TEST_TestScenarioBulkDataDownload_test_03_verify_complete_rosbag_content |
test_03_verify_complete_rosbag_content |
verified |
|
test_01_upload_small_file |
verified |
||
TEST_TestScenarioBulkDataUpload_test_02_upload_returns_location_header |
test_02_upload_returns_location_header |
verified |
|
TEST_TestScenarioBulkDataUpload_test_03_upload_with_description |
test_03_upload_with_description |
verified |
|
TEST_TestScenarioBulkDataUpload_test_04_upload_with_metadata |
test_04_upload_with_metadata |
verified |
|
TEST_TestScenarioBulkDataUpload_test_05_upload_missing_file_field |
test_05_upload_missing_file_field |
verified |
|
TEST_TestScenarioBulkDataUpload_test_06_upload_unknown_category |
test_06_upload_unknown_category |
verified |
|
TEST_TestScenarioBulkDataUpload_test_07_upload_rosbags_rejected |
test_07_upload_rosbags_rejected |
verified |
|
TEST_TestScenarioBulkDataUpload_test_08_upload_nonexistent_entity |
test_08_upload_nonexistent_entity |
verified |
|
test_09_upload_to_areas_405 |
verified |
||
TEST_TestScenarioBulkDataUpload_test_10_upload_to_functions_405 |
test_10_upload_to_functions_405 |
verified |
|
TEST_TestScenarioBulkDataUpload_test_11_delete_uploaded_item |
test_11_delete_uploaded_item |
verified |
|
TEST_TestScenarioBulkDataUpload_test_12_delete_nonexistent_item |
test_12_delete_nonexistent_item |
verified |
|
TEST_TestScenarioBulkDataUpload_test_13_delete_rosbags_rejected |
test_13_delete_rosbags_rejected |
verified |
|
test_14_delete_to_areas_405 |
verified |
||
TEST_TestScenarioBulkDataUpload_test_15_list_categories_includes_configured |
test_15_list_categories_includes_configured |
verified |
|
TEST_TestScenarioBulkDataUpload_test_16_list_descriptors_after_upload |
test_16_list_descriptors_after_upload |
verified |
|
TEST_TestScenarioBulkDataUpload_test_17_download_uploaded_file |
test_17_download_uploaded_file |
verified |
|
TEST_TestScenarioBulkDataUpload_test_18_download_nonexistent_returns_404 |
test_18_download_nonexistent_returns_404 |
verified |
|
TEST_TestScenarioBulkDataUpload_test_19_list_empty_after_delete |
test_19_list_empty_after_delete |
verified |
|
test_20_full_crud_cycle |
verified |
||
TEST_TestScenarioConfigManagement_test_01_list_configurations |
test_01_list_configurations |
verified |
|
TEST_TestScenarioConfigManagement_test_02_get_configuration_value |
test_02_get_configuration_value |
verified |
|
TEST_TestScenarioConfigManagement_test_03_set_and_verify_configuration |
test_03_set_and_verify_configuration |
verified |
|
TEST_TestScenarioConfigManagement_test_04_reset_all_configurations |
test_04_reset_all_configurations |
verified |
|
TEST_TestScenarioConfigManagement_test_05_reset_single_configuration |
test_05_reset_single_configuration |
verified |
|
test_01_read_sensor_data |
verified |
||
TEST_TestScenarioDataPublishVerify_test_02_publish_command_to_actuator |
test_02_publish_command_to_actuator |
verified |
|
TEST_TestScenarioDataPublishVerify_test_03_read_actuator_feedback |
test_03_read_actuator_feedback |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_01_areas_from_manifest |
test_01_areas_from_manifest |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_02_area_with_description |
test_02_area_with_description |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_03_area_subareas_hierarchy |
test_03_area_subareas_hierarchy |
verified |
|
test_04_nested_subareas |
verified |
||
TEST_TestScenarioDiscoveryHybrid_test_05_components_from_manifest |
test_05_components_from_manifest |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_06_component_type_preserved |
test_06_component_type_preserved |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_07_component_area_relationship |
test_07_component_area_relationship |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_08_component_subcomponents |
test_08_component_subcomponents |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_09_component_subcomponents_not_found |
test_09_component_subcomponents_not_found |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_10_component_depends_on_returns_items |
test_10_component_depends_on_returns_items |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_11_component_depends_on_empty |
test_11_component_depends_on_empty |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_12_component_depends_on_not_found |
test_12_component_depends_on_not_found |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_13_component_capabilities_includes_depends_on_link |
test_13_component_capabilities_includes_depends_on_link |
verified |
|
test_14_apps_from_manifest |
verified |
||
TEST_TestScenarioDiscoveryHybrid_test_15_app_online_with_runtime_node |
test_15_app_online_with_runtime_node |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_19_app_depends_on_relationship |
test_19_app_depends_on_relationship |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_20_functions_from_manifest |
test_20_functions_from_manifest |
verified |
|
TEST_TestScenarioDiscoveryHybrid_test_21_function_hosts_relationship |
test_21_function_hosts_relationship |
verified |
|
test_24_function_with_tags |
verified |
||
test_01_list_areas |
verified |
||
test_02_get_area_details |
verified |
||
test_04_area_subareas |
verified |
||
test_05_area_components |
verified |
||
test_06_list_components |
verified |
||
TEST_TestScenarioDiscoveryManifest_test_07_get_component_details |
test_07_get_component_details |
verified |
|
TEST_TestScenarioDiscoveryManifest_test_09_component_subcomponents |
test_09_component_subcomponents |
verified |
|
TEST_TestScenarioDiscoveryManifest_test_10_component_subcomponents_not_found |
test_10_component_subcomponents_not_found |
verified |
|
test_11_list_apps |
verified |
||
test_12_get_app_details |
verified |
||
TEST_TestScenarioDiscoveryManifest_test_15_app_data_endpoint |
test_15_app_data_endpoint |
verified |
|
TEST_TestScenarioDiscoveryManifest_test_17_app_configurations_endpoint |
test_17_app_configurations_endpoint |
verified |
|
TEST_TestScenarioDiscoveryManifest_test_18_app_data_item_endpoint |
test_18_app_data_item_endpoint |
verified |
|
test_19_list_functions |
verified |
||
TEST_TestScenarioDiscoveryManifest_test_20_get_function_details |
test_20_get_function_details |
verified |
|
test_22_function_hosts |
verified |
||
TEST_TestScenarioFaultInspection_test_01_fault_response_structure |
test_01_fault_response_structure |
verified |
|
TEST_TestScenarioFaultInspection_test_02_fault_status_object_structure |
test_02_fault_status_object_structure |
verified |
|
TEST_TestScenarioFaultInspection_test_03_fault_environment_data_structure |
test_03_fault_environment_data_structure |
verified |
|
TEST_TestScenarioFaultInspection_test_04_fault_snapshot_freeze_frame |
test_04_fault_snapshot_freeze_frame |
verified |
|
TEST_TestScenarioFaultInspection_test_05_fault_snapshot_rosbag_has_bulk_data_uri |
test_05_fault_snapshot_rosbag_has_bulk_data_uri |
verified |
|
TEST_TestScenarioFaultInspection_test_06_fault_x_medkit_extensions |
test_06_fault_x_medkit_extensions |
verified |
|
TEST_TestScenarioFaultLifecycle_test_01_wait_for_faults_to_appear |
test_01_wait_for_faults_to_appear |
verified |
|
TEST_TestScenarioFaultLifecycle_test_02_delete_all_faults_for_component |
test_02_delete_all_faults_for_component |
verified |
|
TEST_TestScenarioFaultLifecycle_test_03_delete_all_faults_for_app |
test_03_delete_all_faults_for_app |
verified |
|
TEST_TestScenarioFaultLifecycle_test_04_delete_all_faults_nonexistent |
test_04_delete_all_faults_nonexistent |
verified |
|
test_05_delete_single_fault |
verified |
||
TEST_TestScenarioSubscriptions_test_01_create_subscription_returns_201_with_correct_schema |
test_01_create_subscription_returns_201_with_correct_schema |
verified |
|
TEST_TestScenarioSubscriptions_test_02_list_subscriptions_returns_created_ones |
test_02_list_subscriptions_returns_created_ones |
verified |
|
TEST_TestScenarioSubscriptions_test_03_get_single_subscription |
test_03_get_single_subscription |
verified |
|
TEST_TestScenarioSubscriptions_test_04_update_subscription_interval |
test_04_update_subscription_interval |
verified |
|
TEST_TestScenarioSubscriptions_test_05_update_subscription_duration |
test_05_update_subscription_duration |
verified |
|
TEST_TestScenarioSubscriptions_test_06_delete_subscription_returns_204 |
test_06_delete_subscription_returns_204 |
verified |
|
TEST_TestScenarioSubscriptions_test_07_empty_list_after_delete |
test_07_empty_list_after_delete |
verified |
|
TEST_TestScenarioSubscriptions_test_10_sse_stream_returns_correct_headers |
test_10_sse_stream_returns_correct_headers |
verified |
|
TEST_TestScenarioSubscriptions_test_11_sse_stream_delivers_periodic_data |
test_11_sse_stream_delivers_periodic_data |
verified |
|
TEST_TestScenarioSubscriptions_test_12_sse_stream_closes_on_subscription_delete |
test_12_sse_stream_closes_on_subscription_delete |
verified |
|
TEST_TestScenarioSubscriptions_test_20_create_with_invalid_interval_returns_400 |
test_20_create_with_invalid_interval_returns_400 |
verified |
|
TEST_TestScenarioSubscriptions_test_21_create_with_zero_duration_returns_400 |
test_21_create_with_zero_duration_returns_400 |
verified |
|
TEST_TestScenarioSubscriptions_test_22_create_with_unsupported_protocol_returns_400 |
test_22_create_with_unsupported_protocol_returns_400 |
verified |
|
TEST_TestScenarioSubscriptions_test_23_create_with_invalid_resource_uri_returns_400 |
test_23_create_with_invalid_resource_uri_returns_400 |
verified |
|
TEST_TestScenarioSubscriptions_test_24_get_nonexistent_subscription_returns_404 |
test_24_get_nonexistent_subscription_returns_404 |
verified |
|
TEST_TestScenarioSubscriptions_test_25_delete_nonexistent_subscription_returns_404 |
test_25_delete_nonexistent_subscription_returns_404 |
verified |
|
TEST_TestScenarioSubscriptions_test_26_update_nonexistent_subscription_returns_404 |
test_26_update_nonexistent_subscription_returns_404 |
verified |
|
TEST_TestScenarioSubscriptions_test_27_create_for_nonexistent_entity_returns_404 |
test_27_create_for_nonexistent_entity_returns_404 |
verified |
|
TEST_TestScenarioSubscriptions_test_28_sse_stream_for_nonexistent_subscription_returns_404 |
test_28_sse_stream_for_nonexistent_subscription_returns_404 |
verified |
|
TEST_TestScenarioSubscriptions_test_30_cyclic_subscriptions_work_on_components |
test_30_cyclic_subscriptions_work_on_components |
verified |
|
test_01_list_scripts_empty |
verified |
||
test_02_upload_and_list |
verified |
||
test_03_get_script_metadata |
verified |
||
test_04_get_nonexistent_returns_404 |
verified |
||
test_05_delete_script |
verified |
||
test_06_delete_nonexistent_returns_404 |
verified |
||
test_07_upload_missing_file_field |
verified |
||
test_09_upload_with_metadata |
verified |
||
test_01_execute_python_script |
verified |
||
test_02_execute_shell_script |
verified |
||
TEST_TestScriptsExecution_test_03_terminate_running_execution |
test_03_terminate_running_execution |
verified |
|
test_06_get_nonexistent_execution |
verified |
||
TEST_TestScriptsExecution_test_07_start_execution_missing_type |
test_07_start_execution_missing_type |
verified |
|
TEST_TestScriptsExecution_test_08_start_execution_invalid_json |
test_08_start_execution_invalid_json |
verified |
|
test_09_execution_has_timestamps |
verified |
||
test_10_bash_script_execution |
verified |
||
test_11_output_content_verified |
verified |
||
test_12_parameters_via_stdin |
verified |
||
test_13_failed_script_execution |
verified |
||
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 |
|
TEST_TestScriptsNotConfigured_test_02_upload_script_returns_501 |
test_02_upload_script_returns_501 |
verified |
|
TEST_TestScriptsNotConfigured_test_03_get_script_returns_501 |
test_03_get_script_returns_501 |
verified |
|
TEST_TestScriptsNotConfigured_test_04_delete_script_returns_501 |
test_04_delete_script_returns_501 |
verified |
|
TEST_TestScriptsNotConfigured_test_05_start_execution_returns_501 |
test_05_start_execution_returns_501 |
verified |
|
TEST_TestScriptsNotConfigured_test_06_get_execution_returns_501 |
test_06_get_execution_returns_501 |
verified |
|
TEST_TestScriptsNotConfigured_test_07_control_execution_returns_501 |
test_07_control_execution_returns_501 |
verified |
|
TEST_TestSnapshotsApi_test_root_endpoint_excludes_legacy_snapshots |
test_root_endpoint_excludes_legacy_snapshots |
verified |
|
test_returns_restart_count |
verified |
||
test_returns_unit_info |
verified |
||
test_returns_unit_type |
verified |
||
test_returns_watchdog_usec |
verified |
||
TEST_TestSystemdComponentEndpoint_test_returns_units_aggregation |
test_returns_units_aggregation |
verified |
|
TEST_TestSystemdComponentEndpoint_test_units_have_active_state |
test_units_have_active_state |
verified |
|
TEST_TestSystemdComponentEndpoint_test_units_include_node_ids |
test_units_include_node_ids |
verified |
|
TEST_TestSystemdErrorHandling_test_nonexistent_app_returns_404 |
test_nonexistent_app_returns_404 |
verified |
|
TEST_TestSystemdErrorHandling_test_nonexistent_component_returns_404 |
test_nonexistent_component_returns_404 |
verified |
|
TEST_TestTriggersData_test_01_create_trigger_returns_201_with_correct_schema |
test_01_create_trigger_returns_201_with_correct_schema |
verified |
|
TEST_TestTriggersData_test_02_list_triggers_returns_created_trigger |
test_02_list_triggers_returns_created_trigger |
verified |
|
test_03_get_single_trigger |
verified |
||
test_04_update_trigger_lifetime |
verified |
||
test_05_delete_trigger_returns_204 |
verified |
||
TEST_TestTriggersData_test_10_sse_stream_returns_correct_headers |
test_10_sse_stream_returns_correct_headers |
verified |
|
TEST_TestTriggersData_test_11_sse_stream_delivers_data_events |
test_11_sse_stream_delivers_data_events |
verified |
|
TEST_TestTriggersData_test_12_sse_stream_closes_on_trigger_delete |
test_12_sse_stream_closes_on_trigger_delete |
verified |
|
TEST_TestTriggersData_test_27_events_for_nonexistent_trigger_returns_404 |
test_27_events_for_nonexistent_trigger_returns_404 |
verified |
|
TEST_TestTriggersFaults_test_01_create_fault_trigger_returns_201 |
test_01_create_fault_trigger_returns_201 |
verified |
|
test_02_list_fault_triggers |
verified |
||
test_03_get_fault_trigger |
verified |
||
TEST_TestTriggersFaults_test_04_update_fault_trigger_lifetime |
test_04_update_fault_trigger_lifetime |
verified |
|
test_05_delete_fault_trigger |
verified |
||
TEST_TestTriggersFaults_test_10_sse_endpoint_connects_and_streams |
test_10_sse_endpoint_connects_and_streams |
verified |
|
TEST_TestTriggersFaults_test_11_sse_fault_event_has_correct_headers |
test_11_sse_fault_event_has_correct_headers |
verified |
|
TEST_TestTriggersHierarchy_test_01_component_trigger_created_successfully |
test_01_component_trigger_created_successfully |
verified |
|
test_05_list_triggers_on_area |
verified |
||
TEST_TestTriggersHierarchy_test_06_delete_trigger_on_function |
test_06_delete_trigger_on_function |
verified |
|
test_01_create_logs_trigger |
verified |
||
test_02_list_logs_triggers |
verified |
||
test_03_get_logs_trigger |
verified |
||
test_04_update_logs_trigger_lifetime |
verified |
||
test_05_delete_logs_trigger |
verified |
||
TEST_TestTriggersLogs_test_10_sse_endpoint_connects_for_log_trigger |
test_10_sse_endpoint_connects_for_log_trigger |
verified |
|
test_11_sse_log_event_headers |
verified |
||
TEST_TestTriggersPersistent_test_01_create_persistent_trigger |
test_01_create_persistent_trigger |
verified |
|
TEST_TestTriggersPersistent_test_02_trigger_listed_on_primary |
test_02_trigger_listed_on_primary |
verified |
|
TEST_TestTriggersPersistent_test_04_restored_trigger_fields_match |
test_04_restored_trigger_fields_match |
verified |
|
TEST_TestTriggersPersistent_test_06_delete_via_secondary_removes_from_store |
test_06_delete_via_secondary_removes_from_store |
verified |
|
test_01_create_updates_trigger |
verified |
||
test_02_list_updates_triggers |
verified |
||
test_03_get_updates_trigger |
verified |
||
TEST_TestTriggersUpdates_test_04_update_updates_trigger_lifetime |
test_04_update_updates_trigger_lifetime |
verified |
|
test_05_delete_updates_trigger |
verified |
||
TEST_TestTriggersUpdates_test_10_events_endpoint_returns_sse_headers |
test_10_events_endpoint_returns_sse_headers |
verified |
|
TEST_TestTriggersUpdates_test_11_events_for_nonexistent_trigger_returns_404 |
test_11_events_for_nonexistent_trigger_returns_404 |
verified |
|
test_01_automated_completes |
verified |
||
TEST_TestUpdatesAutomated_test_02_automated_on_non_automated_returns_400 |
test_02_automated_on_non_automated_returns_400 |
verified |
|
test_01_list_updates_empty |
verified |
||
test_02_register_update |
verified |
||
test_03_list_after_register |
verified |
||
test_04_get_update_metadata |
verified |
||
test_05_get_nonexistent_returns_404 |
verified |
||
test_06_delete_update |
verified |
||
test_07_delete_nonexistent_returns_404 |
verified |
||
test_08_register_duplicate_returns_400 |
verified |
||
test_09_list_with_origin_filter |
verified |
||
TEST_TestUpdatesCRUD_test_10_list_with_target_version_filter |
test_10_list_with_target_version_filter |
verified |
|
TEST_TestUpdatesErrorCases_test_01_delete_during_prepare_returns_409 |
test_01_delete_during_prepare_returns_409 |
verified |
|
TEST_TestUpdatesErrorCases_test_02_prepare_nonexistent_returns_404 |
test_02_prepare_nonexistent_returns_404 |
verified |
|
TEST_TestUpdatesErrorCases_test_03_execute_nonexistent_returns_404 |
test_03_execute_nonexistent_returns_404 |
verified |
|
TEST_TestUpdatesErrorCases_test_04_register_missing_required_fields |
test_04_register_missing_required_fields |
verified |
|
test_05_register_malformed_json |
verified |
||
test_01_list_updates_returns_501 |
verified |
||
test_02_get_update_returns_501 |
verified |
||
TEST_TestUpdatesNoPlugin_test_03_register_update_returns_501 |
test_03_register_update_returns_501 |
verified |
|
test_04_prepare_returns_501 |
verified |
||
test_05_execute_returns_501 |
verified |
||
test_06_automated_returns_501 |
verified |
||
test_07_status_returns_501 |
verified |
||
test_08_delete_returns_501 |
verified |
||
test_01_prepare_returns_202 |
verified |
||
test_02_prepare_completes |
verified |
||
TEST_TestUpdatesPrepareExecute_test_03_execute_after_prepare |
test_03_execute_after_prepare |
verified |
|
TEST_TestUpdatesPrepareExecute_test_04_execute_without_prepare_returns_400 |
test_04_execute_without_prepare_returns_400 |
verified |
|
TEST_TestUpdatesPrepareExecute_test_05_status_shows_progress |
test_05_status_shows_progress |
verified |
|
TEST_TestUpdatesPrepareExecute_test_06_status_not_found_for_unknown |
test_06_status_not_found_for_unknown |
verified |
|
TokenTypeToString |
verified |
||
DefaultTopicsUsedAsFallback |
verified |
||
FaultSpecificHasHighestPriority |
verified |
||
TEST_TopicResolutionTest_PatternMatchUsedWhenNoFaultSpecific |
PatternMatchUsedWhenNoFaultSpecific |
verified |
|
RegisterAndLookup |
verified |
||
InvalidParameterErrorFormat |
verified |
REQ_INTEROP_031; REQ_INTEROP_029; REQ_INTEROP_097; REQ_INTEROP_030; REQ_INTEROP_096; REQ_INTEROP_032 |
|
InvalidResourceUriVendorError |
verified |
||
Create_InvalidConditionType |
verified |
||
Create_InvalidParams |
verified |
||
Create_MaxTriggersExceeded |
verified |
||
Create_ValidOnChangeTrigger |
verified |
||
EventEnvelopeFormat |
verified |
||
Get_Existing |
verified |
||
Hierarchy_AreaToApp |
verified |
||
Hierarchy_ComponentToApp |
verified |
||
JsonPointer_ExtractsSubElement |
verified |
||
LifetimeExpiry |
verified |
||
List_ReturnsTriggersForEntity |
verified |
||
Multishot_NotifyTwice |
verified |
||
OnRemovedCallback |
verified |
||
Remove_ExistingTrigger |
verified |
||
SingleShot_NotifyMatchingChange |
verified |
||
SingleShot_RemovedAfterFiring |
verified |
||
Update_ChangeLifetime |
verified |
||
ClientLimitEnforced |
verified |
||
FilePersistence |
verified |
||
SaveAndLoadRoundTrip |
verified |
||
ContainsAllRequiredFields |
verified |
||
InvalidJsonPointer_Returns400 |
verified |
||
PathTooLong_Returns400 |
verified |
||
UnknownCollection_Returns400 |
verified |
||
UnsupportedProtocol_Returns400 |
verified |
||
TEST_TriggerValidationTest_VendorExtensionCollection_Accepted |
VendorExtensionCollection_Accepted |
verified |
|
TEST_UpdateManagerFailureTest_ExecuteExceptionSetsFailedStatus |
ExecuteExceptionSetsFailedStatus |
verified |
|
TEST_UpdateManagerFailureTest_ExecuteFailureSetsFailedStatus |
ExecuteFailureSetsFailedStatus |
verified |
|
TEST_UpdateManagerFailureTest_PrepareExceptionSetsFailedStatus |
PrepareExceptionSetsFailedStatus |
verified |
|
TEST_UpdateManagerFailureTest_PrepareFailureSetsFailedStatus |
PrepareFailureSetsFailedStatus |
verified |
|
AutomatedCompletes |
verified |
||
AutomatedRejectsNonAutomated |
verified |
||
TEST_UpdateManagerTest_ConcurrentPrepareOnSamePackageRejected |
ConcurrentPrepareOnSamePackageRejected |
verified |
|
DeleteDuringOperationFails |
verified |
||
DeleteUpdate |
verified |
||
DuplicateRegistration |
verified |
||
ExecuteAfterPrepare |
verified |
||
ExecuteRequiresPrepare |
verified |
||
GetUpdate |
verified |
||
GetUpdateNotFound |
verified |
||
HasBackend |
verified |
||
NoBackendMode |
verified |
||
PrepareAndPollStatus |
verified |
||
RegisterAndList |
verified |
||
StatusNotFoundForUnknown |
verified |
||
LoadValidFile |
verified |
||
MalformedYamlReturnsEmpty |
verified |
||
MissingFileReturnsEmpty |
verified |
||
PositiveConfirmationThresholdAutoNegated |
verified |