Skip to content

Commit 909994d

Browse files
committed
UnitTest failing
1 parent 57e7c5f commit 909994d

File tree

11 files changed

+159
-47
lines changed

11 files changed

+159
-47
lines changed

saas-modules/temporal/src/main/java/com/baeldung/temporal/worker/TemporalWorker.java

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.baeldung.temporal.worker;
2+
3+
import io.temporal.worker.Worker;
4+
5+
/**
6+
* Interface for registering Workflows and Activities to a Temporal Worker.
7+
*/
8+
public interface TemporalWorkerRegistrar {
9+
void register(Worker worker);
10+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.baeldung.temporal.workflows.hello;
2+
3+
import io.temporal.client.WorkflowClient;
4+
import io.temporal.serviceclient.WorkflowServiceStubs;
5+
import io.temporal.worker.Worker;
6+
import io.temporal.worker.WorkerFactory;
7+
import org.slf4j.Logger;
8+
import org.slf4j.LoggerFactory;
9+
10+
public class HelloWorkflowApplication {
11+
12+
private static final String QUEUE_NAME = "say-hello-queue";
13+
private static final Logger log = LoggerFactory.getLogger(HelloWorkflowApplication.class);
14+
15+
16+
public static void main(String[] args) {
17+
18+
log.info("Creating worker...");
19+
WorkflowServiceStubs service = WorkflowServiceStubs.newLocalServiceStubs();
20+
WorkflowClient client = WorkflowClient.newInstance(service);
21+
var factory = WorkerFactory.newInstance(client);
22+
Worker worker = factory.newWorker(QUEUE_NAME);
23+
24+
log.info("Registering workflows and activities...");
25+
HelloWorkflowRegistrar.newInstance().register(worker);
26+
27+
log.info("Starting worker...");
28+
factory.start();
29+
30+
}
31+
}

saas-modules/temporal/src/main/java/com/baeldung/temporal/workflows/hello/HelloWorker.java renamed to saas-modules/temporal/src/main/java/com/baeldung/temporal/workflows/hello/HelloWorkflowRegistrar.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
package com.baeldung.temporal.workflows.hello;
22

3-
import com.baeldung.temporal.worker.TemporalWorker;
3+
import com.baeldung.temporal.worker.TemporalWorkerRegistrar;
44
import com.baeldung.temporal.workflows.hello.activities.SayHelloActivityImpl;
55
import io.temporal.worker.Worker;
66

7-
public class HelloWorker implements TemporalWorker {
7+
public class HelloWorkflowRegistrar implements TemporalWorkerRegistrar {
88

9-
private Worker worker;
9+
private HelloWorkflowRegistrar() {}
1010

1111
@Override
12-
public void init(Worker worker) {
13-
this.worker = worker;
12+
public void register(Worker worker) {
1413
worker.registerWorkflowImplementationTypes(HelloWorkflowImpl.class);
1514
worker.registerActivitiesImplementations(new SayHelloActivityImpl());
1615
}
1716

17+
public static HelloWorkflowRegistrar newInstance() {
18+
return new HelloWorkflowRegistrar();
19+
}
1820
}

saas-modules/temporal/src/main/java/com/baeldung/temporal/workflows/hello/activities/SayHelloActivityImpl.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@ public class SayHelloActivityImpl implements SayHelloActivity {
88
private static final Logger log = LoggerFactory.getLogger(SayHelloActivityImpl.class);
99

1010
public String sayHello(String person) {
11-
12-
var info = Activity.getExecutionContext().getInfo();
13-
log.info("SayHelloActivityImpl sayHello({}): info={}", person, info);
14-
11+
log.info("Saying hello to {}", person);
1512
return "Hello, " + person;
1613
}
1714
}

saas-modules/temporal/src/main/java/com/baeldung/temporal/workflows/hellov2/HelloV2Worker.java renamed to saas-modules/temporal/src/main/java/com/baeldung/temporal/workflows/hellov2/HelloV2WorkerRegistrar.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
package com.baeldung.temporal.workflows.hellov2;
22

3-
import com.baeldung.temporal.worker.TemporalWorker;
3+
import com.baeldung.temporal.worker.TemporalWorkerRegistrar;
44
import com.baeldung.temporal.workflows.hellov2.activities.HelloV2ActivitiesImpl;
55
import io.temporal.worker.Worker;
66

7-
public class HelloV2Worker implements TemporalWorker {
7+
public class HelloV2WorkerRegistrar implements TemporalWorkerRegistrar {
88

9-
private Worker worker;
9+
10+
private HelloV2WorkerRegistrar() {
11+
}
1012

1113
@Override
12-
public void init(Worker worker) {
13-
this.worker = worker;
14+
public void register(Worker worker) {
1415
worker.registerWorkflowImplementationTypes(HelloWorkflowV2Impl.class);
1516
worker.registerActivitiesImplementations(new HelloV2ActivitiesImpl());
1617
}
1718

19+
public static HelloV2WorkerRegistrar newInstance() {
20+
return new HelloV2WorkerRegistrar();
21+
}
1822
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
4+
<!-- Console appender -->
5+
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
6+
<encoder>
7+
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
8+
</encoder>
9+
</appender>
10+
11+
<!-- Root logger -->
12+
<root level="INFO">
13+
<appender-ref ref="CONSOLE" />
14+
</root>
15+
16+
</configuration>

saas-modules/temporal/src/test/java/com/baeldung/temporal/Hello2WorkerIntegrationTest.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
package com.baeldung.temporal;
22

3-
import com.baeldung.temporal.workflows.hello.HelloWorkflow;
4-
import com.baeldung.temporal.workflows.hello.HelloWorker;
5-
import com.baeldung.temporal.workflows.hellov2.HelloV2Worker;
3+
import com.baeldung.temporal.workflows.hellov2.HelloV2WorkerRegistrar;
64
import com.baeldung.temporal.workflows.hellov2.HelloWorkflowV2;
75
import io.temporal.client.WorkflowClient;
86
import io.temporal.client.WorkflowOptions;
9-
import io.temporal.common.VersioningBehavior;
10-
import io.temporal.common.WorkerDeploymentVersion;
117
import io.temporal.serviceclient.WorkflowServiceStubs;
128
import io.temporal.worker.*;
13-
import io.temporal.workflow.Workflow;
149
import org.junit.jupiter.api.AfterEach;
1510
import org.junit.jupiter.api.BeforeEach;
1611
import org.junit.jupiter.api.Test;
@@ -40,8 +35,8 @@ public void startWorker() {
4035
.build();
4136
Worker worker = factory.newWorker(QUEUE_NAME,workerOptions);
4237

43-
var helloV2Worker = new HelloV2Worker();
44-
helloV2Worker.init(worker);
38+
HelloV2WorkerRegistrar.newInstance()
39+
.register(worker);
4540

4641
log.info("Starting worker...");
4742
factory.start();

saas-modules/temporal/src/test/java/com/baeldung/temporal/HelloV2WorkerUnitTest.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.baeldung.temporal;
22

33
import com.baeldung.temporal.workflows.hellov2.HelloWorkflowV2;
4-
import com.baeldung.temporal.workflows.hellov2.HelloV2Worker;
4+
import com.baeldung.temporal.workflows.hellov2.HelloV2WorkerRegistrar;
55
import com.baeldung.temporal.workflows.hello.HelloWorkflow;
66
import io.temporal.client.WorkflowClient;
77
import io.temporal.client.WorkflowOptions;
@@ -20,19 +20,17 @@
2020
class HelloV2WorkerUnitTest {
2121
private final Logger log = LoggerFactory.getLogger(HelloV2WorkerUnitTest.class);
2222
private static final String QUEUE_NAME = "say-hello-queue";
23-
24-
2523
private TestWorkflowEnvironment testEnv;
2624
private Worker worker;
2725
private WorkflowClient client;
2826

29-
3027
@BeforeEach
3128
void startWorker() {
32-
3329
log.info("Creating test environment...");
3430
testEnv = TestWorkflowEnvironment.newInstance();
3531
worker = testEnv.newWorker(QUEUE_NAME);
32+
HelloV2WorkerRegistrar.newInstance().register(worker);
33+
3634
client = testEnv.getWorkflowClient();
3735
}
3836

@@ -44,9 +42,6 @@ void stopWorker() {
4442
@Test
4543
void givenPerson_whenSayHello_thenSuccess() throws Exception {
4644

47-
var sayHelloWorker = new HelloV2Worker();
48-
sayHelloWorker.init(worker);
49-
5045
// We must register all activities/worklows before starting the test environment
5146
testEnv.start();
5247

@@ -66,8 +61,8 @@ void givenPerson_whenSayHello_thenSuccess() throws Exception {
6661
// Create a blocking workflow using tbe execution's workflow id
6762
var syncWorkflow = client.newWorkflowStub(HelloWorkflow.class,execution.getWorkflowId());
6863

69-
7064
// The sync workflow stub will block until it completes. Notice that the call argument here is ignored!
7165
assertEquals("Workflow OK", syncWorkflow.hello("ignored"));
66+
log.info("Test OK!");
7267
}
7368
}

saas-modules/temporal/src/test/java/com/baeldung/temporal/HelloWorkerUnitTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.baeldung.temporal;
22

33
import com.baeldung.temporal.workflows.hello.HelloWorkflow;
4-
import com.baeldung.temporal.workflows.hello.HelloWorker;
4+
import com.baeldung.temporal.workflows.hello.HelloWorkflowRegistrar;
55
import io.temporal.client.WorkflowClient;
66
import io.temporal.client.WorkflowOptions;
77
import io.temporal.testing.TestWorkflowEnvironment;
@@ -32,6 +32,7 @@ public void startWorker() {
3232
log.info("Creating test environment...");
3333
testEnv = TestWorkflowEnvironment.newInstance();
3434
worker = testEnv.newWorker(QUEUE_NAME);
35+
HelloWorkflowRegistrar.newInstance().register(worker);
3536
client = testEnv.getWorkflowClient();
3637
}
3738

@@ -43,9 +44,6 @@ public void stopWorker() {
4344
@Test
4445
void givenPerson_whenSayHello_thenSuccess() throws Exception {
4546

46-
var sayHelloWorker = new HelloWorker();
47-
sayHelloWorker.init(worker);
48-
4947
// We must register all activities/worklows before starting the test environment
5048
testEnv.start();
5149

0 commit comments

Comments
 (0)