|
|
|
@ -72,6 +72,7 @@ import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Optional; |
|
|
|
import java.util.concurrent.ConcurrentLinkedDeque; |
|
|
|
import java.util.concurrent.CountDownLatch; |
|
|
|
import java.util.concurrent.ThreadLocalRandom; |
|
|
|
import java.util.concurrent.TimeUnit; |
|
|
|
@ -102,8 +103,13 @@ public class EdgeImitator { |
|
|
|
|
|
|
|
@Getter |
|
|
|
private EdgeConfiguration configuration; |
|
|
|
@Getter |
|
|
|
private final List<AbstractMessage> downlinkMsgs; |
|
|
|
private final ConcurrentLinkedDeque<AbstractMessage> downlinkMsgs; |
|
|
|
|
|
|
|
//Returns collection copy as Unmodifiable list
|
|
|
|
//This addressing the issue: DeviceEdgeTest>AbstractEdgeTest.setupEdgeTest:212->AbstractEdgeTest.verifyEdgeConnectionAndInitialData:306->AbstractEdgeTest.validateMsgsCnt:387 » ConcurrentModification
|
|
|
|
public List<AbstractMessage> getDownlinkMsgs() { |
|
|
|
return downlinkMsgs.stream().toList(); |
|
|
|
} |
|
|
|
|
|
|
|
@Getter |
|
|
|
private UplinkResponseMsg latestResponseMsg; |
|
|
|
@ -112,7 +118,7 @@ public class EdgeImitator { |
|
|
|
edgeRpcClient = new EdgeGrpcClient(); |
|
|
|
messagesLatch = new CountDownLatch(0); |
|
|
|
responsesLatch = new CountDownLatch(0); |
|
|
|
downlinkMsgs = new ArrayList<>(); |
|
|
|
downlinkMsgs = new ConcurrentLinkedDeque<>(); |
|
|
|
ignoredTypes = new ArrayList<>(); |
|
|
|
this.routingKey = routingKey; |
|
|
|
this.routingSecret = routingSecret; |
|
|
|
@ -452,7 +458,7 @@ public class EdgeImitator { |
|
|
|
} |
|
|
|
|
|
|
|
public AbstractMessage getLatestMessage() { |
|
|
|
return downlinkMsgs.get(downlinkMsgs.size() - 1); |
|
|
|
return downlinkMsgs.peekLast(); |
|
|
|
} |
|
|
|
|
|
|
|
public void ignoreType(Class<? extends AbstractMessage> type) { |
|
|
|
|