Skip to content

Add e2e tests for Apache Pinot connector #2598

Description

@mmodzelewski

Currently the Apache Pinot connector has no proper Java integration tests. There is an existing bash script (external-processors/iggy-connector-pinot/integration-test.sh) that performs manual integration testing, but this should be replaced with proper Java tests that can run in CI.

What needs testing

  • End-to-end ingestion flow: send messages to Iggy → verify data lands in Pinot realtime table
  • JSON payload parsing and schema mapping
  • Bulk message ingestion

Implementation notes

  • Use Testcontainers for Pinot (controller, broker, server) and Iggy
  • Use JUnit 6 as the test engine
  • Use AssertJ for assertions
  • Consider using @Testcontainers annotation for lifecycle management
  • Schema and table configs can be reused from deployment/ directory
  • Remove integration-test.sh once proper tests are in place

Files to reference

  • foreign/java/external-processors/iggy-connector-pinot/integration-test.sh - current manual test flow (to be replaced)
  • foreign/java/external-processors/iggy-connector-pinot/deployment/schema.json - Pinot schema
  • foreign/java/external-processors/iggy-connector-pinot/deployment/table.json - Pinot table config
  • foreign/java/external-processors/iggy-connector-pinot/src/main/java/ - connector implementation

Acceptance criteria

  • At least 2-3 tests covering basic ingestion and JSON parsing
  • Tests use Testcontainers (no manual Docker setup required)
  • Tests run in CI via Gradle
  • Test failures are informative with clear error messages
  • Remove integration-test.sh after Java tests provide equivalent coverage

Metadata

Metadata

Assignees

Labels

connectorsConnectors runtimegood first issueGood for newcomersjavaIssues related to Java SDK

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions