Skip to content

Commit 84cb1a5

Browse files
committed
test module
Signed-off-by: Hendrik Ebbers <[email protected]>
1 parent 442dbf3 commit 84cb1a5

File tree

6 files changed

+45
-22
lines changed

6 files changed

+45
-22
lines changed

hiero-enterprise-microprofile/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@
4242
<artifactId>jakarta.ws.rs-api</artifactId>
4343
<scope>provided</scope>
4444
</dependency>
45+
<dependency>
46+
<groupId>${project.groupId}</groupId>
47+
<artifactId>hiero-enterprise-test</artifactId>
48+
<scope>test</scope>
49+
</dependency>
4550
<dependency>
4651
<groupId>io.helidon.microprofile.server</groupId>
4752
<artifactId>helidon-microprofile-server</artifactId>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.openelements.hiero.microprofile.test;
2+
3+
import com.openelements.hiero.base.mirrornode.MirrorNodeClient;
4+
import com.openelements.hiero.base.protocol.ProtocolLayerClient;
5+
import com.openelements.hiero.test.HieroTestUtils;
6+
import jakarta.enterprise.context.ApplicationScoped;
7+
import jakarta.enterprise.inject.Produces;
8+
9+
@ApplicationScoped
10+
public class HieroTestProducer {
11+
12+
@Produces
13+
@ApplicationScoped
14+
public HieroTestUtils createHieroTestUtils(
15+
MirrorNodeClient mirrorNodeClient, ProtocolLayerClient protocolLayerClient) {
16+
return new HieroTestUtils(mirrorNodeClient, protocolLayerClient);
17+
}
18+
}

hiero-enterprise-microprofile/src/test/java/com/openelements/hiero/microprofile/test/TestConfigSource.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import io.github.cdimascio.dotenv.Dotenv;
44
import java.util.HashMap;
55
import java.util.Map;
6-
import java.util.Objects;
76
import java.util.Set;
87
import org.eclipse.microprofile.config.spi.ConfigSource;
98
import org.slf4j.Logger;
@@ -41,12 +40,6 @@ public TestConfigSource() {
4140
properties.put("hiero.network.name", Dotenv.load().get("hiero.network.name"));
4241
}
4342

44-
//TODO: Hardcoded for Solo tests,should be fixed later
45-
if (Objects.equals(properties.get("hiero.network.name"), "solo")) {
46-
properties.put("hiero.network.nodes", "127.0.0.1:50211:0.0.3");
47-
properties.put("hiero.network.mirrornode", "http://localhost:8080");
48-
}
49-
5043
properties.forEach((k, v) -> log.info("CONFIG: '" + k + "'->'" + v + "'"));
5144
}
5245

hiero-enterprise-spring/src/test/java/com/openelements/hiero/spring/test/TestConfig.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ public class TestConfig {
1616
@Bean
1717
HieroTestUtils hieroTestUtils(MirrorNodeClient mirrorNodeClient, ProtocolLayerClient protocolLayerClient) {
1818
HieroTestUtils testUtils = new HieroTestUtils(mirrorNodeClient, protocolLayerClient);
19-
testUtils.init();
2019
return testUtils;
2120
}
2221
}

hiero-enterprise-test/src/main/java/com/openelements/hiero/test/HieroTestUtils.java

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,30 @@
77
import com.openelements.hiero.base.protocol.ProtocolLayerClient;
88
import com.openelements.hiero.base.protocol.TransactionListener;
99
import com.openelements.hiero.base.protocol.TransactionType;
10+
import java.io.Serializable;
1011
import java.time.LocalDateTime;
11-
import java.util.concurrent.atomic.AtomicBoolean;
1212
import java.util.concurrent.atomic.AtomicReference;
13+
import org.slf4j.Logger;
14+
import org.slf4j.LoggerFactory;
1315

14-
public class HieroTestUtils {
16+
public class HieroTestUtils implements Serializable {
17+
18+
private final static Logger log = LoggerFactory.getLogger(HieroTestUtils.class);
1519

1620
private final MirrorNodeClient mirrorNodeClient;
1721

1822
private final ProtocolLayerClient protocolLayerClient;
1923

2024
private final AtomicReference<TransactionId> transactionIdRef = new AtomicReference<>();
2125

22-
private final AtomicBoolean initialized = new AtomicBoolean();
26+
public HieroTestUtils() {
27+
throw new UnsupportedOperationException("No-args constructor not supported");
28+
}
2329

2430
public HieroTestUtils(MirrorNodeClient mirrorNodeClient, ProtocolLayerClient protocolLayerClient) {
2531
this.mirrorNodeClient = mirrorNodeClient;
2632
this.protocolLayerClient = protocolLayerClient;
27-
}
2833

29-
public synchronized void init() {
30-
final boolean initHappened = initialized.get();
31-
if (initHappened) {
32-
return;
33-
}
34-
initialized.set(true);
3534
protocolLayerClient.addTransactionListener(new TransactionListener() {
3635
@Override
3736
public void transactionSubmitted(TransactionType transactionType, TransactionId transactionId) {
@@ -45,27 +44,35 @@ public void transactionHandled(TransactionType transactionType, TransactionId tr
4544
});
4645
}
4746

48-
public void waitForMirrorNodeRecords() throws HieroException {
47+
public void waitForMirrorNodeRecords() {
4948
final TransactionId transactionId = transactionIdRef.get();
5049
if (transactionId != null) {
50+
log.debug("Waiting for transaction '{}' available at mirror node", transactionId);
5151
final LocalDateTime start = LocalDateTime.now();
5252
boolean done = false;
5353
while (!done) {
5454
String transactionIdString =
5555
transactionId.accountId.toString() + "-" + transactionId.validStart.getEpochSecond() + "-"
5656
+ String.format("%09d", transactionId.validStart.getNano());
57-
done = mirrorNodeClient.queryTransaction(transactionIdString).isPresent();
57+
try {
58+
done = mirrorNodeClient.queryTransaction(transactionIdString).isPresent();
59+
} catch (HieroException e) {
60+
throw new RuntimeException("Error in mirror node query!", e);
61+
}
5862
if (!done) {
5963
if (LocalDateTime.now().isAfter(start.plusSeconds(30))) {
60-
throw new HieroException("Timeout waiting for transaction");
64+
throw new RuntimeException("Timeout waiting for transaction");
6165
}
6266
try {
6367
Thread.sleep(100);
6468
} catch (InterruptedException e) {
65-
throw new HieroException("Interrupted while waiting for transaction", e);
69+
throw new RuntimeException("Interrupted while waiting for transaction", e);
6670
}
6771
}
6872
}
73+
log.debug("Transaction '{}' is available at mirror node", transactionId);
74+
} else {
75+
log.debug("No transaction to wait for");
6976
}
7077
}
7178
}

hiero-enterprise-test/src/main/java/module-info.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
requires transitive com.openelements.hiero.base;
77
requires org.jspecify;
88
requires com.google.auto.service;
9+
requires org.slf4j;
910
}

0 commit comments

Comments
 (0)