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

Enhance Test Infrastructure by Adding Cassandra-Test-Image Module With Multi-Datacenter Cluster and Abstract Integration Test Class #706

Closed
VictorCavichioli opened this issue Sep 1, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request PoC/Agent Tasks related to new generation of ecchronos as an agent

Comments

@VictorCavichioli
Copy link
Contributor

VictorCavichioli commented Sep 1, 2024

Story Description:

The objective of this task is to enhance the current test infrastructure by adding a new Maven module, cassandra-test-image, which will contain a docker-compose.yml file designed to create a multi-datacenter Cassandra cluster with the required JMX configuration to support the application's needs. This multi-datacenter cluster setup will be crucial for ensuring the correct functionality of integration tests and will closely mimic the production environment.

Additionally, an abstract Java class should be created that utilizes Testcontainers to automatically launch and manage this multi-datacenter Cassandra cluster for use in integration tests. This class will enable seamless integration testing by providing a consistent, automated setup of the necessary cluster environment.

These changes will be implemented within the Maven cassandra-test-image module. The docker-compose.yml and abstract Java class will be incorporated into this module to allow other projects or modules to easily include them for testing purposes.

Acceptance Criteria:

[Acceptance Criterion 1]: A new Maven module, cassandra-test-image, is created and includes a docker-compose.yml file that sets up a multi-datacenter Cassandra cluster with the appropriate JMX configuration to support the application.

[Acceptance Criterion 2]: The docker-compose.yml file must successfully launch multiple Cassandra nodes across different data centers, each with JMX properly configured to allow interaction with the application during tests.

[Acceptance Criterion 3]: An abstract Java class using Testcontainers is created in the cassandra-test-image module. This class should initialize the Cassandra cluster defined in the docker-compose.yml and be reusable for integration tests.

[Acceptance Criterion 4]: The Maven module should be designed in such a way that it can be easily imported into other modules for integration testing. Other modules should be able to add the cassandra-test-image dependency to their pom.xml to make use of the abstract class for their integration tests.

Definition of Done:

The cassandra-test-image module is created and properly structured within the project.
The docker-compose.yml file successfully launches a multi-datacenter Cassandra cluster with the necessary JMX configuration.
The abstract Java class is functional and integrated with Testcontainers to manage the Cassandra cluster for integration tests.
Documentation is provided to describe how to include the cassandra-test-image module in other projects and how to extend or use the abstract Java class for testing purposes.
All required tests are passing, and the module has been verified to work within the CI pipeline.
Notes:

Consider any networking requirements for setting up JMX within a multi-datacenter Cassandra cluster.
Ensure that the docker-compose.yml and the abstract Java class are flexible enough to allow future modifications to the cluster setup or configuration.
Verify that the cassandra-test-image module is easily reusable and not tightly coupled to any specific module, allowing for wide applicability in integration tests.

Related to #652

@VictorCavichioli VictorCavichioli added the enhancement New feature or request label Sep 1, 2024
@VictorCavichioli VictorCavichioli self-assigned this Sep 1, 2024
@VictorCavichioli VictorCavichioli added the PoC/Agent Tasks related to new generation of ecchronos as an agent label Sep 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request PoC/Agent Tasks related to new generation of ecchronos as an agent
Projects
None yet
Development

No branches or pull requests

1 participant