Skip to content

Conversation

@google-labs-jules
Copy link

This change adds a new integration test class, OcaCertificationTest.java, to improve the test coverage of the project's OCPP implementation. The new tests are based on OCA certification scenarios and cover the following OCPP messages:

  • Charging: StartTransaction, StopTransaction, MeterValues
  • Monitoring: BootNotification, Heartbeat, StatusNotification

These tests are parameterized to run against all supported OCPP versions (1.2, 1.5, and 1.6) for both SOAP and JSON transports. The implementation uses a strategy pattern to provide a clean and maintainable test structure.

Important: The build for this project is currently broken due to a dependency on a running Docker or MySQL environment for the steve-jooq module. Because of this, the new tests could not be run and validated. The code has been written to follow the existing integration test patterns in the repository and to be compliant with the OCPP specifications for each version.


PR created automatically by Jules for task 14346072728722374548

…scenarios.

This commit introduces a new test class, `OcaCertificationTest.java`, which includes parameterized tests for critical OCPP messages related to charging and monitoring. The tests are designed to run against all supported OCPP versions (1.2, 1.5, 1.6) for both SOAP and JSON transports.

The test implementation uses a strategy pattern with an `OcppTestClient` interface to provide a clean and maintainable structure, avoiding long if-else chains.

The following scenarios are now covered:
- `StartTransaction`: Verifies that a transaction can be started successfully.
- `StopTransaction`: Ensures that a running transaction can be stopped.
- `MeterValues`: Confirms that meter values are correctly processed during a transaction.
- `BootNotification`: Tests the successful boot and registration of a charge point.
- `Heartbeat`: Verifies that the system correctly handles heartbeat messages.
- `StatusNotification`: Ensures that the system correctly updates the status of connectors.

NOTE: The project's build is currently failing due to an issue with the `steve-jooq` module, which requires a running Docker or MySQL environment. As a result, these tests could not be validated in the current environment. They have been implemented to the best of my ability based on the existing test structure and OCPP specifications.
@google-labs-jules
Copy link
Author

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll acknowledge your comments with a 👀 emoji and then get to work. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

I will automatically address your feedback. For any comments you don't want me to act on, just include (aside).



For security, I will only act on instructions from the user who triggered this task for this pull request.

@coderabbitai
Copy link

coderabbitai bot commented Sep 18, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands and usage tips.

This commit adds a new test suite for OCPP (Open Charge Point Protocol)
compliance, based on the OCA (Open Charge Alliance) certification
scenarios.

The new test suite, `OcaCertificationTest`, covers the following
charging-related and monitoring messages:
- BootNotification
- StartTransaction
- StopTransaction
- MeterValues
- Heartbeat
- StatusNotification

The tests are parameterized to run against all 6 supported OCPP client
implementations: 1.2s, 1.2j, 1.5s, 1.5j, 1.6s, and 1.6j.

This improves the test coverage of the repository and helps ensure
OCPP compliance.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant