capture Cypher queries run inside transactions - #1763
Conversation
| @@ -4,12 +4,29 @@ | |||
| import org.evomaster.client.java.instrumentation.coverage.methodreplacement.ThirdPartyMethodReplacementClass; | |||
There was a problem hiding this comment.
@andyfelder16 @jgaleotti shouldn't we have at least 1 E2E test for this PR? or is support for Neo4J not ready yet for E2E?
There was a problem hiding this comment.
I am currently working on data insertion for Neo4j. I can add E2E tests to this PR now, or add them together with the insertion PR, so they cover everything end to end. I am happy to go with whichever you prefer.
There was a problem hiding this comment.
@andyfelder16 thx! you can have them on a different PR (so I review this one here now). but, in future, might be best to have E2E in same PR of a new introduced feature if that feature is finished and ready to have a E2E (PRs that are work-in-progress feature of course can't have E2E yet, as they would fail)
There was a problem hiding this comment.
I created this PR of E2E tests: #1773
I'm working on the data insertion logic, once I finish it I will also add E2E tests with it.
Looking at candidate SUTs for the Neo4j experiments, most queries are not run on the session directly: Spring Data Neo4j runs them inside a transaction, and driver code tends to use
session.beginTransaction()orsession.executeRead(...). Those go throughTransaction,TransactionContextandQueryRunner, which expose the samerunoverloads asSessionbut were not instrumented.Neo4JTransactionClassReplacement,Neo4JTransactionContextClassReplacement,Neo4JQueryRunnerClassReplacementNeo4JOperationClassReplacement, so each class only declares its fiverunoverloadsTransactionContextonly exists in driver 5