Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial release features support for Kafka #6

Open
10 tasks
silkentrance opened this issue Feb 22, 2018 · 0 comments
Open
10 tasks

Initial release features support for Kafka #6

silkentrance opened this issue Feb 22, 2018 · 0 comments

Comments

@silkentrance
Copy link
Member

silkentrance commented Feb 22, 2018

As a test developer I need to have a working Kafka instance. While I do not need direct access to that instance, it should be available for integration with other Hadoop components.

I want to be able to configure the Kafka instance by means of annotating the test class.

When running tests in parallel, I want the system to not start multiple Kafka instances for a specific test class or a suite of test classes that derive from a common super class which provides the Kafka configuration. Instead, all of these threads must share the same instance. In effect, there is only one Kafka instance that is shared across all threads.

Running the same tests on the same system from multiple processes must not lead to failing tests. Individual instances of Kafka must have their own ports. The ports must be determined automatically.

In addition I want to be able to access both Consumers and Producers by means of both parameter and field injection where there is also an Annotation present for configuring either the Consumer or the Producer. The annotation must allow me to at least define the topic.

In addition I want to be able to purge a given topic from all events or altogether drop a specific topic before or after each test or before all or after all tests in a specific test class, or populate it with a fixed number of of events.

Acceptance criteria

  • Kafka is provided
  • Kafka instances can be configured via annotation on ElementType.TYPE level
  • There is only one Kafka instance that is shared across multiple threads
  • The effective Kafka instance configuration is used for configuring other provided components
  • Kafka instances use dedicated free ports that have been determined automatically
  • Generic Producers and Consumers can be injected into both fields and parameters
  • Generic Producers and Consumers can be configured via Annotation
  • Purging events from a given topic is possible
  • Dropping topics is possible
  • Topics are purged and removed automatically after all tests have been run for a specific test class
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

1 participant