Search in sources :

Example 6 with Recipient

use of org.kie.kogito.jobs.service.model.job.Recipient in project kogito-apps by kiegroup.

the class JobDetailsMarshallerTest method setUp.

@BeforeEach
void setUp() {
    jobDetailsMarshaller = new JobDetailsMarshaller(new TriggerMarshaller(), new RecipientMarshaller());
    String id = "testId";
    String correlationId = "testCorrelationId";
    JobStatus status = JobStatus.SCHEDULED;
    Date date = new Date();
    ZonedDateTime lastUpdate = ZonedDateTime.ofInstant(date.toInstant(), DEFAULT_ZONE);
    Integer retries = 2;
    Integer priority = 3;
    Integer executionCounter = 4;
    String scheduledId = "testScheduledId";
    Object payload = new JsonObject().put("payload", "test");
    Recipient.HTTPRecipient recipient = new Recipient.HTTPRecipient("testEndpoint");
    Trigger trigger = new PointInTimeTrigger(new Date().toInstant().toEpochMilli(), null, null);
    JobDetails.Type type = JobDetails.Type.HTTP;
    jobDetails = JobDetails.builder().id(id).correlationId(correlationId).status(status).lastUpdate(lastUpdate).retries(retries).executionCounter(executionCounter).scheduledId(scheduledId).payload(payload).type(type).priority(priority).recipient(recipient).trigger(trigger).build();
    jsonObject = new JsonObject().put("id", id).put("correlationId", correlationId).put("status", status.name()).put("lastUpdate", date.getTime()).put("retries", retries).put("executionCounter", executionCounter).put("scheduledId", scheduledId).put("payload", payload).put("type", type.name()).put("priority", priority).put("recipient", new JsonObject().put("endpoint", recipient.getEndpoint()).put("classType", Recipient.HTTPRecipient.class.getName())).put("trigger", new JsonObject().put("nextFireTime", trigger.hasNextFireTime().getTime()).put("classType", PointInTimeTrigger.class.getName()));
}
Also used : JsonObject(io.vertx.core.json.JsonObject) Recipient(org.kie.kogito.jobs.service.model.job.Recipient) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) Date(java.util.Date) JobDetails(org.kie.kogito.jobs.service.model.job.JobDetails) JobStatus(org.kie.kogito.jobs.service.model.JobStatus) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) Trigger(org.kie.kogito.timer.Trigger) ZonedDateTime(java.time.ZonedDateTime) JsonObject(io.vertx.core.json.JsonObject) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 7 with Recipient

use of org.kie.kogito.jobs.service.model.job.Recipient in project kogito-apps by kiegroup.

the class RecipientMarshallerTest method unmarshallInvalid.

@Test
void unmarshallInvalid() {
    JsonObject jsonObject = new JsonObject().put("endpoint", "test");
    Recipient recipient = marshaller.unmarshall(jsonObject);
    assertNull(recipient);
}
Also used : JsonObject(io.vertx.core.json.JsonObject) Recipient(org.kie.kogito.jobs.service.model.job.Recipient) Test(org.junit.jupiter.api.Test)

Example 8 with Recipient

use of org.kie.kogito.jobs.service.model.job.Recipient in project kogito-apps by kiegroup.

the class RecipientMarshallerTest method unmarshallNull.

@Test
void unmarshallNull() {
    Recipient recipient = marshaller.unmarshall(null);
    assertNull(recipient);
}
Also used : Recipient(org.kie.kogito.jobs.service.model.job.Recipient) Test(org.junit.jupiter.api.Test)

Example 9 with Recipient

use of org.kie.kogito.jobs.service.model.job.Recipient in project kogito-apps by kiegroup.

the class RecipientMarshallerTest method marshall.

@Test
void marshall() {
    Recipient recipient = new Recipient.HTTPRecipient("test");
    JsonObject jsonObject = marshaller.marshall(recipient);
    assertEquals(new JsonObject().put("endpoint", "test").put("classType", Recipient.HTTPRecipient.class.getName()), jsonObject);
}
Also used : JsonObject(io.vertx.core.json.JsonObject) Recipient(org.kie.kogito.jobs.service.model.job.Recipient) Test(org.junit.jupiter.api.Test)

Example 10 with Recipient

use of org.kie.kogito.jobs.service.model.job.Recipient in project kogito-apps by kiegroup.

