package testCases.stepic;
import base.CaseConfig;
import base.TestCase;
import base.TestException;
import testCases.http.HttpHelper;
import testCases.jmx.Client;
import java.io.IOException;
/**
* @author v.chibrikov
*/
public class HW05 implements TestCase {
private static final int NEW_VALUE = 15;
public boolean test(CaseConfig cfg) {
try {
String url = "http://" + cfg.getHost() + ":" + cfg.getPort() + "/admin";
String pageBody = HttpHelper.sendGet(url).getPage();
if (!pageBody.equals("10"))
return false;
Client jmxClient = new Client("service:jmx:rmi:///jndi/rmi://:9010/jmxrmi");
String objectName = "Admin:type=AccountServerController";
String attributeName = "UsersLimit";
Object usersLimit = jmxClient.getAttribute(objectName, attributeName);
if (!usersLimit.equals(10)) {
return false;
}
jmxClient.setAttribute(objectName, attributeName, NEW_VALUE);
pageBody = HttpHelper.sendGet(url).getPage();
if (!pageBody.equals(String.valueOf(NEW_VALUE)))
return false;
usersLimit = jmxClient.getAttribute(objectName, attributeName);
return usersLimit.equals(NEW_VALUE);
} catch (IOException e) {
throw new TestException(e);
}
}
}