package ru.qatools.gridrouter.utils; import org.json.JSONObject; import org.openqa.selenium.remote.DesiredCapabilities; import ru.qatools.gridrouter.json.JsonCapabilities; import ru.qatools.gridrouter.json.JsonMessage; import ru.qatools.gridrouter.json.JsonMessageFactory; import java.io.IOException; import java.util.Map; import static org.openqa.selenium.remote.CapabilityType.BROWSER_NAME; import static org.openqa.selenium.remote.CapabilityType.PLATFORM; import static org.openqa.selenium.remote.CapabilityType.PROXY; import static org.openqa.selenium.remote.CapabilityType.VERSION; /** * @author Innokenty Shuvalov innokenty@yandex-team.ru */ public final class JsonUtils { private JsonUtils() { } public static JsonCapabilities buildJsonCapabilities(DesiredCapabilities capabilities) throws IOException { return buildJsonMessage(capabilities).getDesiredCapabilities(); } public static JsonCapabilities buildJsonCapabilities(DesiredCapabilities capabilities, String version) throws IOException { capabilities.setVersion(version); return buildJsonMessage(capabilities).getDesiredCapabilities(); } public static JsonMessage buildJsonMessage(DesiredCapabilities capabilities) throws IOException { JSONObject capabilitiesObject = new JSONObject(); Map<String, ?> capabilitiesMap = capabilities.asMap(); capabilitiesMap.keySet().forEach(k -> capabilitiesObject.put(k, capabilitiesMap.get(k))); JSONObject jsonObject = new JSONObject(); jsonObject.put("desiredCapabilities", capabilitiesObject); return JsonMessageFactory.from(jsonObject.toString()); } }