-
-
Notifications
You must be signed in to change notification settings - Fork 586
HV-2073 Add new OneOfValidator for CharSequence validation #1540
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
Conversation
Description: Contributed a new OneOfValidator for the Hibernate Validator project. This validator checks if a given CharSequence matches one of the allowed values specified in the OneOf annotation. Features: - Validates if a CharSequence is one of the allowed values. - Supports case-sensitive and case-insensitive validation based on the ignoreCase flag. - Supports both Enum constants and manually provided allowed values. The validator is implemented with the following: - OneOfValidator class implementing ConstraintValidator<OneOf, CharSequence>. - Adds values from allowedValues() and enumClass() in the OneOf annotation for validation. - Provides methods to handle case-sensitive and case-insensitive validation. Tests have been added, and all tests pass.
Hey @aalamu 👋🏻
Thanks for starting a pull request! I'll try to take a closer look and think more about the suggested constraint this week, but here are a few things:
- From what I've seen, you have an enum and a string array as the source of "possible" values. Have you considered extending this to other types? The first thing that comes to mind here is JUnit's "argument sources" for parameterised tests: https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests-sources.
We have this post on adding new constraints: https://in.relation.to/2018/01/04/adding-new-constraint-to-engine/. It describes all the steps so that we don't miss anything. You can take a look to see what's needed in general, but I suggest we figure out the constraint itself and how it should/could behave first, then go back to these instructions to add all we need.
Hi @marko-bekhta,
I would go through the details. Thank you.
Quality Gate Passed Quality Gate passed
Issues
0 New issues
0 Accepted issues
Measures
0 Security Hotspots
90.5% Coverage on New Code
0.0% Duplication on New Code
Thanks for your pull request!
This pull request appears to follow the contribution rules.
› This message was automatically generated.
...nstraint, ConstraintHelper, TypeNames. 2. Added OneOfDef and its unit test. 3. Added documentation in ch02.asciidoc. 4. Updated OneOf constraints to accept different array data types like int, long, float and double. 5. Updated OneOfValidator to map to Object instead of CharSequence so that it can be used on fields with Integer, Long, Float, Double and String types. 6. Added detailed unit tests for OneOf in OneOfValidatorTest. 7. Added validation messages for OneOf message code or key in ValidationMessages_[LOCALE].properties files.
798f3a0
to
9f30894
Compare
Hi @marko-bekhta ,
I've made an to the PR. I refactored the OneOf validator to make it versatile with different types.
I also tried to investigate the Sonar analysis failure, I couldn't find enough details regarding it except unknown host or service.
Quality Gate Passed Quality Gate passed
Issues
11 New issues
0 Accepted issues
Measures
0 Security Hotspots
95.9% Coverage on New Code
0.0% Duplication on New Code
Description:
Contributed a new OneOfValidator for the Hibernate Validator project.
This validator checks if a given CharSequence matches one of the allowed values specified in the OneOf annotation.
Features:
The validator is implemented with the following:
Tests have been added, and all tests pass.
[Please describe here what your change is about]
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on licensing, please check here.