-
Notifications
You must be signed in to change notification settings - Fork 30
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
TCK scenarios to cover #133
Comments
njr-11
added a commit
to njr-11/data
that referenced
this issue
May 5, 2023
Signed-off-by: Nathan Rauh <[email protected]>
This was referenced May 5, 2023
njr-11
added a commit
to njr-11/data
that referenced
this issue
May 12, 2023
…reSlice Signed-off-by: Nathan Rauh <[email protected]>
njr-11
changed the title
Draft list of potential TCK scenarios to cover
TCK scenarios to cover
May 26, 2023
njr-11
added a commit
to njr-11/data
that referenced
this issue
Jun 2, 2023
…entity result Signed-off-by: Nathan Rauh <[email protected]>
Merged
This was referenced Jul 28, 2023
njr-11
added a commit
to njr-11/data
that referenced
this issue
Aug 18, 2023
Signed-off-by: Nathan Rauh <[email protected]>
This was referenced Aug 18, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I'm starting this list to record potential ideas for TCK scenarios. Please feel free to edit, or if you aren't a committer just add a comment so that a committer can add/update for you,
TCK tests for Page #179 Request the first Page of 10 results, expecting to find all 10. From the Page, verify the totalElements and totalPages expected.
TCK tests for Page #179 Request the third Page of 10 results, expecting to find all 10. Request the next Page via nextPageable, expecting page number 4 and another 10 results.
TCK tests for Page #179 Request the last Page of up to 10 results, expecting to find the final 3.
TCK tests for Page #179 Request a Page higher than the last Page, expecting an empty Page with 0 results.
TCK tests for Page #179 Request a Page of results where none match the query, expecting an empty Page with 0 results.
basic TCK tests for Slice #147 Request the first Slice of 5 results, expecting to find all 5.
basic TCK tests for Slice #147 Request the third Slice of 5 results, expecting to find all 5. Request the next Slice via nextPageable, expecting page number 4 and another 5 results.
basic TCK tests for Slice #147 Request the last Slice of up to 5 results, expecting to find the final 2.
basic TCK tests for Slice #147 Request a Slice higher than the last Slice, expecting an empty Slice with 0 results.
basic TCK tests for Slice #147 Request a Slice of results where none match the query, expecting an empty Slice with 0 results.
Tests for KeysetAwarePage #214 Request the first KeysetAwarePage of 8 results, expecting to find all 8, then request the next KeysetAwarePage after the keyset of the last entry of the page, expecting to find the next 8. Or validate that UnsupportedOperationException is raised to indicate that the underlying database is incapable of keyset pagination.
Tests for KeysetAwarePage #214 Request a KeysetAwarePage of 7 results after the keyset of the 20th result, expecting to find the next 7 results. Then request the KeysetAwarePage before the keyset of the first entry of the page, expecting to find the previous 7 results. Then request the KeysetAwarePage after the last entry of the page, expecting to find the next 7. Or validate that UnsupportedOperationException is raised to indicate that the underlying database is incapable of keyset pagination.
Tests for KeysetAwarePage #214 Request a KeysetAwarePage of results where none match the query, expecting an empty KeysetAwarePage with 0 results. Or validate that UnsupportedOperationException is raised to indicate that the underlying database is incapable of keyset pagination.
TCK tests for Sort parameters and TCK tests for KeysetAwareSlice #150 Request the first KeysetAwareSlice of 6 results, expecting to find all 6, then request the next KeysetAwareSlice after the keyset of the last entry of the slice, expecting to find the next 6. Or validate that MappingException is raised to indicate that the underlying database is incapable of keyset pagination.
TCK tests for Sort parameters and TCK tests for KeysetAwareSlice #150 Request a KeysetAwareSlice of 9 results after the keyset of the 20th result, expecting to find the next 9 results. Then request the KeysetAwareSlice before the keyset of the first entry of the slice, expecting to find the previous 9 results. Then request the KeysetAwareSlice after the last entry of the slice, expecting to find the next 9. Or validate that MappingException is raised to indicate that the underlying database is incapable of keyset pagination.
TCK tests for Sort parameters and TCK tests for KeysetAwareSlice #150 Request a KeysetAwareSlice of results where none match the query, expecting an empty KeysetAwareSlice with 0 results. Or validate that MappingException is raised to indicate that the underlying database is incapable of keyset pagination.
tests for findFirst, CrudRepository and PageableRepository #198 Use the findAll method of a repository that inherits from PageableRepository to request a Page 2 of size 12, specifying a Pageable that requires a mixture of ascending and descending sort. Verify the page contains all 12 expected entities, sorted according to the mixture of ascending and descending sort orders specified.
TCK tests for Sort parameters and TCK tests for KeysetAwareSlice #150 Use a repository method with one Sort parameter specifying descending order, and verify all results are returned and are in descending order according to the sort criteria.
TCK tests for Sort parameters and TCK tests for KeysetAwareSlice #150 Use a repository method with two Sort parameters specifying a mixture of ascending and descending order, and verify all results are returned and are ordered according to the sort criteria.
TCK tests for Sort parameters and TCK tests for KeysetAwareSlice #150 Use a repository method with varargs Sort... specifying a mixture of ascending and descending order, and verify all results are returned and are ordered according to the sort criteria.
Tests for Sort/OrderBy precedence and Limit #153 Use a repository method with OrderBy (static) and a Sort parameter (dynamic), verfying that all results are returned and are ordered according to the static sort criteria being applied first, followed by the dynamic sort criteria when the value(s) being compared by the static criteria match.
Tests for Sort/OrderBy precedence and Limit #153 Use a repository method with OrderBy (static) and a Pageable with a Sort parameter (dynamic), verfying that all results are returned and are ordered according to the static sort criteria being applied first, followed by the dynamic sort criteria when the value(s) being compared by the static criteria match.
Tests for Sort/OrderBy precedence and Limit #153 Use a repository method with Limit of 1, and verify that the Limit caps the number of results to a single result.
Tests for Sort/OrderBy precedence and Limit #153 Use a repository method with both Sort and Limit, and verify that the Limit caps the number of results and that results are ordered according to the sort criteria.
Tests for Sort/OrderBy precedence and Limit #153 Use a repository method with both Sort and Limit, where the Limit is a range, and verify that the Limit range starts in the correct place, caps the number of results, and that results are ordered according to the sort criteria.
TCK tests for find queries using parameter names #277 Find a single entity, querying by entity attributes with names that match the method parameter names.
TCK tests for find queries using parameter names #277 Find a single entity that might or might not exist (return type of Optional), querying by entity attributes with names that match the method parameter names.
TCK tests for find queries using parameter names #277 Find a list of entities, querying by entity attributes with names that match the method parameter names, with results capped by a Limit parameter and sorted according to a variable arguments Sort parameter.
TCK tests for find queries using parameter names #277 Find a page of entities, with entity attributes identified by the parameter names and matching the parameter values.
TCK tests for primary entity type and By #341 Use a parameter-based find method that uses the By annotation to identify the entity attribute names.
TCK tests for primary entity type and By #341 Use count and exists methods where the primary entity class is inferred from the life cycle methods.
Tests for DataRepository, Streamable, and single entity result #155 Use a repository that inherits from DataRepository and defines all of its own methods.
TCK tests are missing the Save annotation on lifecycle methods #319 Use repository life cycle method with the Save annotation to write a single entity to the database.
TCK tests are missing the Save annotation on lifecycle methods #319 Use repository life cycle method with the Save annotation to write multiple entities to the database.
TCK tests for life cycle methods #321 Use repository life cycle method with the Insert, Update, and Delete annotations to insert, update, and delete an entity with a generated version.
TCK tests for life cycle methods #321 Use repository life cycle methods with the Insert, Update, and Delete annotations to insert, update, and delete multiple entities.
TCK tests for life cycle methods #321 Attempt to insert an entity that already exists in the database and expect EntityExistsException.
TCK tests for BasicRepository built-in methods #371 Use a repository that inherits from BasicRepository and defines no additional methods of its own. Use all of the built-in methods.
tests for findFirst, CrudRepository and PageableRepository #198 Use a repository that inherits from BasicRepository and adds some methods of its own. Use both built-in methods and the additional methods.
Tests for default methods, common interfaces, Not #212 Use a repository that inherits some if its methods from another interface.
Tests for default methods, common interfaces, Not #212 Use a default method from a repository interface where the default method invokes other repository methods.
Tests for DataRepository, Streamable, and single entity result #155 Use a repository method that returns Streamable and verify the results.
Tests for DataRepository, Streamable, and single entity result #155 Use a repository method that returns a single entity value where a single result is found.
Tests for DataRepository, Streamable, and single entity result #155 Use a repository method that returns a single entity value where no result is found. Expect EmptyResultException.
Tests for DataRepository, Streamable, and single entity result #155 Use a repository method that ought to return a single entity value but where multiple results are found. Expect NonUniqueResultException.
Tests for Sort/OrderBy precedence and Limit #153 Use a repository method with Limit(1) that returns the first entity value where multiple results would otherwise be found.
tests for findFirst, CrudRepository and PageableRepository #198 Use a repository method findFirstBy... that returns a the first entity value where multiple results would otherwise be found.
tests for findFirst, CrudRepository and PageableRepository #198 Use a repository method findFirst3By... that returns the first 3 results.
Tests for Contains, Empty, Like, Null and Id attribute not named Id #218 Use a repository method findByIdBetween... where the entity's Id attribute is named something other than id.
Tests for keywords: Or, In, LessThan, GreaterThan, ExistsBy, CountBy #201 Use a repository method countByIdLessThan... confirming the correct count is returned
Tests for keywords: Or, In, LessThan, GreaterThan, ExistsBy, CountBy #201 Use a repository method existsByIdGreaterThan... confirming the correct boolean is returned
tests for findFirst, CrudRepository and PageableRepository #198 Use a repository method with And
Tests for keywords: Or, In, LessThan, GreaterThan, ExistsBy, CountBy #201 Use a repository method with Or, expecting MappingException if the underlying database is not capable.
Tests for default methods, common interfaces, Not #212 Use a repository method with Not
tests for findFirst, CrudRepository and PageableRepository #198 Use a repository method with Between
Tests for keywords: Or, In, LessThan, GreaterThan, ExistsBy, CountBy #201 Use a repository method with GreaterThan
Tests for Sort/OrderBy precedence and Limit #153 Use a repository method with GreaterThanEqual
TCK tests for Sort parameters and TCK tests for KeysetAwareSlice #150 Tests for keywords: Or, In, LessThan, GreaterThan, ExistsBy, CountBy #201 Use a repository method with LessThan
TCK tests for Sort parameters and TCK tests for KeysetAwareSlice #150 Use a repository method with LessThanEqual
TCK tests for IgnoreCase, Contains (substring), True, False #207 Tests for Contains, Empty, Like, Null and Id attribute not named Id #218 Use a repository method with Contains
tests for findFirst, CrudRepository and PageableRepository #198 Use a repository method with StartsWith
tests for findFirst, CrudRepository and PageableRepository #198 Use a repository method with EndsWith
Tests for Contains, Empty, Like, Null and Id attribute not named Id #218 Use a repository method with Like.
Tests for keywords: Or, In, LessThan, GreaterThan, ExistsBy, CountBy #201 Use a repository method with In
TCK tests for IgnoreCase, Contains (substring), True, False #207 Use a repository method with IgnoreCase
Tests for Contains, Empty, Like, Null and Id attribute not named Id #218 Use a repository method with Empty. Might be JPA-specific.
Tests for Contains, Empty, Like, Null and Id attribute not named Id #218 Use a repository method with Null. Might be JPA-specific.
TCK tests for IgnoreCase, Contains (substring), True, False #207 Use a repository method with False
TCK tests for IgnoreCase, Contains (substring), True, False #207 Use a repository method with True
Tests for query annotation with JPQL #220 Use a repository method that is annotated with Query and includes JPQL with positional parameters. Include this under JPA-specific tests.
Tests for query annotation with JPQL #220 Use a repository method that is annotated with Query and includes JPQL with named parameters and specify Param annotations on the method parameters. Include this under JPA-specific tests.
TCK test for EntityManager method #251 Use a repository method that obtains the Entity Manager.
Create CDI extension tests #289 If CDI is available (Jakarta EE profile tests), include a CDI extension to handle a custom entity annotation. Inject at least one repository of this entity type and verify that a method can be invoked on the repository verifying that this extension is not interfered with by other Jakarta Data providers. Include this under Jakarta EE profile tests and skip if CDI is not available.
Create validation tests #348 If Jakarta Validation is available (Jakarta EE web profile tests), include validation constraints on a JPA entity. Ensure that entities that do not violate the constraints can be successfully inserted into the database via the save and saveAll repository operations.
Create validation tests #348 If Jakarta Validation is available (Jakarta EE web profile tests), include validation constraints on a JPA entity. Ensure that entities that violate the constraints cannot be inserted into the database via the save and saveAll repository operations, failing with jakarta.validation.ConstraintViolationException.
Create validation tests #348 If Jakarta Validation is available (Jakarta EE web profile tests), include validation constraints on a JPA entity. Ensure that via save and saveAll, entities can be updated if they do not violate the constraints.
Create validation tests #348 If Jakarta Validation is available (Jakarta EE web profile tests), include validation constraints on a JPA entity. Ensure that via save and saveAll, entities cannot be updated if they violate the constraints, failing with jakarta.validation.ConstraintViolationException.
Create transaction tests #346 If JTA and JPA are available, start a transaction, invoke a repository save method to make an update, then commit the transaction. Confirm the update by invoking a repository method that queries for the data. Include this under Jakarta EE profile tests and JPA-specific tests and skip if JTA is not available.
Create transaction tests #346 If JTA and JPA are available, start a transaction, invoke a repository save method to make an update, then roll back the transaction. Confirm the absence of the update by invoking a repository method that queries for the data. Include this under Jakarta EE profile tests and JPA-specific tests and skip if JTA is not available.
The text was updated successfully, but these errors were encountered: