Feature: DockerComposeAnalyzer Coverage Boost
  Additional scenarios that exercise previously uncovered code paths
  in the docker_compose_analyzer module (lines 142-145, 147, 164,
  194, 255-263).

  Background:
    Given the docker compose analyzer module is imported

  Scenario: Content exceeding the 1 MiB size limit is rejected
    Given I have YAML content that exceeds the 1 MiB byte limit
    When I analyze the oversized content
    Then the analyzer should return an empty list
    And a size-limit warning should have been logged

  Scenario: YAML that parses to a non-dict scalar returns empty
    Given I have YAML content that parses to a plain scalar string
    When I analyze the non-dict YAML content
    Then the analyzer should return an empty list for non-dict input

  Scenario: Services key present but not a dict returns only deployment triples
    Given I have compose YAML where services is a scalar instead of a mapping
    When I analyze the compose YAML with non-dict services
    Then the analyzer should return only the deployment unit triples

  Scenario: Exception during service processing is caught and skipped
    Given I have valid compose YAML with two services
    And the port extraction method is patched to raise an error for one service
    When I analyze the compose YAML with the faulty extractor
    Then the analyzer should return triples for the non-failing service
    And a service processing warning should have been logged
