// Copyright (c) 2026, Salesforce, Inc.,
// All rights reserved.
// For full license text, see the LICENSE.txt file

//! PDK Integration Testing Framework
//!
//! Framework for writing non-blocking integration tests based on Docker containers.
//! It provides utilities for managing test environments, services and containers
//! in a controlled and isolated way.
//!
//! This library provides testing functionality with support for:
//!
//! - Docker container management and orchestration
//! - Predefined test services (Flex Gateway, HTTP mocks, gRPC services)
//! - Network port management and visibility control
//! - Test composite builders for complex scenarios
//! - Error handling for test failures and configuration issues
//!
//! ## Primary types
//!
//! - [`TestComposite`]: main test environment orchestrator
//! - [`TestCompositeBuilder`]: builder for configuring test environments
//! - [`TestError`]: error type for test failures and configuration issues
//! - [`services::flex::FlexConfig`]: Flex Gateway service configuration
//! - [`services::flex::ApiConfig`]: API configuration for Flex Gateway
//! - [`services::flex::PolicyConfig`]: policy configuration for Flex Gateway
//! - [`services::httpmock::HttpMockConfig`]: HTTPMock service configuration
//! - [`services::httpbin::HttpBinConfig`]: HTTPBin testing service configuration
//! - [`services::grpcbin::GrpcBinConfig`]: GrpcBin gRPC testing service configuration
//! - [`services::gripmock::GripMockConfig`]: GripMock gRPC mock service configuration
//!

pub mod error;
mod image;
pub mod port;
pub mod services;

mod config;
mod probe;
mod service;

pub(crate) mod cleanup;
mod composite;
pub(crate) mod constants;
mod container;
mod handle;
mod host;
mod host_container;
mod network;
mod portpicker;
mod runner;

pub use composite::{TestComposite, TestCompositeBuilder};
pub use error::TestError;
pub use pdk_test_macros::pdk_test;

// This module is for crate exclusive use
#[doc(hidden)]
pub mod __runner {
    pub use super::runner::*;
}
