Skip to content

Commit 8113f9d

Browse files
authored
feat: run tests against PoCo v6.2.0 (#166)
1 parent 3208ec2 commit 8113f9d

File tree

4 files changed

+79
-14
lines changed

4 files changed

+79
-14
lines changed

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
services:
22
poco-chain:
3-
image: docker-regis.iex.ec/poco-chain:1.1.0-poco-v6.1.0-contracts-voucher-v1.0.0-nethermind
3+
image: docker-regis.iex.ec/poco-chain:1.2.2-poco-v6.2.0-contracts-nethermind
44
expose:
55
- "8545"

src/test/java/com/iexec/commons/poco/itest/MatchOrdersTests.java

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
import org.junit.jupiter.api.BeforeEach;
2828
import org.junit.jupiter.api.Tag;
2929
import org.junit.jupiter.api.Test;
30+
import org.junit.jupiter.params.ParameterizedTest;
31+
import org.junit.jupiter.params.provider.Arguments;
32+
import org.junit.jupiter.params.provider.MethodSource;
3033
import org.testcontainers.containers.ComposeContainer;
3134
import org.testcontainers.junit.jupiter.Container;
3235
import org.testcontainers.junit.jupiter.Testcontainers;
@@ -45,14 +48,14 @@
4548
import java.util.List;
4649
import java.util.Map;
4750
import java.util.concurrent.TimeUnit;
51+
import java.util.stream.Stream;
4852

4953
import static com.iexec.commons.poco.encoding.MatchOrdersDataEncoder.encodeAssertDatasetDealCompatibility;
5054
import static com.iexec.commons.poco.itest.ChainTests.SERVICE_NAME;
5155
import static com.iexec.commons.poco.itest.ChainTests.SERVICE_PORT;
5256
import static com.iexec.commons.poco.itest.IexecHubTestService.*;
5357
import static com.iexec.commons.poco.itest.Web3jTestService.MINING_TIMEOUT;
54-
import static org.assertj.core.api.Assertions.assertThat;
55-
import static org.assertj.core.api.Assertions.assertThatThrownBy;
58+
import static org.assertj.core.api.Assertions.*;
5659
import static org.awaitility.Awaitility.await;
5760

5861
@Slf4j
@@ -237,6 +240,51 @@ void shouldMatchOrdersWithoutDataset() throws IOException {
237240
}
238241
}
239242

