Skip to content

Commit c0f3ac1

Browse files
authored
Execute TaskUpdateManager tests on a running MongoDB container (#682)
1 parent 66c946b commit c0f3ac1

File tree

6 files changed

+335
-347
lines changed

6 files changed

+335
-347
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ All notable changes to this project will be documented in this file.
2020
- Add logs for better traceability. (#675)
2121
- Remove code only used in tests from `TaskService` and `Task`. (#678 #679)
2222
- Implement each task status transition in a single method. (#680)
23+
- Execute `TaskUpdateManager` tests on a running MongoDB container. (#682)
2324

2425
## [[8.4.0]](https://github.com/iExecBlockchainComputing/iexec-core/releases/tag/v8.4.0) 2024-02-29
2526

src/main/java/com/iexec/core/replicate/Replicate.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2020-2023 IEXEC BLOCKCHAIN TECH
2+
* Copyright 2020-2024 IEXEC BLOCKCHAIN TECH
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -34,7 +34,6 @@
3434
import static com.iexec.common.replicate.ReplicateStatus.WORKER_LOST;
3535
import static com.iexec.common.replicate.ReplicateStatusUpdate.poolManagerRequest;
3636

37-
3837
@Data
3938
@NoArgsConstructor
4039
@JsonIgnoreProperties(ignoreUnknown = true)
@@ -85,11 +84,6 @@ public ReplicateStatus getLastRelevantStatus() {
8584
throw new NoReplicateStatusException(chainTaskId);
8685
}
8786

88-
@JsonIgnore
89-
public ReplicateStatus getLastButOneStatus() {
90-
return statusUpdateList.get(statusUpdateList.size() - 2).getStatus();
91-
}
92-
9387
@JsonIgnore
9488
private ReplicateStatusUpdate getLatestStatusUpdate() {
9589
return statusUpdateList.get(statusUpdateList.size() - 1);

src/main/java/com/iexec/core/task/Task.java

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@
3131
import java.util.ArrayList;
3232
import java.util.Date;
3333
import java.util.List;
34-
import java.util.Optional;
3534

36-
import static com.iexec.core.task.TaskStatus.CONSENSUS_REACHED;
3735
import static com.iexec.core.task.TaskStatus.RECEIVED;
3836

3937
@Document
@@ -126,31 +124,6 @@ public TaskStatusChange getLatestStatusChange() {
126124
return this.getDateStatusList().get(this.getDateStatusList().size() - 1);
127125
}
128126

129-
@JsonIgnore
130-
public TaskStatus getLastButOneStatus() {
131-
return this.getDateStatusList().get(this.getDateStatusList().size() - 2).getStatus();
132-
}
133-
134-
public boolean isConsensusReachedSinceMultiplePeriods(int nbOfPeriods) {
135-
Optional<Date> consensusReachedDate = this.getDateOfStatus(CONSENSUS_REACHED);
136-
if (consensusReachedDate.isEmpty()) {
137-
return false;
138-
}
139-
Date onePeriodAfterConsensusReachedDate = new Date(consensusReachedDate.get().getTime() + nbOfPeriods * this.maxExecutionTime);
140-
Date now = new Date();
141-
142-
return now.after(onePeriodAfterConsensusReachedDate);
143-
}
144-
145-
public Optional<Date> getDateOfStatus(TaskStatus taskStatus) {
146-
for (TaskStatusChange taskStatusChange : this.dateStatusList) {
147-
if (taskStatusChange.getStatus().equals(taskStatus)) {
148-
return Optional.of(taskStatusChange.getDate());
149-
}
150-
}
151-
return Optional.empty();
152-
}
153-
154127
public boolean isContributionDeadlineReached() {
155128
return new Date().after(contributionDeadline);
156129
}

src/main/java/com/iexec/core/task/update/TaskUpdateManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,6 +546,9 @@ void reopening2Reopened(Task task, ChainReceipt chainReceipt) {
546546

547547
task.setConsensus(null);
548548
task.setRevealDeadline(new Date(0));
549+
taskService.updateTask(task.getChainTaskId(), task.getCurrentStatus(),
550+
Update.update("consensus", null)
551+
.set("revealDeadline", new Date(0)));
549552

550553
updateTaskStatusAndSave(task, REOPENED, chainReceipt);
551554
updateTaskStatusAndSave(task, INITIALIZED, chainReceipt);

src/test/java/com/iexec/core/task/TaskTests.java

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@
2121
import java.time.Instant;
2222
import java.time.temporal.ChronoUnit;
2323
import java.util.Date;
24-
import java.util.List;
2524

26-
import static com.iexec.core.task.TaskStatus.CONSENSUS_REACHED;
2725
import static com.iexec.core.task.TaskTestsUtils.COMMAND_LINE;
2826
import static com.iexec.core.task.TaskTestsUtils.DAPP_NAME;
2927
import static org.assertj.core.api.Assertions.assertThat;
@@ -38,34 +36,6 @@ void shouldInitializeProperly() {
3836
assertThat(task.getDateStatusList().get(0).getStatus()).isEqualTo(TaskStatus.RECEIVED);
3937
}
4038

41-
@Test
42-
void shouldReturnTrueWhenConsensusReachedSinceAWhile() {
43-
final long maxExecutionTime = 60;
44-
Task task = new Task();
45-
task.setMaxExecutionTime(maxExecutionTime);
46-
TaskStatusChange taskStatusChange = TaskStatusChange.builder()
47-
.status(CONSENSUS_REACHED)
48-
.date(Date.from(Instant.now().minus(2 * maxExecutionTime, ChronoUnit.MILLIS)))
49-
.build();
50-
task.setDateStatusList(List.of(taskStatusChange));
51-
52-
assertThat(task.isConsensusReachedSinceMultiplePeriods(1)).isTrue();
53-
}
54-
55-
@Test
56-
void shouldReturnFalseWhenConsensusReachedSinceNotLong() {
57-
final long maxExecutionTime = 60;
58-
Task task = new Task();
59-
task.setMaxExecutionTime(maxExecutionTime);
60-
TaskStatusChange taskStatusChange = TaskStatusChange.builder()
61-
.status(CONSENSUS_REACHED)
62-
.date(Date.from(Instant.now().minus(10L, ChronoUnit.MILLIS)))
63-
.build();
64-
task.setDateStatusList(List.of(taskStatusChange));
65-
66-
assertThat(task.isConsensusReachedSinceMultiplePeriods(1)).isFalse();
67-
}
68-
6939
@Test
7040
void shouldContributionDeadlineBeReached() {
7141
Task task = new Task();

0 commit comments

Comments
 (0)