Search in sources :

Example 1 with MultiCollect

use of io.smallrye.mutiny.groups.MultiCollect in project kogito-apps by kiegroup.

the class MongoDBJobRepositoryTest method setUp.

@BeforeEach
void setUp() {
    mongoClient = mock(ReactiveMongoClient.class);
    collection = mock(ReactiveMongoCollection.class);
    ReactiveMongoDatabase mongoDatabase = mock(ReactiveMongoDatabase.class);
    when(mongoClient.getDatabase(anyString())).thenReturn(mongoDatabase);
    when(mongoDatabase.getCollection(anyString())).thenReturn(collection);
    Uni uni = mock(Uni.class);
    Multi multi = mock(Multi.class);
    when(collection.findOneAndReplace(any(Bson.class), any(), any(FindOneAndReplaceOptions.class))).thenReturn(uni);
    when(collection.find(any(Bson.class))).thenReturn(multi);
    when(collection.findOneAndDelete(any(Bson.class))).thenReturn(uni);
    when(collection.find()).thenReturn(multi);
    when(collection.find(any(Bson.class), any(FindOptions.class))).thenReturn(multi);
    when(collection.createIndex(any())).thenReturn(uni);
    when(uni.map(any())).thenAnswer(invocationOnMock -> {
        jobDetailsMarshaller.unmarshall(marshalled);
        return uni;
    });
    when(uni.await()).thenReturn(mock(UniAwait.class));
    MultiCollect multiCollect = mock(MultiCollect.class);
    when(multi.collect()).thenReturn(multiCollect);
    when(multiCollect.first()).thenReturn(uni);
    when(multiCollect.with(any())).thenReturn(uni);
    when(multi.map(any())).thenAnswer(invocationOnMock -> {
        jobDetailsMarshaller.unmarshall(marshalled);
        return multi;
    });
    MultiConvert convertMulti = mock(MultiConvert.class);
    when(multi.emitOn(any())).thenReturn(multi);
    when(multi.convert()).thenReturn(convertMulti);
    Publisher publisher = mock(Publisher.class);
    when(convertMulti.toPublisher()).thenReturn(publisher);
    completableFuture = mock(CompletableFuture.class);
    UniConvert convert = mock(UniConvert.class);
    when(uni.emitOn(any())).thenReturn(uni);
    when(uni.convert()).thenReturn(convert);
    when(convert.toCompletionStage()).thenReturn(completableFuture);
    ZonedDateTime time = ZonedDateTime.now(DEFAULT_ZONE);
    PointInTimeTrigger trigger = new PointInTimeTrigger(time.toInstant().getEpochSecond(), null, null);
    Recipient recipient = new Recipient.HTTPRecipient("test");
    unmarshalled = new JobDetailsBuilder().id("test").trigger(trigger).recipient(recipient).build();
    marshalled = new JsonObject().put("id", "test");
    jobDetailsMarshaller = mock(JobDetailsMarshaller.class);
    when(jobDetailsMarshaller.marshall(any(JobDetails.class))).thenReturn(marshalled);
    when(jobDetailsMarshaller.unmarshall(any(JsonObject.class))).thenReturn(unmarshalled);
    mongoDBJobRepository = new MongoDBJobRepository(null, null, mongoClient, "test", jobDetailsMarshaller);
}
Also used : FindOptions(io.quarkus.mongodb.FindOptions) ReactiveMongoDatabase(io.quarkus.mongodb.reactive.ReactiveMongoDatabase) MultiConvert(io.smallrye.mutiny.groups.MultiConvert) JobDetailsMarshaller(org.kie.kogito.jobs.service.repository.marshaller.JobDetailsMarshaller) JsonObject(io.vertx.core.json.JsonObject) Multi(io.smallrye.mutiny.Multi) Recipient(org.kie.kogito.jobs.service.model.job.Recipient) Publisher(org.reactivestreams.Publisher) MultiCollect(io.smallrye.mutiny.groups.MultiCollect) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) ReactiveMongoCollection(io.quarkus.mongodb.reactive.ReactiveMongoCollection) JobDetailsBuilder(org.kie.kogito.jobs.service.model.job.JobDetailsBuilder) JobDetails(org.kie.kogito.jobs.service.model.job.JobDetails) Bson(org.bson.conversions.Bson) UniAwait(io.smallrye.mutiny.groups.UniAwait) Uni(io.smallrye.mutiny.Uni) FindOneAndReplaceOptions(com.mongodb.client.model.FindOneAndReplaceOptions) ReactiveMongoClient(io.quarkus.mongodb.reactive.ReactiveMongoClient) CompletableFuture(java.util.concurrent.CompletableFuture) UniConvert(io.smallrye.mutiny.groups.UniConvert) ZonedDateTime(java.time.ZonedDateTime) BeforeEach(org.junit.jupiter.api.BeforeEach)

Aggregations

FindOneAndReplaceOptions (com.mongodb.client.model.FindOneAndReplaceOptions)1 FindOptions (io.quarkus.mongodb.FindOptions)1 ReactiveMongoClient (io.quarkus.mongodb.reactive.ReactiveMongoClient)1 ReactiveMongoCollection (io.quarkus.mongodb.reactive.ReactiveMongoCollection)1 ReactiveMongoDatabase (io.quarkus.mongodb.reactive.ReactiveMongoDatabase)1 Multi (io.smallrye.mutiny.Multi)1 Uni (io.smallrye.mutiny.Uni)1 MultiCollect (io.smallrye.mutiny.groups.MultiCollect)1 MultiConvert (io.smallrye.mutiny.groups.MultiConvert)1 UniAwait (io.smallrye.mutiny.groups.UniAwait)1 UniConvert (io.smallrye.mutiny.groups.UniConvert)1 JsonObject (io.vertx.core.json.JsonObject)1 ZonedDateTime (java.time.ZonedDateTime)1 CompletableFuture (java.util.concurrent.CompletableFuture)1 Bson (org.bson.conversions.Bson)1 BeforeEach (org.junit.jupiter.api.BeforeEach)1 JobDetails (org.kie.kogito.jobs.service.model.job.JobDetails)1 JobDetailsBuilder (org.kie.kogito.jobs.service.model.job.JobDetailsBuilder)1 Recipient (org.kie.kogito.jobs.service.model.job.Recipient)1 JobDetailsMarshaller (org.kie.kogito.jobs.service.repository.marshaller.JobDetailsMarshaller)1