Search in sources :

Example 1 with Tuple

use of io.vertx.mutiny.sqlclient.Tuple in project kogito-apps by kiegroup.

the class PostgreSqlJobRepositoryTest method delete.

@Test
void delete() {
    CompletionStage<JobDetails> result = repository.delete("test");
    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 = "DELETE FROM job_details WHERE id = $1 " + "RETURNING id, correlation_id, status, last_update, retries, " + "execution_counter, scheduled_id, payload, type, priority, recipient, trigger";
    String parameter = "test";
    assertEquals(query, queryCaptor.getValue());
    assertEquals(parameter, parameterCaptor.getValue().getValue(0));
}
Also used : ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) JobDetails(org.kie.kogito.jobs.service.model.job.JobDetails) Tuple(io.vertx.mutiny.sqlclient.Tuple) Test(org.junit.jupiter.api.Test)

Example 2 with Tuple

use of io.vertx.mutiny.sqlclient.Tuple in project kogito-apps by kiegroup.

the class PostgreSqlJobRepositoryTest method exists.

@Test
void exists() {
    CompletionStage<Boolean> result = repository.exists("test");
    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 = "SELECT id FROM job_details WHERE id = $1";
    String parameter = "test";
    assertEquals(query, queryCaptor.getValue());
    assertEquals(parameter, parameterCaptor.getValue().getValue(0));
}
Also used : ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) Tuple(io.vertx.mutiny.sqlclient.Tuple) Test(org.junit.jupiter.api.Test)

Example 3 with Tuple

use of io.vertx.mutiny.sqlclient.Tuple 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)

Example 4 with Tuple

use of io.vertx.mutiny.sqlclient.Tuple in project kogito-apps by kiegroup.

the class PostgreSqlJobRepositoryTest method get.

@Test
void get() {
    CompletionStage<JobDetails> result = repository.get("test");
    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 = "SELECT id, correlation_id, status, last_update, retries, execution_counter, scheduled_id, " + "payload, type, priority, recipient, trigger FROM job_details WHERE id = $1";
    String parameter = "test";
    assertEquals(query, queryCaptor.getValue());
    assertEquals(parameter, parameterCaptor.getValue().getValue(0));
}
Also used : ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) JobDetails(org.kie.kogito.jobs.service.model.job.JobDetails) Tuple(io.vertx.mutiny.sqlclient.Tuple) Test(org.junit.jupiter.api.Test)

Example 5 with Tuple

use of io.vertx.mutiny.sqlclient.Tuple in project FrameworkBenchmarks by TechEmpower.

the class WorldRepository method update.

public Uni<Void> update(World[] worlds) {
    Arrays.sort(worlds);
    List<Tuple> args = new ArrayList<>(worlds.length);
    for (World world : worlds) {
        args.add(Tuple.of(world.getId(), world.getRandomNumber()));
    }
    return clients.getPool().preparedQuery("UPDATE World SET randomNumber = $2 WHERE id = $1").executeBatch(args).map(v -> null);
}
Also used : ArrayList(java.util.ArrayList) World(io.quarkus.benchmark.model.World) Tuple(io.vertx.mutiny.sqlclient.Tuple)

Aggregations

Tuple (io.vertx.mutiny.sqlclient.Tuple)5 Test (org.junit.jupiter.api.Test)4 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)4 JobDetails (org.kie.kogito.jobs.service.model.job.JobDetails)3 World (io.quarkus.benchmark.model.World)1 JsonObject (io.vertx.core.json.JsonObject)1 ArrayList (java.util.ArrayList)1 Recipient (org.kie.kogito.jobs.service.model.job.Recipient)1 PointInTimeTrigger (org.kie.kogito.timer.impl.PointInTimeTrigger)1