Search in sources :

Example 1 with ExecuteQueryRequest

use of io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest in project zeebe by camunda.

the class QueryApiRequestHandlerTest method processFound.

@DisplayName("should respond with bpmnProcessId when process found")
@Test
void processFound() throws ClosedServiceException {
    // given
    final QueryApiRequestHandler sut = createQueryApiRequestHandler(true);
    final var bpmnProcessId = BufferUtil.wrapString("OneProcessToFindThem");
    final var queryService = mock(QueryService.class);
    sut.addPartition(1, queryService);
    when(queryService.getBpmnProcessIdForProcess(1)).thenReturn(Optional.of(bpmnProcessId));
    // when
    final Either<ErrorResponse, ExecuteQueryResponse> response = new AsyncExecuteQueryRequestSender(sut).sendRequest(new ExecuteQueryRequest().setPartitionId(1).setKey(1).setValueType(ValueType.PROCESS)).join();
    // then
    EitherAssert.assertThat(response).isRight().extracting(Either::get).extracting(ExecuteQueryResponse::getBpmnProcessId).isEqualTo("OneProcessToFindThem");
}
Also used : ExecuteQueryRequest(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest) ExecuteQueryResponse(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryResponse) Either(io.camunda.zeebe.util.Either) ErrorResponse(io.camunda.zeebe.protocol.impl.encoding.ErrorResponse) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 2 with ExecuteQueryRequest

use of io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest in project zeebe by camunda.

the class QueryApiRequestHandlerTest method processNotFound.

@DisplayName("should respond with PROCESS_NOT_FOUND when no process with key exists")
@Test
void processNotFound() {
    // given
    final QueryApiRequestHandler sut = createQueryApiRequestHandler(true);
    sut.addPartition(1, mock(QueryService.class));
    // when
    final Either<ErrorResponse, ExecuteQueryResponse> response = new AsyncExecuteQueryRequestSender(sut).sendRequest(new ExecuteQueryRequest().setPartitionId(1).setKey(1).setValueType(ValueType.PROCESS)).join();
    // then
    EitherAssert.assertThat(response).isLeft().extracting(Either::getLeft).extracting(ErrorResponse::getErrorCode, error -> BufferUtil.bufferAsString(error.getErrorData())).containsExactly(ErrorCode.PROCESS_NOT_FOUND, "Expected to find the process ID for resource of type PROCESS with key 1, but no such " + "resource was found");
}
Also used : BeforeEach(org.junit.jupiter.api.BeforeEach) ErrorCode(io.camunda.zeebe.protocol.record.ErrorCode) ClosedServiceException(io.camunda.zeebe.engine.state.QueryService.ClosedServiceException) UnsafeBuffer(org.agrona.concurrent.UnsafeBuffer) ValueType(io.camunda.zeebe.protocol.record.ValueType) CompletableFuture(java.util.concurrent.CompletableFuture) ErrorResponse(io.camunda.zeebe.protocol.impl.encoding.ErrorResponse) ExecuteQueryResponse(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryResponse) ServerOutput(io.camunda.zeebe.transport.ServerOutput) Either(io.camunda.zeebe.util.Either) QueryApiCfg(io.camunda.zeebe.broker.system.configuration.QueryApiCfg) ExecutionMode(org.junit.jupiter.api.parallel.ExecutionMode) Mockito.when(org.mockito.Mockito.when) ExpandableArrayBuffer(org.agrona.ExpandableArrayBuffer) DisplayName(org.junit.jupiter.api.DisplayName) ExecuteQueryRequest(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest) EitherAssert(io.camunda.zeebe.test.util.asserts.EitherAssert) Test(org.junit.jupiter.api.Test) AfterEach(org.junit.jupiter.api.AfterEach) QueryService(io.camunda.zeebe.engine.state.QueryService) Optional(java.util.Optional) Execution(org.junit.jupiter.api.parallel.Execution) BufferUtil(io.camunda.zeebe.util.buffer.BufferUtil) Mockito.mock(org.mockito.Mockito.mock) ActorScheduler(io.camunda.zeebe.util.sched.ActorScheduler) ExecuteQueryRequest(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest) QueryService(io.camunda.zeebe.engine.state.QueryService) ExecuteQueryResponse(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryResponse) Either(io.camunda.zeebe.util.Either) ErrorResponse(io.camunda.zeebe.protocol.impl.encoding.ErrorResponse) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 3 with ExecuteQueryRequest

use of io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest in project zeebe by camunda.

the class QueryApiRequestHandlerTest method jobNotFound.

