All releases

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.