use of io.camunda.zeebe.client.ZeebeClient in project zeebe-test-container by camunda-community-hub.
the class ZeebeClusterTest method shouldStartClusterWithMixedGateways.
@Test
void shouldStartClusterWithMixedGateways() {
// given
cluster = ZeebeCluster.builder().withEmbeddedGateway(true).withReplicationFactor(1).withPartitionsCount(1).withBrokersCount(1).withGatewaysCount(1).build();
// when
cluster.start();
// then
for (final ZeebeGatewayNode<?> gateway : cluster.getGateways().values()) {
try (final ZeebeClient client = ZeebeClient.newClientBuilder().usePlaintext().gatewayAddress(gateway.getExternalGatewayAddress()).build()) {
final Topology topology = client.newTopologyRequest().send().join();
assertThat(topology.getPartitionsCount()).as("there is exactly one partition as configured").isEqualTo(1);
assertThat(topology.getReplicationFactor()).as("there is a replication factor of 1 as configured").isEqualTo(1);
TopologyAssert.assertThat(topology).as("the topology is complete for a one broker, one partition cluster").isComplete(1, 1, 1).hasBrokersCount(1);
}
}
}
use of io.camunda.zeebe.client.ZeebeClient in project zeebe-test-container by camunda-community-hub.
the class ZeebeClusterTest method shouldStartClusterWithEmbeddedGateways.
@Test
void shouldStartClusterWithEmbeddedGateways() {
// given
cluster = ZeebeCluster.builder().withEmbeddedGateway(true).withReplicationFactor(2).withPartitionsCount(2).withBrokersCount(2).build();
// when
cluster.start();
// then
for (final ZeebeGatewayNode<?> gateway : cluster.getGateways().values()) {
try (final ZeebeClient client = ZeebeClient.newClientBuilder().usePlaintext().gatewayAddress(gateway.getExternalGatewayAddress()).build()) {
final Topology topology = client.newTopologyRequest().send().join();
assertThat(topology.getReplicationFactor()).as("there is replication factor of 2 as configured").isEqualTo(2);
assertThat(topology.getPartitionsCount()).as("there are exactly two partitions as configured").isEqualTo(2);
TopologyAssert.assertThat(topology).as("the topology is complete with 2 partitions and 2 brokers").hasBrokersCount(2).isComplete(2, 2, 2);
}
}
}
use of io.camunda.zeebe.client.ZeebeClient in project zeebe-test-container by camunda-community-hub.
the class ClusterWithGatewayExampleTest method shouldStartCluster.
@Test
@Timeout(value = 15, unit = TimeUnit.MINUTES)
void shouldStartCluster() {
// given
Startables.deepStart(brokers).join();
gatewayContainer.start();
// when
final Topology topology;
try (final ZeebeClient client = newZeebeClient(gatewayContainer)) {
topology = client.newTopologyRequest().send().join(5, TimeUnit.SECONDS);
}
// then
final List<BrokerInfo> brokers = topology.getBrokers();
Assertions.assertThat(brokers).as("the topology contains all the brokers, advertising the right address").hasSize(3).extracting(BrokerInfo::getAddress).containsExactlyInAnyOrder(brokerZeroContainer.getInternalCommandAddress(), brokerOneContainer.getInternalCommandAddress(), brokerTwoContainer.getInternalCommandAddress());
}
use of io.camunda.zeebe.client.ZeebeClient in project zeebe-test-container by camunda-community-hub.
the class TriggerTimerCatchEventTest method shouldTriggerTimerStartEvent.
@Test
@Timeout(value = 5, unit = TimeUnit.MINUTES)
void shouldTriggerTimerStartEvent() {
// given
final ZeebeClock clock = ZeebeClock.newDefaultClock(zeebeContainer);
final BpmnModelInstance process = Bpmn.createExecutableProcess("process").startEvent().intermediateCatchEvent().timerWithDate(TIMER_DATE.toString()).serviceTask("task", b -> b.zeebeJobType(JOB_TYPE)).endEvent().done();
final List<ActivatedJob> activatedJobs = new CopyOnWriteArrayList<>();
final Instant brokerTime;
// when
final JobHandler handler = (client, job) -> activatedJobs.add(job);
try (final ZeebeClient client = newZeebeClient(zeebeContainer);
final JobWorker worker = newJobWorker(handler, client)) {
client.newDeployCommand().addProcessModel(process, "process.bpmn").send().join();
client.newCreateInstanceCommand().bpmnProcessId("process").latestVersion().send().join();
brokerTime = clock.addTime(TIME_OFFSET);
Awaitility.await("until a job has been activated by the worker").untilAsserted(() -> Assertions.assertThat(activatedJobs).hasSize(1));
}
// then
Assertions.assertThat(activatedJobs).as("the timer event was triggered and a job is now available").hasSize(1);
Assertions.assertThat(brokerTime).as("the modified time is at least equal to one day from now").isAfterOrEqualTo(TIMER_DATE);
}
use of io.camunda.zeebe.client.ZeebeClient in project zeebe-test-container by camunda-community-hub.
the class ZeebeClusterSingleNodeExampleTest method shouldConnectToZeebe.
@Test
@Timeout(value = 5, unit = TimeUnit.MINUTES)
void shouldConnectToZeebe() {
// given
final Topology topology;
// when
try (final ZeebeClient client = cluster.newClientBuilder().build()) {
topology = client.newTopologyRequest().send().join(5, TimeUnit.SECONDS);
}
// then
final List<BrokerInfo> brokers = topology.getBrokers();
Assertions.assertThat(brokers).as("the topology contains all the brokers, advertising the expected address").hasSize(1).extracting(BrokerInfo::getAddress).containsExactlyInAnyOrder(cluster.getBrokers().get(0).getInternalCommandAddress());
}
Aggregations