@DisplayName("should respond with PROCESS_NOT_FOUND when no job with key exists")
@Test
void jobNotFound() {
    // given
    final QueryApiRequestHandler sut = createQueryApiRequestHandler(true);
    sut.addPartition(1, mock(QueryService.class));
    // when
    final Either<ErrorResponse, ExecuteQueryResponse> response = new AsyncExecuteQueryRequestSender(sut).sendRequest(new ExecuteQueryRequest().setPartitionId(1).setKey(1).setValueType(ValueType.JOB)).join();
    // then
    EitherAssert.assertThat(response).isLeft().extracting(Either::getLeft).extracting(ErrorResponse::getErrorCode, error -> BufferUtil.bufferAsString(error.getErrorData())).containsExactly(ErrorCode.PROCESS_NOT_FOUND, "Expected to find the process ID for resource of type JOB with key 1, but no such " + "resource was found");
}
Also used : BeforeEach(org.junit.jupiter.api.BeforeEach) ErrorCode(io.camunda.zeebe.protocol.record.ErrorCode) ClosedServiceException(io.camunda.zeebe.engine.state.QueryService.ClosedServiceException) UnsafeBuffer(org.agrona.concurrent.UnsafeBuffer) ValueType(io.camunda.zeebe.protocol.record.ValueType) CompletableFuture(java.util.concurrent.CompletableFuture) ErrorResponse(io.camunda.zeebe.protocol.impl.encoding.ErrorResponse) ExecuteQueryResponse(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryResponse) ServerOutput(io.camunda.zeebe.transport.ServerOutput) Either(io.camunda.zeebe.util.Either) QueryApiCfg(io.camunda.zeebe.broker.system.configuration.QueryApiCfg) ExecutionMode(org.junit.jupiter.api.parallel.ExecutionMode) Mockito.when(org.mockito.Mockito.when) ExpandableArrayBuffer(org.agrona.ExpandableArrayBuffer) DisplayName(org.junit.jupiter.api.DisplayName) ExecuteQueryRequest(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest) EitherAssert(io.camunda.zeebe.test.util.asserts.EitherAssert) Test(org.junit.jupiter.api.Test) AfterEach(org.junit.jupiter.api.AfterEach) QueryService(io.camunda.zeebe.engine.state.QueryService) Optional(java.util.Optional) Execution(org.junit.jupiter.api.parallel.Execution) BufferUtil(io.camunda.zeebe.util.buffer.BufferUtil) Mockito.mock(org.mockito.Mockito.mock) ActorScheduler(io.camunda.zeebe.util.sched.ActorScheduler) ExecuteQueryRequest(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest) QueryService(io.camunda.zeebe.engine.state.QueryService) ExecuteQueryResponse(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryResponse) Either(io.camunda.zeebe.util.Either) ErrorResponse(io.camunda.zeebe.protocol.impl.encoding.ErrorResponse) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 4 with ExecuteQueryRequest

use of io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest in project zeebe by camunda.

the class QueryApiRequestHandlerTest method processInstanceNotFound.

@DisplayName("should respond with PROCESS_NOT_FOUND when no process instance with key exists")
@Test
void processInstanceNotFound() {
    // given
    final QueryApiRequestHandler sut = createQueryApiRequestHandler(true);
    sut.addPartition(1, mock(QueryService.class));
    // when
    final Either<ErrorResponse, ExecuteQueryResponse> response = new AsyncExecuteQueryRequestSender(sut).sendRequest(new ExecuteQueryRequest().setPartitionId(1).setKey(1).setValueType(ValueType.PROCESS_INSTANCE)).join();
    // then
    EitherAssert.assertThat(response).isLeft().extracting(Either::getLeft).extracting(ErrorResponse::getErrorCode, error -> BufferUtil.bufferAsString(error.getErrorData())).containsExactly(ErrorCode.PROCESS_NOT_FOUND, "Expected to find the process ID for resource of type PROCESS_INSTANCE with key 1, but " + "no such resource was found");
}
Also used : BeforeEach(org.junit.jupiter.api.BeforeEach) ErrorCode(io.camunda.zeebe.protocol.record.ErrorCode) ClosedServiceException(io.camunda.zeebe.engine.state.QueryService.ClosedServiceException) UnsafeBuffer(org.agrona.concurrent.UnsafeBuffer) ValueType(io.camunda.zeebe.protocol.record.ValueType) CompletableFuture(java.util.concurrent.CompletableFuture) ErrorResponse(io.camunda.zeebe.protocol.impl.encoding.ErrorResponse) ExecuteQueryResponse(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryResponse) ServerOutput(io.camunda.zeebe.transport.ServerOutput) Either(io.camunda.zeebe.util.Either) QueryApiCfg(io.camunda.zeebe.broker.system.configuration.QueryApiCfg) ExecutionMode(org.junit.jupiter.api.parallel.ExecutionMode) Mockito.when(org.mockito.Mockito.when) ExpandableArrayBuffer(org.agrona.ExpandableArrayBuffer) DisplayName(org.junit.jupiter.api.DisplayName) ExecuteQueryRequest(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest) EitherAssert(io.camunda.zeebe.test.util.asserts.EitherAssert) Test(org.junit.jupiter.api.Test) AfterEach(org.junit.jupiter.api.AfterEach) QueryService(io.camunda.zeebe.engine.state.QueryService) Optional(java.util.Optional) Execution(org.junit.jupiter.api.parallel.Execution) BufferUtil(io.camunda.zeebe.util.buffer.BufferUtil) Mockito.mock(org.mockito.Mockito.mock) ActorScheduler(io.camunda.zeebe.util.sched.ActorScheduler) ExecuteQueryRequest(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest) QueryService(io.camunda.zeebe.engine.state.QueryService) ExecuteQueryResponse(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryResponse) Either(io.camunda.zeebe.util.Either) ErrorResponse(io.camunda.zeebe.protocol.impl.encoding.ErrorResponse) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 5 with ExecuteQueryRequest