243+
@ParameterizedTest
244+
@MethodSource("provideValidTags")
245+
void shouldMatchOrdersWithValidTags(final String appTag, final String datasetTag, final String requestTag, final String workerpoolTag) throws IOException {
246+
final Map<String, String> deployedAddresses = iexecHubService.deployAssets();
247+
final AppOrder signedAppOrder = ordersService.buildSignedAppOrder(deployedAddresses.get("app"), appTag);
248+
final DatasetOrder signedDatasetOrder = ordersService.buildSignedDatasetOrder(deployedAddresses.get("dataset"), datasetTag);
249+
final WorkerpoolOrder signedWorkerpoolOrder = ordersService.buildSignedWorkerpoolOrder(deployedAddresses.get("workerpool"), BigInteger.ONE, workerpoolTag);
250+
final RequestOrder signedRequestOrder = ordersService.buildSignedRequestOrder(
251+
signedAppOrder, signedDatasetOrder, signedWorkerpoolOrder, BigInteger.ONE, requestTag);
252+
253+
final String matchOrdersTxData = MatchOrdersDataEncoder.encode(signedAppOrder, signedDatasetOrder, signedWorkerpoolOrder, signedRequestOrder);
254+
assertThatNoException().isThrownBy(() -> signerService.estimateGas(IEXEC_HUB_ADDRESS, matchOrdersTxData));
255+
}
256+
257+
static Stream<Arguments> provideValidTags() {
258+
return Stream.of(
259+
Arguments.of("0x1", "0x1", "0x1", "0x1"),
260+
Arguments.of("0x1", "0x1", "0x0", "0x1"),
261+
Arguments.of("0x1", "0x0", "0x1", "0x1"),
262+
Arguments.of("0x1", "0x0", "0x0", "0x1"),
263+
Arguments.of("0x0", "0x0", "0x0", "0x1"));
264+
}
265+
266+
@ParameterizedTest
267+
@MethodSource("provideInvalidTags")
268+
void shouldNotMatchOrdersWithInvalidTags(final String appTag, final String datasetTag, final String requestTag, final String workerpoolTag) throws IOException {
269+
final Map<String, String> deployedAddresses = iexecHubService.deployAssets();
270+
final AppOrder signedAppOrder = ordersService.buildSignedAppOrder(deployedAddresses.get("app"), appTag);
271+
final DatasetOrder signedDatasetOrder = ordersService.buildSignedDatasetOrder(deployedAddresses.get("dataset"), datasetTag);
272+
final WorkerpoolOrder signedWorkerpoolOrder = ordersService.buildSignedWorkerpoolOrder(deployedAddresses.get("workerpool"), BigInteger.ONE, workerpoolTag);
273+
final RequestOrder signedRequestOrder = ordersService.buildSignedRequestOrder(
274+
signedAppOrder, signedDatasetOrder, signedWorkerpoolOrder, BigInteger.ONE, requestTag);
275+
276+
final String matchOrdersTxData = MatchOrdersDataEncoder.encode(signedAppOrder, signedDatasetOrder, signedWorkerpoolOrder, signedRequestOrder);
277+
assertThatThrownBy(() -> signerService.estimateGas(IEXEC_HUB_ADDRESS, matchOrdersTxData))
278+
.isInstanceOf(JsonRpcError.class)
279+
.hasMessage("iExecV5-matchOrders-0x07");
280+
}
281+
282+
static Stream<Arguments> provideInvalidTags() {
283+
return Stream.of(
284+
Arguments.of("0x0", "0x0", "0x1", "0x1"),
285+
Arguments.of("0x0", "0x1", "0x0", "0x1"));
286+
}
287+
240288
// region utils
241289
private DatasetOrder.DatasetOrderBuilder getValidOrderBuilder(final String datasetAddress) {
242290
return DatasetOrder.builder()
@@ -257,8 +305,7 @@ private Map<DatasetOrder, String> getInvalidOrders(final String datasetAddress)
257305
Map.entry(getValidOrderBuilder(datasetAddress).apprestrict(IEXEC_HUB_ADDRESS).build(), "App restriction not satisfied"),
258306
Map.entry(getValidOrderBuilder(datasetAddress).workerpoolrestrict(IEXEC_HUB_ADDRESS).build(), "Workerpool restriction not satisfied"),
259307
Map.entry(getValidOrderBuilder(datasetAddress).requesterrestrict(IEXEC_HUB_ADDRESS).build(), "Requester restriction not satisfied"),
260-
Map.entry(getValidOrderBuilder(datasetAddress).tag(OrderTag.TEE_GRAMINE.getValue()).build(), "Tag compatibility not satisfied"),
261-
Map.entry(getValidOrderBuilder(datasetAddress).tag(OrderTag.TEE_TDX.getValue()).build(), "Tag compatibility not satisfied")
308+
Map.entry(getValidOrderBuilder(datasetAddress).tag("0xFF").build(), "Tag compatibility not satisfied")
262309
);
263310
}
264311

src/test/java/com/iexec/commons/poco/itest/OrdersService.java

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,16 @@ public OrdersService(final EIP712Domain domain, final SignerService signerServic
4747
this.signerService = signerService;
4848
}
4949

