package com.sequenceiq.cloudbreak.orchestrator.salt.states;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.io.IOUtils;
import org.junit.Test;
import com.sequenceiq.cloudbreak.orchestrator.salt.domain.RunnerInfo;
import com.sequenceiq.cloudbreak.util.JsonUtil;
public class JidInfoResponseTransformerTest {
@Test
public void testWithOrdering() throws IOException {
InputStream responseStream = JidInfoResponseTransformerTest.class.getResourceAsStream("/jid_real_response.json");
Map map = JsonUtil.readValue(IOUtils.toString(responseStream), HashMap.class);
Map<String, List<RunnerInfo>> res = JidInfoResponseTransformer.getHighStates(map);
for (String key : res.keySet()) {
int current = -1;
List<RunnerInfo> runnerInfoList = res.get(key);
for (RunnerInfo runnerInfo : runnerInfoList) {
int former = current;
current = Math.max(current, runnerInfo.getRunNum());
assertTrue("SaltStates are not properly ordered", former < current);
}
}
}
}