FakeKandraSession
In-memory drop-in replacement for CqlSession — no ScyllaDB connection required.
prepare(cql).bind(...) returns a FakePreparedStatement/FakeBoundStatement pair that records the CQL string and positional bound values without touching a real driver session, so the full KandraRepository/KandraSuspendRepository surface (save, findById, delete, update, batch writes, ...) can run against this fake end-to-end. execute captures every Statement it's handed (see capturedStatements), with capturedBatches as a convenience filter for just the BatchStatements (save/delete/update/saveAll all route through a LOGGED batch). Use via KandraTestUtils.inMemory to wire a full repository stack without Testcontainers.
Note: this performs no real CQL type encoding/decoding or query semantics — execute() always returns an empty, wasApplied() == true result set, regardless of the statement. Use this fake to verify structural behaviour (batch composition, save/delete ordering, what was bound to what) rather than actual data round-trips or LWT applied/not-applied semantics; for those, use KandraTestcontainers instead.
Functions
Returns all BatchStatement instances that were executed via execute.
One entry per captured BatchStatement, each holding that batch's child statements in order.
Returns every Statement executed synchronously via execute, in call order.
Public read view of every statement executed synchronously via execute, in call order, with its CQL text and positionally bound values. A BatchStatement is flattened into its child statements (in batch order); use capturedBatchViews to keep batch boundaries.