v1.0.0
The first published release of the embedded MongoDB emulation for JVM and Spring integration tests.
Highlights
- 01
Driver-level emulation
The Nitrite-backed driver shim covers the v1 CRUD, index, aggregation and transaction surface, and unsupported behaviour fails fast rather than guessing.
Read the guide → - 02
JUnit and Spring harnesses
Plain JUnit 5 and Spring @MongoTestServer harnesses bring automatic cleanup, typed data access and multi-tenant support.
Read the guide → - 03
Fixtures and assertions
Seed data, readers, waiting helpers and collection, document and choreography assertions are included for integration tests.
Read the guide → - 04
Reference-backed checks
Differential, passthrough and performance lanes compare the emulation with real MongoDB and retain their evidence in the build.
Read the guide →
Full notes
Added
- Added the Maven monorepo, core SPI and MongoTestUnsupportedException for deliberately unsupported behaviour.
- Added BSON document encoding, filter translation, update operators, aggregation, transactions and the Nitrite MongoDB driver shim.
- Added index-backed query execution, including compiled query paths and leading $match execution as the read.
- Added the plain JUnit 5 @MongoTestServer harness, MongoTestSupport, automatic drop-databases cleanup and MongoTestContext.
- Added repeatable MongoSeed fixtures, MongoTestData, Extended JSON, NDJSON and JSON-array formats, placeholder resolution, readers, waiting helpers and MongoAssertions.
- Added MongoTestSupport.snapshot() as an immutable inventory of the test harness's known databases, collections, documents and indexes.
- Added the Spring @MongoTestServer harness, SharedMongoContextInitializer, typed seeding and reading through the application's MongoConverter, and optional on-disk durability.
- Added multi-tenant support through the mongoClientFactory seam and neutralise-properties for custom URI keys.
- Added the differential A/B harness, reference-backend runners, C1–C9 corpora, generative testing, passthrough mode, a client query-pattern corpus, scorecard artefacts and the performance lane.
- Added the documentation site, AI coding-agent skill packs, GitLab CI coverage for verification and release publishing, and the release profile with sources, Javadoc and signing support.
Changed
- Renamed the Spring and generic JUnit annotation from @MongoTestUtils to @MongoTestServer.
- Renamed the custom-URI neutralisation property to spring.mongodb.test.neutralise-properties, with British spelling and no alias.
- Shortened the base packages to io.gitlab.guisseppe.mongo.test.core, io.gitlab.guisseppe.mongo.test and io.gitlab.guisseppe.spring.mongo.test.
- Published the compatibility matrix with supported operations, named fail-fast boundaries, matrix keys and server-shaped errors.
- Overhauled the documentation site around its embedded MongoDB emulation and driver-level Nitrite shim identity.
- Renamed Oracle to reference backend throughout the code, environment variables and documentation.
- Made the release pipeline publish only from vMAJOR.MINOR.PATCH tags, with repository and GPG credentials held in protected CI variables.
- Made point lookups index-backed and added the documented CI waiver for the W9 aggregation performance workload.
Fixed
- Matched real mongod for nested-array element semantics, $ne: null and BsonTimestamp in four divergences found by the differential lane.
- Fixed a failed-refresh leak, a dead override branch, a non-atomic commit and sixteen further findings from adversarial review.
- Fixed the concurrent-cleanup data-loss race, a stale thread-binding hazard and boot races, and reject unsafe JUnit concurrent-method mode.
- Encode plain java.util.Map values in inserts and $set operations as nested documents.
- Matched real mongod for eighteen further silent divergences across filtering, updates, indexes, sorting, aggregation errors, string coercion and French collation.