diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1213d67d..4e58b58b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,7 @@ All notable changes to this project will be documented in this file.
- Add and use a non-root user in the dockerfile. (#113)
- Reindent `build.gradle` file. (#114)
- Standardisation of the dockerfile and its location in regard to other java components. (#115)
+- Rename `Status` to `CommandStatus` in library. (#117)
### Dependency Upgrades
diff --git a/iexec-blockchain-adapter-api-library/build.gradle b/iexec-blockchain-adapter-api-library/build.gradle
index 6cf8c952..aebf8986 100644
--- a/iexec-blockchain-adapter-api-library/build.gradle
+++ b/iexec-blockchain-adapter-api-library/build.gradle
@@ -8,7 +8,9 @@ plugins {
dependencies {
implementation "com.iexec.commons:iexec-commons-poco:$iexecCommonsPocoVersion"
implementation "com.iexec.common:iexec-common:$iexecCommonVersion"
+ implementation 'org.apache.commons:commons-lang3:3.12.0'
testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'
+ testImplementation 'org.mockito:mockito-junit-jupiter:4.5.1'
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
@@ -43,7 +45,7 @@ publishing {
username nexusUser
password nexusPassword
}
- url = project.hasProperty("nexusUrl")? project.nexusUrl: ''
+ url = project.hasProperty("nexusUrl") ? project.nexusUrl : ''
}
}
}
diff --git a/iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/api/BlockchainAdapterApiClient.java b/iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/api/BlockchainAdapterApiClient.java
index 093c6cb4..11be2e82 100644
--- a/iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/api/BlockchainAdapterApiClient.java
+++ b/iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/api/BlockchainAdapterApiClient.java
@@ -16,7 +16,6 @@
package com.iexec.blockchain.api;
-import com.iexec.common.chain.adapter.CommandStatus;
import com.iexec.common.chain.adapter.args.TaskFinalizeArgs;
import com.iexec.common.config.PublicChainConfig;
import com.iexec.common.sdk.broker.BrokerOrder;
@@ -30,6 +29,7 @@
* To create the client, call:
*
FeignBuilder.createBuilder(feignLogLevel)
* .target(BlockchainAdapterApiClient.class, blockchainAdapterUrl)
+ *
* @see com.iexec.common.utils.FeignBuilder
*/
public interface BlockchainAdapterApiClient {
diff --git a/iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/api/BlockchainAdapterService.java b/iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/api/BlockchainAdapterService.java
new file mode 100644
index 00000000..ccd99eb2
--- /dev/null
+++ b/iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/api/BlockchainAdapterService.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2021-2023 IEXEC BLOCKCHAIN TECH
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.iexec.blockchain.api;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.function.Function;
+
+@Slf4j
+public class BlockchainAdapterService {
+ /**
+ * Verify if a command sent to the adapter is completed on-chain.
+ *
+ * @param getCommandStatusFunction method for fetching the current command status from the adapter
+ * @param chainTaskId ID of the task
+ * @param period period in ms between consecutive checks
+ * @param maxAttempts maximum number of attempts
+ * @return true if the tx is mined, false if reverted or empty for other cases.
+ * (too long since still RECEIVED or PROCESSING, adapter error)
+ */
+ boolean isCommandCompleted(
+ Function getCommandStatusFunction,
+ String chainTaskId, long period, int maxAttempts) {
+ for (int attempt = 0; attempt < maxAttempts; attempt++) {
+ try {
+ CommandStatus status = getCommandStatusFunction.apply(chainTaskId);
+ if (CommandStatus.SUCCESS == status || CommandStatus.FAILURE == status) {
+ return CommandStatus.SUCCESS == status;
+ }
+ // RECEIVED, PROCESSING
+ log.warn("Waiting command completion [chainTaskId:{}, status:{}, period:{}ms, attempt:{}, maxAttempts:{}]",
+ chainTaskId, status, period, attempt, maxAttempts);
+ } catch (Exception e) {
+ log.error("Unexpected error while waiting command completion [chainTaskId:{}, period:{}ms, attempt:{}, maxAttempts:{}]",
+ chainTaskId, period, attempt, maxAttempts, e);
+ }
+
+ try {
+ Thread.sleep(period);
+ } catch (InterruptedException e) {
+ log.error("Polling on blockchain command was interrupted", e);
+ Thread.currentThread().interrupt();
+ return false;
+ }
+ }
+ log.error("Reached max retry while waiting command completion [chainTaskId:{}, maxAttempts:{}]",
+ chainTaskId, maxAttempts);
+ return false;
+ }
+}
diff --git a/iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/tool/Status.java b/iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/api/CommandStatus.java
similarity index 85%
rename from iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/tool/Status.java
rename to iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/api/CommandStatus.java
index 3449cf61..1fb276ff 100644
--- a/iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/tool/Status.java
+++ b/iexec-blockchain-adapter-api-library/src/main/java/com/iexec/blockchain/api/CommandStatus.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2022 IEXEC BLOCKCHAIN TECH
+ * Copyright 2022-2023 IEXEC BLOCKCHAIN TECH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.iexec.blockchain.tool;
+package com.iexec.blockchain.api;
-public enum Status {
+public enum CommandStatus {
RECEIVED,
PROCESSING,
SUCCESS,
diff --git a/iexec-blockchain-adapter-api-library/src/test/java/com/iexec/blockchain/api/BlockchainAdapterServiceTests.java b/iexec-blockchain-adapter-api-library/src/test/java/com/iexec/blockchain/api/BlockchainAdapterServiceTests.java
new file mode 100644
index 00000000..23369055
--- /dev/null
+++ b/iexec-blockchain-adapter-api-library/src/test/java/com/iexec/blockchain/api/BlockchainAdapterServiceTests.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2021-2023 IEXEC BLOCKCHAIN TECH
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.iexec.blockchain.api;
+
+import feign.FeignException;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.concurrent.CancellationException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.Mockito.when;
+
+class BlockchainAdapterServiceTests {
+
+ static final String CHAIN_TASK_ID = "CHAIN_TASK_ID";
+ static final int PERIOD = 10;
+ static final int MAX_ATTEMPTS = 3;
+
+ @Mock
+ private BlockchainAdapterApiClient blockchainAdapterClient;
+ @InjectMocks
+ private BlockchainAdapterService blockchainAdapterService;
+
+ @BeforeEach
+ void init() {
+ MockitoAnnotations.openMocks(this);
+ }
+
+ // region isCommandCompleted
+ @Test
+ void isCommandCompletedTrueWhenSuccess() {
+ when(blockchainAdapterClient.getStatusForInitializeTaskRequest(CHAIN_TASK_ID))
+ .thenReturn(CommandStatus.RECEIVED)
+ .thenReturn(CommandStatus.PROCESSING)
+ .thenReturn(CommandStatus.SUCCESS);
+
+ boolean commandCompleted = blockchainAdapterService.isCommandCompleted(
+ blockchainAdapterClient::getStatusForInitializeTaskRequest, CHAIN_TASK_ID, PERIOD, MAX_ATTEMPTS);
+ assertTrue(commandCompleted);
+ }
+
+ @Test
+ void isCommandCompletedFalseWhenFailure() {
+ when(blockchainAdapterClient.getStatusForInitializeTaskRequest(CHAIN_TASK_ID))
+ .thenReturn(CommandStatus.RECEIVED)
+ .thenReturn(CommandStatus.PROCESSING)
+ .thenReturn(CommandStatus.FAILURE);
+
+ boolean commandCompleted = blockchainAdapterService.isCommandCompleted(
+ blockchainAdapterClient::getStatusForInitializeTaskRequest, CHAIN_TASK_ID, PERIOD, MAX_ATTEMPTS);
+ assertFalse(commandCompleted);
+ }
+
+ @Test
+ void isCommandCompletedFalseWhenMaxAttempts() {
+ when(blockchainAdapterClient.getStatusForInitializeTaskRequest(CHAIN_TASK_ID))
+ .thenReturn(CommandStatus.PROCESSING);
+ boolean commandCompleted = blockchainAdapterService.isCommandCompleted(
+ blockchainAdapterClient::getStatusForInitializeTaskRequest, CHAIN_TASK_ID, PERIOD, MAX_ATTEMPTS);
+ assertFalse(commandCompleted);
+ }
+
+ @Test
+ void isCommandCompletedFalseWhenFeignException() {
+ when(blockchainAdapterClient.getStatusForFinalizeTaskRequest(CHAIN_TASK_ID))
+ .thenThrow(FeignException.class);
+ boolean commandCompleted = blockchainAdapterService.isCommandCompleted(
+ blockchainAdapterClient::getStatusForFinalizeTaskRequest, CHAIN_TASK_ID, PERIOD, MAX_ATTEMPTS);
+ assertFalse(commandCompleted);
+ }
+
+ @Test
+ void isCommandCompletedFalseWhenInterrupted() throws InterruptedException {
+ when(blockchainAdapterClient.getStatusForFinalizeTaskRequest(CHAIN_TASK_ID))
+ .thenReturn(CommandStatus.PROCESSING);
+ ExecutorService service = Executors.newSingleThreadExecutor();
+ Future> future = service.submit(() ->
+ blockchainAdapterService.isCommandCompleted(blockchainAdapterClient::getStatusForFinalizeTaskRequest,
+ CHAIN_TASK_ID, 5000L, MAX_ATTEMPTS));
+ Thread.sleep(1000L);
+ future.cancel(true);
+ assertThrows(CancellationException.class, future::get);
+ }
+ // endregion
+}
diff --git a/src/main/java/com/iexec/blockchain/command/generic/Command.java b/src/main/java/com/iexec/blockchain/command/generic/Command.java
index 8438f920..c968516f 100644
--- a/src/main/java/com/iexec/blockchain/command/generic/Command.java
+++ b/src/main/java/com/iexec/blockchain/command/generic/Command.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2020 IEXEC BLOCKCHAIN TECH
+ * Copyright 2020-2023 IEXEC BLOCKCHAIN TECH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
package com.iexec.blockchain.command.generic;
-import com.iexec.blockchain.tool.Status;
+import com.iexec.blockchain.api.CommandStatus;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -52,7 +52,7 @@ public abstract class Command {
@Version
private Long version;
- private Status status;
+ private CommandStatus status;
private Instant creationDate;
private Instant processingDate;
private Instant finalDate;
diff --git a/src/main/java/com/iexec/blockchain/command/generic/CommandEngine.java b/src/main/java/com/iexec/blockchain/command/generic/CommandEngine.java
index 2ee13656..d95f2965 100644
--- a/src/main/java/com/iexec/blockchain/command/generic/CommandEngine.java
+++ b/src/main/java/com/iexec/blockchain/command/generic/CommandEngine.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2020 IEXEC BLOCKCHAIN TECH
+ * Copyright 2020-2023 IEXEC BLOCKCHAIN TECH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
package com.iexec.blockchain.command.generic;
+import com.iexec.blockchain.api.CommandStatus;
import com.iexec.blockchain.tool.QueueService;
-import com.iexec.blockchain.tool.Status;
import lombok.extern.slf4j.Slf4j;
import org.web3j.protocol.core.methods.response.TransactionReceipt;
@@ -116,7 +116,7 @@ public void triggerBlockchainCommand(A args) {
* @param chainObjectId blockchain object ID
* @return status
*/
- public Optional getStatusForCommand(String chainObjectId) {
+ public Optional getStatusForCommand(String chainObjectId) {
return updaterService.getStatusForCommand(chainObjectId);
}
diff --git a/src/main/java/com/iexec/blockchain/command/generic/CommandStorage.java b/src/main/java/com/iexec/blockchain/command/generic/CommandStorage.java
index bcec2ee2..f6efaffe 100644
--- a/src/main/java/com/iexec/blockchain/command/generic/CommandStorage.java
+++ b/src/main/java/com/iexec/blockchain/command/generic/CommandStorage.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2020 IEXEC BLOCKCHAIN TECH
+ * Copyright 2020-2023 IEXEC BLOCKCHAIN TECH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,7 @@
package com.iexec.blockchain.command.generic;
-
-import com.iexec.blockchain.tool.Status;
+import com.iexec.blockchain.api.CommandStatus;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -51,7 +50,7 @@ public boolean updateToReceived(A args) {
}
C command = this.newCommandInstance();
- command.setStatus(Status.RECEIVED);
+ command.setStatus(CommandStatus.RECEIVED);
command.setChainObjectId(chainObjectId);
command.setArgs(args);
command.setCreationDate(Instant.now());
@@ -71,12 +70,12 @@ public boolean updateToProcessing(String chainObjectId) {
Optional localCommand = commandRepository
.findByChainObjectId(chainObjectId)
.filter(command -> command.getStatus() != null)
- .filter(command -> command.getStatus() == Status.RECEIVED);
+ .filter(command -> command.getStatus() == CommandStatus.RECEIVED);
if (localCommand.isEmpty()) {
return false;
}
C command = localCommand.get();
- command.setStatus(Status.PROCESSING);
+ command.setStatus(CommandStatus.PROCESSING);
command.setProcessingDate(Instant.now());
commandRepository.save(command);
return true;
@@ -95,23 +94,23 @@ public void updateToFinal(String chainObjectId,
Optional localCommand = commandRepository
.findByChainObjectId(chainObjectId)
.filter(command -> command.getStatus() != null)
- .filter(command -> command.getStatus() == Status.PROCESSING);
+ .filter(command -> command.getStatus() == CommandStatus.PROCESSING);
if (localCommand.isEmpty()) {
return;
}
C command = localCommand.get();
- Status status;
+ CommandStatus status;
if (StringUtils.isNotEmpty(receipt.getStatus())
&& receipt.getStatus().equals("0x1")) {
- status = Status.SUCCESS;
+ status = CommandStatus.SUCCESS;
log.info("Success command with transaction receipt " +
"[chainObjectId:{}, command:{}, receipt:{}]",
chainObjectId,
command.getClass().getSimpleName(),
receipt);
} else {
- status = Status.FAILURE;
+ status = CommandStatus.FAILURE;
log.info("Failure after transaction sent [chainObjectId:{}, " +
"command:{}, receipt:{}]", chainObjectId,
command.getClass().getSimpleName(), receipt);
@@ -128,7 +127,7 @@ public void updateToFinal(String chainObjectId,
* @param chainObjectId blockchain object ID on which the blockchain command
* is performed
*/
- public Optional getStatusForCommand(String chainObjectId) {
+ public Optional getStatusForCommand(String chainObjectId) {
return commandRepository.findByChainObjectId(chainObjectId)
.map(Command::getStatus);
}
diff --git a/src/main/java/com/iexec/blockchain/command/task/TaskController.java b/src/main/java/com/iexec/blockchain/command/task/TaskController.java
index 24e16372..75ae4146 100644
--- a/src/main/java/com/iexec/blockchain/command/task/TaskController.java
+++ b/src/main/java/com/iexec/blockchain/command/task/TaskController.java
@@ -16,15 +16,11 @@
package com.iexec.blockchain.command.task;
-import com.iexec.blockchain.command.task.contribute.TaskContributeService;
+import com.iexec.blockchain.api.CommandStatus;
import com.iexec.blockchain.command.task.finalize.TaskFinalizeService;
import com.iexec.blockchain.command.task.initialize.TaskInitializeService;
-import com.iexec.blockchain.command.task.reveal.TaskRevealService;
import com.iexec.blockchain.tool.IexecHubService;
-import com.iexec.blockchain.tool.Status;
-import com.iexec.common.chain.adapter.args.TaskContributeArgs;
import com.iexec.common.chain.adapter.args.TaskFinalizeArgs;
-import com.iexec.common.chain.adapter.args.TaskRevealArgs;
import com.iexec.commons.poco.chain.ChainTask;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -39,19 +35,13 @@ public class TaskController {
private final IexecHubService iexecHubService;
private final TaskInitializeService taskInitializeService;
- private final TaskContributeService taskContributeService;
- private final TaskRevealService taskRevealService;
private final TaskFinalizeService taskFinalizeService;
public TaskController(IexecHubService iexecHubService,
TaskInitializeService taskInitializeService,
- TaskContributeService taskContributeService,
- TaskRevealService taskRevealService,
TaskFinalizeService taskFinalizeService) {
this.iexecHubService = iexecHubService;
this.taskInitializeService = taskInitializeService;
- this.taskContributeService = taskContributeService;
- this.taskRevealService = taskRevealService;
this.taskFinalizeService = taskFinalizeService;
}
@@ -98,7 +88,7 @@ public ResponseEntity requestInitializeTask(
*/
@Operation(security = @SecurityRequirement(name = SWAGGER_BASIC_AUTH))
@GetMapping("/initialize/{chainTaskId}/status")
- public ResponseEntity getStatusForInitializeTaskRequest(
+ public ResponseEntity getStatusForInitializeTaskRequest(
@PathVariable String chainTaskId) {
return taskInitializeService.getStatusForCommand(chainTaskId)
.map(ResponseEntity::ok)
@@ -131,7 +121,7 @@ public ResponseEntity requestFinalizeTask(
*/
@Operation(security = @SecurityRequirement(name = SWAGGER_BASIC_AUTH))
@GetMapping("/finalize/{chainTaskId}/status")
- public ResponseEntity getStatusForFinalizeTaskRequest(
+ public ResponseEntity getStatusForFinalizeTaskRequest(
@PathVariable String chainTaskId) {
return taskFinalizeService.getStatusForCommand(chainTaskId)
.map(ResponseEntity::ok)
diff --git a/src/test/java/com/iexec/blockchain/command/task/initialize/TaskInitializeStorageTest.java b/src/test/java/com/iexec/blockchain/command/task/initialize/TaskInitializeStorageTest.java
index 5c01b854..6f9fc833 100644
--- a/src/test/java/com/iexec/blockchain/command/task/initialize/TaskInitializeStorageTest.java
+++ b/src/test/java/com/iexec/blockchain/command/task/initialize/TaskInitializeStorageTest.java
@@ -16,7 +16,7 @@
package com.iexec.blockchain.command.task.initialize;
-import com.iexec.blockchain.tool.Status;
+import com.iexec.blockchain.api.CommandStatus;
import com.iexec.commons.poco.chain.ChainUtils;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
@@ -63,7 +63,7 @@ void shouldSetReceived() {
verify(repository, times(1))
.save(taskInitializeCaptor.capture());
TaskInitialize initializeCaptorValue = taskInitializeCaptor.getValue();
- Assertions.assertEquals(Status.RECEIVED, initializeCaptorValue.getStatus());
+ Assertions.assertEquals(CommandStatus.RECEIVED, initializeCaptorValue.getStatus());
Assertions.assertEquals(CHAIN_TASK_ID, initializeCaptorValue.getChainObjectId());
Assertions.assertEquals(args, initializeCaptorValue.getArgs());
Assertions.assertNotNull(initializeCaptorValue.getCreationDate());
@@ -85,7 +85,7 @@ void shouldNotSetReceivedSinceAlreadyPresent() {
@Test
void shouldSetProcessing() {
TaskInitialize taskInitialize = new TaskInitialize();
- taskInitialize.setStatus(Status.RECEIVED);
+ taskInitialize.setStatus(CommandStatus.RECEIVED);
when(repository.findByChainObjectId(CHAIN_TASK_ID))
.thenReturn(Optional.of(taskInitialize));
@@ -97,14 +97,14 @@ void shouldSetProcessing() {
verify(repository, times(1))
.save(taskInitializeCaptor.capture());
TaskInitialize initializeCaptorValue = taskInitializeCaptor.getValue();
- Assertions.assertEquals(Status.PROCESSING, initializeCaptorValue.getStatus());
+ Assertions.assertEquals(CommandStatus.PROCESSING, initializeCaptorValue.getStatus());
Assertions.assertNotNull(initializeCaptorValue.getProcessingDate());
}
@Test
void shouldNotSetProcessingSinceBadStatus() {
TaskInitialize taskInitialize = new TaskInitialize();
- taskInitialize.setStatus(Status.PROCESSING);
+ taskInitialize.setStatus(CommandStatus.PROCESSING);
when(repository.findByChainObjectId(CHAIN_TASK_ID))
.thenReturn(Optional.of(taskInitialize));
@@ -119,7 +119,7 @@ void shouldSetFinalSuccess() {
TransactionReceipt receipt = mock(TransactionReceipt.class);
when(receipt.getStatus()).thenReturn("0x1");
TaskInitialize taskInitialize = new TaskInitialize();
- taskInitialize.setStatus(Status.PROCESSING);
+ taskInitialize.setStatus(CommandStatus.PROCESSING);
when(repository.findByChainObjectId(CHAIN_TASK_ID))
.thenReturn(Optional.of(taskInitialize));
@@ -130,7 +130,7 @@ void shouldSetFinalSuccess() {
verify(repository, times(1))
.save(taskInitializeCaptor.capture());
TaskInitialize initializeCaptorValue = taskInitializeCaptor.getValue();
- Assertions.assertEquals(Status.SUCCESS, initializeCaptorValue.getStatus());
+ Assertions.assertEquals(CommandStatus.SUCCESS, initializeCaptorValue.getStatus());
Assertions.assertEquals(receipt, initializeCaptorValue.getTransactionReceipt());
Assertions.assertNotNull(initializeCaptorValue.getFinalDate());
}
@@ -140,7 +140,7 @@ void shouldSetFinalFailure() {
TransactionReceipt receipt = mock(TransactionReceipt.class);
when(receipt.getStatus()).thenReturn("0x0");
TaskInitialize taskInitialize = new TaskInitialize();
- taskInitialize.setStatus(Status.PROCESSING);
+ taskInitialize.setStatus(CommandStatus.PROCESSING);
when(repository.findByChainObjectId(CHAIN_TASK_ID))
.thenReturn(Optional.of(taskInitialize));
@@ -151,7 +151,7 @@ void shouldSetFinalFailure() {
verify(repository, times(1))
.save(taskInitializeCaptor.capture());
TaskInitialize initializeCaptorValue = taskInitializeCaptor.getValue();
- Assertions.assertEquals(Status.FAILURE, initializeCaptorValue.getStatus());
+ Assertions.assertEquals(CommandStatus.FAILURE, initializeCaptorValue.getStatus());
Assertions.assertEquals(receipt, initializeCaptorValue.getTransactionReceipt());
Assertions.assertNotNull(initializeCaptorValue.getFinalDate());
}
@@ -160,7 +160,7 @@ void shouldSetFinalFailure() {
void shouldNotSetFinalSinceBadStatus() {
TransactionReceipt receipt = mock(TransactionReceipt.class);
TaskInitialize taskInitialize = new TaskInitialize();
- taskInitialize.setStatus(Status.RECEIVED);
+ taskInitialize.setStatus(CommandStatus.RECEIVED);
when(repository.findByChainObjectId(CHAIN_TASK_ID))
.thenReturn(Optional.of(taskInitialize));
diff --git a/src/test/java/com/iexec/blockchain/command/task/initialize/TaskInitializeTest.java b/src/test/java/com/iexec/blockchain/command/task/initialize/TaskInitializeTest.java
index ffc5d626..052e6bc6 100644
--- a/src/test/java/com/iexec/blockchain/command/task/initialize/TaskInitializeTest.java
+++ b/src/test/java/com/iexec/blockchain/command/task/initialize/TaskInitializeTest.java
@@ -16,8 +16,8 @@
package com.iexec.blockchain.command.task.initialize;
+import com.iexec.blockchain.api.CommandStatus;
import com.iexec.blockchain.tool.QueueService;
-import com.iexec.blockchain.tool.Status;
import com.iexec.commons.poco.chain.ChainUtils;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
@@ -130,11 +130,11 @@ void shouldNotTriggerInitializeTaskSinceReceiptIsNull() throws Exception {
@Test
void shouldGetStatusForInitializeTaskRequest() {
TaskInitialize taskInitialize = mock(TaskInitialize.class);
- when(taskInitialize.getStatus()).thenReturn(Status.PROCESSING);
+ when(taskInitialize.getStatus()).thenReturn(CommandStatus.PROCESSING);
when(updaterService.getStatusForCommand(CHAIN_TASK_ID))
- .thenReturn(Optional.of(Status.PROCESSING));
+ .thenReturn(Optional.of(CommandStatus.PROCESSING));
- Assertions.assertEquals(Optional.of(Status.PROCESSING),
+ Assertions.assertEquals(Optional.of(CommandStatus.PROCESSING),
taskInitializeService.getStatusForCommand(CHAIN_TASK_ID));
}