package Ġcom . mongodb . reactor . client Ċ Ċ import Ġcom . mongodb . reactiv est ream s . client . Mongo Client Ċ import Ġcom . mongodb . reactiv est ream s . client . Mongo Clients Ċ import Ġcom . mongodb . reactiv est ream s . client . Mongo Database Ċ import Ġorg . bson . Document Ċ import Ġorg . test containers . containers . MongoDB Container Ċ import Ġreactor . kotlin . core . publisher . to Flux Ċ import Ġreactor . kotlin . core . publisher . to Mono Ċ Ċ internal Ġobject ĠMongo Container Ġ{ ĊĊĠĠĠ Ġconst Ġval ĠDATABASE _ NAME Ġ= Ġ" test " ĊĠĠĠ Ġconst Ġval ĠCOL LECTION _ NAME Ġ= Ġ" people " ĊĠĠĠ Ġprivate Ġconst Ġval ĠM ONGO _ DOCKER _ IMAGE Ġ= Ġ" mongo " ĊĠĠĠ Ġprivate Ġconst Ġval ĠM ONGO _ VERSION Ġ= Ġ" 4 . 2 . 1 0 " ĊĠĠĠ Ġprivate Ġconst Ġval ĠM ONGO _ PROTOCOL Ġ= Ġ" mongodb ://" ĊĠĠĠ Ġval Ġclient : ĠMongo Client Ġ= Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontainer Ġ= ĠMongoDB Container ("$ MONGO _ DOCKER _ IMAGE :$ MONGO _ VERSION "). apply Ġ{ Ġstart () Ġ} ĊĠĠĠĠĠĠĠ ĠMongo Clients . create ("$ MONGO _ PROTOCOL ${ container . container IpAddress }:${ container . first Mapped Port }") ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġdatabase : ĠMongo Database Ġ= Ġclient . get Database ( DATABASE _ NAME ) ĊĊĠĠĠ Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġje an Ġ= ĠDocument (" username ", Ġ" Je an "). append (" city ", Ġ" Par is "). append (" age ", Ġ 3 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġp ier re Ġ= ĠDocument (" username ", Ġ" P ier re "). append (" city ", Ġ" Par is "). append (" age ", Ġ 4 5 ) ĊĠĠĠĠĠĠĠ Ġval Ġtom Ġ= ĠDocument (" username ", Ġ" Tom "). append (" city ", Ġ" L ondon "). append (" age ", Ġ 3 5 ) ĊĠĠĠĠĠĠĠ Ġdatabase . get Collection ( COLLECTION _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. insert Many ( listOf ( jean , Ġp ier re , Ġtom )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Flux () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. block Last () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase . get Collection ( COLLECTION _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. drop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Mono () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. block () ĊĠĠĠ Ġ} Ċ } Ċ