the class PostgreSqlJobRepositoryTest method doSave.

@Test
void doSave() {
    PointInTimeTrigger trigger = new PointInTimeTrigger(time.toInstant().getEpochSecond(), null, null);
    Recipient recipient = new Recipient.HTTPRecipient("test");
    JobDetails job = JobDetails.builder().id("test").correlationId("test").status(JobStatus.SCHEDULED).lastUpdate(time).retries(1).executionCounter(1).scheduledId("test").payload("{\"payload\": \"test\"}").type(JobDetails.Type.HTTP).priority(1).recipient(recipient).trigger(trigger).build();
    CompletionStage<JobDetails> result = repository.doSave(job);
    assertEquals(completableFuture, result);
    ArgumentCaptor<String> queryCaptor = ArgumentCaptor.forClass(String.class);
    ArgumentCaptor<Tuple> parameterCaptor = ArgumentCaptor.forClass(Tuple.class);
    verify(client, times(1)).preparedQuery(queryCaptor.capture());
    verify(query, times(1)).execute(parameterCaptor.capture());
    String query = "INSERT INTO job_details (id, correlation_id, status, last_update, retries, execution_counter, scheduled_id, " + "payload, type, priority, recipient, trigger) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12) " + "ON CONFLICT (id) DO UPDATE SET correlation_id = $2, status = $3, last_update = $4, retries = $5, " + "execution_counter = $6, scheduled_id = $7, payload = $8, type = $9, priority = $10, " + "recipient = $11, trigger = $12 RETURNING id, correlation_id, status, last_update, retries, " + "execution_counter, scheduled_id, payload, type, priority, recipient, trigger";
    Tuple parameter = Tuple.tuple(Stream.of(job.getId(), job.getCorrelationId(), job.getStatus().name(), job.getLastUpdate().toOffsetDateTime(), job.getRetries(), job.getExecutionCounter(), job.getScheduledId(), new JsonObject(job.getPayload().toString()), job.getType().name(), job.getPriority(), new JsonObject().put("recipientMarshaller", "test"), new JsonObject().put("triggerMarshaller", "test")).collect(toList()));
    assertEquals(query, queryCaptor.getValue());
    assertEquals(parameter.getString(0), parameterCaptor.getValue().getString(0));
    assertEquals(parameter.getString(1), parameterCaptor.getValue().getString(1));
    assertEquals(parameter.getString(2), parameterCaptor.getValue().getString(2));
    assertEquals(parameter.getOffsetDateTime(3), parameterCaptor.getValue().getOffsetDateTime(3));
    assertEquals(parameter.getInteger(4), parameterCaptor.getValue().getInteger(4));
    assertEquals(parameter.getInteger(5), parameterCaptor.getValue().getInteger(5));
    assertEquals(parameter.getString(6), parameterCaptor.getValue().getString(6));
    assertEquals(parameter.getJson(7), parameterCaptor.getValue().getJson(7));
    assertEquals(parameter.getString(8), parameterCaptor.getValue().getString(8));
    assertEquals(parameter.getInteger(9), parameterCaptor.getValue().getInteger(9));
    assertEquals(parameter.getJson(10), parameterCaptor.getValue().getJson(10));
    assertEquals(parameter.getJson(11), parameterCaptor.getValue().getJson(11));
}
Also used : JsonObject(io.vertx.core.json.JsonObject) Recipient(org.kie.kogito.jobs.service.model.job.Recipient) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) JobDetails(org.kie.kogito.jobs.service.model.job.JobDetails) Tuple(io.vertx.mutiny.sqlclient.Tuple) Test(org.junit.jupiter.api.Test)

Aggregations

Recipient (org.kie.kogito.jobs.service.model.job.Recipient)12 JsonObject (io.vertx.core.json.JsonObject)8 Test (org.junit.jupiter.api.Test)8 JobDetails (org.kie.kogito.jobs.service.model.job.JobDetails)7 PointInTimeTrigger (org.kie.kogito.timer.impl.PointInTimeTrigger)6 ZonedDateTime (java.time.ZonedDateTime)4 JobStatus (org.kie.kogito.jobs.service.model.JobStatus)3 Trigger (org.kie.kogito.timer.Trigger)3 Date (java.util.Date)2 BeforeEach (org.junit.jupiter.api.BeforeEach)2 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