Skip to content

Add e2e tests for Apache Pinot connector #2598

@mmodzelewski

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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions