package org.zstack.test.portal;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import org.zstack.core.Platform;
import org.zstack.core.componentloader.ComponentLoader;
import org.zstack.header.managementnode.APIQueryManagementNodeMsg;
import org.zstack.header.managementnode.APIQueryManagementNodeReply;
import org.zstack.header.managementnode.ManagementNodeInventory;
import org.zstack.header.query.QueryCondition;
import org.zstack.test.*;
import org.zstack.test.search.QueryTestValidator;
import java.util.ArrayList;
import java.util.Map;
/**
*/
public class TestQueryManagementNode {
ComponentLoader loader;
Api api;
@Before
public void setUp() throws Exception {
DBUtil.reDeployDB();
BeanConstructor con = new WebBeanConstructor();
con.addXml("PortalForUnitTest.xml");
con.addXml("AccountManager.xml");
loader = con.build();
api = new Api();
api.startServer();
}
@Test
public void test() throws ApiSenderException {
ManagementNodeInventory inv = api.listManagementNodes().get(0);
Assert.assertEquals(Platform.getManagementServerIp(), inv.getHostName());
QueryTestValidator.validateEQ(new APIQueryManagementNodeMsg(), api, APIQueryManagementNodeReply.class, inv);
QueryTestValidator.validateRandomEQConjunction(new APIQueryManagementNodeMsg(), api, APIQueryManagementNodeReply.class, inv, 3);
APIQueryManagementNodeMsg msg = new APIQueryManagementNodeMsg();
msg.setConditions(new ArrayList<QueryCondition>());
APIQueryManagementNodeReply reply = api.query(msg, APIQueryManagementNodeReply.class);
Assert.assertEquals(1, reply.getInventories().size());
String version = api.getVersion();
Assert.assertNotNull(version);
System.out.println(String.format("version: %s", version));
Map<String, Long> currentTime = api.getCurrentTime();
Assert.assertNotNull(currentTime.get("MillionSeconds"));
Assert.assertNotNull(currentTime.get("Seconds"));
System.out.println(String.format("current time in million seconds: %d", currentTime.get("MillionSeconds")));
}
}