use of io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest in project zeebe by zeebe-io.

the class QueryApiRequestHandlerTest method closedQueryService.

@DisplayName("should respond with PARTITION_LEADER_MISMATCH when the service is closed")
@Test
void closedQueryService() {
    // given
    final QueryApiRequestHandler sut = createQueryApiRequestHandler(true);
    sut.addPartition(1, mock(QueryService.class, i -> {
        throw new ClosedServiceException();
    }));
    // when
    final Either<ErrorResponse, ExecuteQueryResponse> response = new AsyncExecuteQueryRequestSender(sut).sendRequest(new ExecuteQueryRequest().setPartitionId(9999)).join();
    // then
    EitherAssert.assertThat(response).isLeft().extracting(Either::getLeft).extracting(ErrorResponse::getErrorCode, error -> BufferUtil.bufferAsString(error.getErrorData())).containsExactly(ErrorCode.PARTITION_LEADER_MISMATCH, "Expected to handle client message on the leader of partition '9999', but this node is " + "not the leader for it");
}
Also used : BeforeEach(org.junit.jupiter.api.BeforeEach) ErrorCode(io.camunda.zeebe.protocol.record.ErrorCode) ClosedServiceException(io.camunda.zeebe.engine.state.QueryService.ClosedServiceException) UnsafeBuffer(org.agrona.concurrent.UnsafeBuffer) ValueType(io.camunda.zeebe.protocol.record.ValueType) CompletableFuture(java.util.concurrent.CompletableFuture) ErrorResponse(io.camunda.zeebe.protocol.impl.encoding.ErrorResponse) ExecuteQueryResponse(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryResponse) ServerOutput(io.camunda.zeebe.transport.ServerOutput) Either(io.camunda.zeebe.util.Either) QueryApiCfg(io.camunda.zeebe.broker.system.configuration.QueryApiCfg) ExecutionMode(org.junit.jupiter.api.parallel.ExecutionMode) Mockito.when(org.mockito.Mockito.when) ExpandableArrayBuffer(org.agrona.ExpandableArrayBuffer) DisplayName(org.junit.jupiter.api.DisplayName) ExecuteQueryRequest(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest) EitherAssert(io.camunda.zeebe.test.util.asserts.EitherAssert) Test(org.junit.jupiter.api.Test) AfterEach(org.junit.jupiter.api.AfterEach) QueryService(io.camunda.zeebe.engine.state.QueryService) Optional(java.util.Optional) Execution(org.junit.jupiter.api.parallel.Execution) BufferUtil(io.camunda.zeebe.util.buffer.BufferUtil) Mockito.mock(org.mockito.Mockito.mock) ActorScheduler(io.camunda.zeebe.util.sched.ActorScheduler) ClosedServiceException(io.camunda.zeebe.engine.state.QueryService.ClosedServiceException) ExecuteQueryRequest(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest) QueryService(io.camunda.zeebe.engine.state.QueryService) ExecuteQueryResponse(io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryResponse) Either(io.camunda.zeebe.util.Either) ErrorResponse(io.camunda.zeebe.protocol.impl.encoding.ErrorResponse) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Aggregations

ErrorResponse (io.camunda.zeebe.protocol.impl.encoding.ErrorResponse)24 ExecuteQueryRequest (io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryRequest)24 ExecuteQueryResponse (io.camunda.zeebe.protocol.impl.encoding.ExecuteQueryResponse)24 Either (io.camunda.zeebe.util.Either)24 DisplayName (org.junit.jupiter.api.DisplayName)24 Test (org.junit.jupiter.api.Test)24 QueryApiCfg (io.camunda.zeebe.broker.system.configuration.QueryApiCfg)15 QueryService (io.camunda.zeebe.engine.state.QueryService)15 ClosedServiceException (io.camunda.zeebe.engine.state.QueryService.ClosedServiceException)15 ErrorCode (io.camunda.zeebe.protocol.record.ErrorCode)15 ValueType (io.camunda.zeebe.protocol.record.ValueType)15 EitherAssert (io.camunda.zeebe.test.util.asserts.EitherAssert)15 ServerOutput (io.camunda.zeebe.transport.ServerOutput)15 BufferUtil (io.camunda.zeebe.util.buffer.BufferUtil)15 ActorScheduler (io.camunda.zeebe.util.sched.ActorScheduler)15 Optional (java.util.Optional)15 CompletableFuture (java.util.concurrent.CompletableFuture)15 ExpandableArrayBuffer (org.agrona.ExpandableArrayBuffer)15 UnsafeBuffer (org.agrona.concurrent.UnsafeBuffer)15 AfterEach (org.junit.jupiter.api.AfterEach)15