Class: A2ATestFramework::CLI

Inherits:
Object
  • Object
show all
Defined in:
lib/a2a_test_framework/cli.rb

Constant Summary collapse

CATEGORIES =
{
  "discovery" => %w[
    agent_discovery_test
    agent_card_caching_test
    agent_card_signing_test
  ],
  "send_message" => %w[
    send_message_test
  ],
  "streaming" => %w[
    send_streaming_message_test
    streaming_event_delivery_test
    subscribe_to_task_test
  ],
  "tasks" => %w[
    get_task_test
    list_tasks_test
    cancel_task_test
  ],
  "push_notifications" => %w[
    push_notification_delivery_test
    create_task_push_notification_config_test
    get_task_push_notification_config_test
    list_task_push_notification_configs_test
    delete_task_push_notification_config_test
  ],
  "errors" => %w[
    error_handling_test
    error_code_mappings_test
  ],
  "versioning" => %w[
    versioning_test
    versioning_responsibilities_test
    extension_versioning_test
  ],
  "security" => %w[
    security_considerations_test
    protocol_security_test
    authentication_authorization_test
    in_task_authorization_test
  ],
  "protocol" => %w[
    protocol_data_model_test
    json_rpc_binding_test
    http_rest_binding_test
    json_field_naming_test
    custom_binding_test
    protocol_selection_negotiation_test
    functional_equivalence_test
    iana_registrations_test
  ],
  "semantics" => %w[
    context_identifier_semantics_test
    task_identifier_semantics_test
    history_length_semantics_test
    field_presence_optionality_test
    idempotency_test
    multi_turn_conversation_test
    messages_and_artifacts_test
    timestamps_test
    service_parameters_test
    capability_validation_test
  ],
  "extended" => %w[
    get_extended_agent_card_test
  ],
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ CLI

Returns a new instance of CLI.



76
77
78
79
80
81
82
83
84
# File 'lib/a2a_test_framework/cli.rb', line 76

def initialize(argv)
  @argv = argv
  @options = {
    url: ENV.fetch("A2A_BASE_URL", "http://localhost:9292"),
    binding: "rest",
    only: [],
    files: [],
  }
end

Instance Method Details

#runObject



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/a2a_test_framework/cli.rb', line 86

def run
  parse_options!

  ENV["A2A_BASE_URL"] = @options[:url]

  files = resolve_test_files
  if files.empty?
    $stderr.puts "No test files found matching the given criteria."
    exit 1
  end

  require "bundler/setup"
  require "scampi"
  Scampi.summary_on_exit

  files.each { |f| load f }
end