Commit 986cfe5cc16aff47ec8a5fe1d3a51a2b34a41e17

Authored by Igor Kulikov
1 parent 9e8e46f1

Improve mqtt timeseries integration tests

... ... @@ -127,7 +127,34 @@ public abstract class AbstractMqttTimeseriesIntegrationTest extends AbstractMqtt
127 127 } else {
128 128 getTelemetryValuesUrl = "/api/plugins/telemetry/DEVICE/" + deviceId + "/values/timeseries?keys=" + String.join(",", actualKeySet);
129 129 }
130   - Map<String, List<Map<String, String>>> values = doGetAsync(getTelemetryValuesUrl, Map.class);
  130 + start = System.currentTimeMillis();
  131 + end = System.currentTimeMillis() + 5000;
  132 + Map<String, List<Map<String, String>>> values = null;
  133 + while (start <= end) {
  134 + values = doGetAsync(getTelemetryValuesUrl, Map.class);
  135 + boolean valid = values.size() == expectedKeys.size();
  136 + if (valid) {
  137 + for (String key : expectedKeys) {
  138 + List<Map<String, String>> tsValues = values.get(key);
  139 + if (tsValues != null && tsValues.size() > 0) {
  140 + Object ts = tsValues.get(0).get("ts");
  141 + if (ts == null) {
  142 + valid = false;
  143 + break;
  144 + }
  145 + } else {
  146 + valid = false;
  147 + break;
  148 + }
  149 + }
  150 + }
  151 + if (valid) {
  152 + break;
  153 + }
  154 + Thread.sleep(100);
  155 + start += 100;
  156 + }
  157 + assertNotNull(values);
131 158
132 159 if (withTs) {
133 160 assertTs(values, expectedKeys, 10000, 0);
... ...