50-
public AppOrder buildSignedAppOrder(String appAddress) {
50+
public AppOrder buildSignedAppOrder(final String appAddress) {
51+
return buildSignedAppOrder(appAddress, OrderTag.TEE_SCONE.getValue());
52+
}
53+
54+
public AppOrder buildSignedAppOrder(final String appAddress, final String tag) {
5155
final AppOrder appOrder = AppOrder.builder()
5256
.app(appAddress)
5357
.appprice(BigInteger.ZERO)
5458
.volume(BigInteger.ONE)
55-
.tag(OrderTag.TEE_SCONE.getValue())
59+
.tag(tag)
5660
.datasetrestrict(BytesUtils.EMPTY_ADDRESS)
5761
.workerpoolrestrict(BytesUtils.EMPTY_ADDRESS)
5862
.requesterrestrict(BytesUtils.EMPTY_ADDRESS)
@@ -61,12 +65,16 @@ public AppOrder buildSignedAppOrder(String appAddress) {
6165
return (AppOrder) signerService.signOrderForDomain(appOrder, domain);
6266
}
6367

64-
public DatasetOrder buildSignedDatasetOrder(String datasetAddress) {
68+
public DatasetOrder buildSignedDatasetOrder(final String datasetAddress) {
69+
return buildSignedDatasetOrder(datasetAddress, OrderTag.TEE_SCONE.getValue());
70+
}
71+
72+
public DatasetOrder buildSignedDatasetOrder(final String datasetAddress, final String tag) {
6573
final DatasetOrder datasetOrder = DatasetOrder.builder()
6674
.dataset(datasetAddress)
6775
.datasetprice(BigInteger.ZERO)
6876
.volume(BigInteger.ONE)
69-
.tag(OrderTag.TEE_SCONE.getValue())
77+
.tag(tag)
7078
.apprestrict(BytesUtils.EMPTY_ADDRESS)
7179
.workerpoolrestrict(BytesUtils.EMPTY_ADDRESS)
7280
.requesterrestrict(BytesUtils.EMPTY_ADDRESS)
@@ -75,12 +83,16 @@ public DatasetOrder buildSignedDatasetOrder(String datasetAddress) {
7583
return (DatasetOrder) signerService.signOrderForDomain(datasetOrder, domain);
7684
}
7785

78-
public WorkerpoolOrder buildSignedWorkerpoolOrder(String workerpoolAddress, BigInteger trust) {
86+
public WorkerpoolOrder buildSignedWorkerpoolOrder(final String workerpoolAddress, final BigInteger trust) {
87+
return buildSignedWorkerpoolOrder(workerpoolAddress, trust, OrderTag.TEE_SCONE.getValue());
88+
}
89+
90+
public WorkerpoolOrder buildSignedWorkerpoolOrder(final String workerpoolAddress, final BigInteger trust, final String tag) {
7991
final WorkerpoolOrder workerpoolOrder = WorkerpoolOrder.builder()
8092
.workerpool(workerpoolAddress)
8193
.workerpoolprice(BigInteger.ZERO)
8294
.volume(BigInteger.ONE)
83-
.tag(OrderTag.TEE_SCONE.getValue())
95+
.tag(tag)
8496
.category(BigInteger.ZERO)
8597
.trust(trust)
8698
.apprestrict(BytesUtils.EMPTY_ADDRESS)
@@ -91,7 +103,13 @@ public WorkerpoolOrder buildSignedWorkerpoolOrder(String workerpoolAddress, BigI
91103
return (WorkerpoolOrder) signerService.signOrderForDomain(workerpoolOrder, domain);
92104
}
93105

94-
public RequestOrder buildSignedRequestOrder(AppOrder appOrder, DatasetOrder datasetOrder, WorkerpoolOrder workerpoolOrder, BigInteger trust) {
106+
public RequestOrder buildSignedRequestOrder(
107+
final AppOrder appOrder, final DatasetOrder datasetOrder, final WorkerpoolOrder workerpoolOrder, final BigInteger trust) {
108+
return buildSignedRequestOrder(appOrder, datasetOrder, workerpoolOrder, trust, OrderTag.TEE_SCONE.getValue());
109+
}
110+
111+
public RequestOrder buildSignedRequestOrder(
112+
final AppOrder appOrder, final DatasetOrder datasetOrder, final WorkerpoolOrder workerpoolOrder, final BigInteger trust, final String tag) {
95113
final TreeMap<String, String> iexecSecrets = new TreeMap<>(Map.of(
96114
"1", "first-secret",
97115
"2", "second-secret",
@@ -111,7 +129,7 @@ public RequestOrder buildSignedRequestOrder(AppOrder appOrder, DatasetOrder data
111129
.workerpoolmaxprice(workerpoolOrder.getWorkerpoolprice())
112130
.requester(signerService.getAddress())
113131
.volume(BigInteger.ONE)
114-
.tag(OrderTag.TEE_SCONE.getValue())
132+
.tag(tag)
115133
.category(BigInteger.ZERO)
116134
.trust(trust)
117135
.beneficiary(signerService.getAddress())

src/test/java/com/iexec/commons/poco/itest/Web3jTestService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public Web3jTestService(String chainNodeAddress) {
4242
}
4343

4444
public Web3jTestService(String chainNodeAddress, float gasPriceMultiplier, long gasPriceCap) {
45-
this(chainNodeAddress, gasPriceMultiplier, gasPriceCap, true);
45+
this(chainNodeAddress, gasPriceMultiplier, gasPriceCap, false);
4646
}
4747

4848
public Web3jTestService(String chainNodeAddress, float gasPriceMultiplier, long gasPriceCap, boolean isSidechain) {

0 commit comments

Comments
 (0)