package org.uiautomation.ios.inspector;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import org.json.JSONObject;
import org.uiautomation.ios.IOSCapabilities;
import org.uiautomation.ios.UIAModels.Orientation;
import org.uiautomation.ios.UIAModels.Session;
import org.uiautomation.ios.inspector.model.IDESessionModel;
public class MockedModel implements IDESessionModel {
private final Session session;
private final String screenshotResource;
private final JSONObject tree;
private final JSONObject status;
private final IOSCapabilities cap;
public MockedModel(Session session, String screenshotResource, JSONObject tree,
IOSCapabilities cap, JSONObject status) {
this.session = session;
this.tree = tree;
this.screenshotResource = screenshotResource;
this.cap = cap;
this.status = status;
}
@Override
public IOSCapabilities getCapabilities() {
return cap;
}
@Override
public void refresh() {
// No op
}
@Override
public Session getSession() {
return session;
}
@Override
public InputStream getScreenshot() {
InputStream
is =
Thread.currentThread().getContextClassLoader().getResourceAsStream(screenshotResource);
if (is == null) {
try {
return new FileInputStream(screenshotResource);
} catch (FileNotFoundException e) {
return null;
}
} else {
return is;
}
}
@Override
public JSONObject getTree() {
return tree;
}
@Override
public Orientation getDeviceOrientation() {
int i = tree.optInt("deviceOrientation");
return Orientation.fromInterfaceOrientation(i);
}
@Override
public URL getEndPoint() {
try {
return new URL("http://localhost:4444/wd/hub");
} catch (MalformedURLException e) {
throw new RuntimeException("NI");
}
}
@Override
public JSONObject getStatus() {
return status;
}
}