Feature: Cloud Handler Coverage
  Scenarios that exercise previously uncovered code paths in the
  cloud resource handler module (resource/handlers/cloud.py).

  Background:
    Given the cloud handler module is imported

  # --- extract_provider: hierarchical prefix matching (lines 249-251) ---

  Scenario: extract_provider returns aws for hierarchical aws-account type
    When I extract the provider from type name "aws-account"
    Then the extracted provider should be "aws"

  Scenario: extract_provider returns gcp for hierarchical gcp-project type
    When I extract the provider from type name "gcp-project"
    Then the extracted provider should be "gcp"

  Scenario: extract_provider returns azure for hierarchical azure-vm type
    When I extract the provider from type name "azure-vm"
    Then the extracted provider should be "azure"

  # --- extract_provider: returns None for generic cloud-* (line 253) ---

  Scenario: extract_provider returns None for generic cloud base type
    When I extract the provider from type name "cloud-generic"
    Then the extracted provider should be None

  # --- resolve_credentials: explicit properties take priority (lines 302-303) ---

  Scenario: resolve_credentials uses explicit properties over env vars
    Given chcov the environment variable "AWS_ACCESS_KEY_ID" is set to "env-key"
    When I resolve credentials for provider "aws" with explicit property "access-key-id" set to "explicit-key"
    Then the resolved credential "access-key-id" should be "explicit-key"

  # --- validate_credentials: unknown provider (lines 331-333) ---

  Scenario: validate_credentials returns errors for unknown provider
    When I validate credentials for unknown provider "digitalocean"
    Then the validation errors should mention unknown provider "digitalocean"

  # --- CloudResourceHandler.resolve: generic cloud-* type (lines 420-423) ---

  Scenario: CloudResourceHandler.resolve raises NotImplementedError for generic cloud type
    Given I have a cloud resource with type "cloud-storage"
    When I call resolve on the cloud resource handler
    Then a NotImplementedError should be raised mentioning generic type "cloud-storage"

  # --- CloudResourceHandler.resolve: unknown provider mapping (lines 428-431) ---

  Scenario: CloudResourceHandler.resolve raises ValueError for unknown provider mapping
    Given I have a cloud resource with type "fake-cloud-type"
    And extract_provider is mocked to return "digitalocean"
    When I call resolve on the cloud resource handler expecting a ValueError
    Then a ValueError should be raised mentioning unknown provider "digitalocean"
