package com.mumux.androidtesting.scenario; import com.mumux.androidtesting.actions.Action; import com.mumux.androidtesting.utils.StringJoiner; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; public class Scenario { // region Private Fields public final String name; // Scenario must have a name private final List<Action> actions = new ArrayList<>(); public Scenario(String name) { this.name = name; } // endregion // region Utils public boolean isRootRequired() { for (Action action : actions) { if (action.isRootRequired()) { return true; } } return false; } // endregion // region Accessors public List<Action> getActions() { return actions; } public void addAction(Action action) { actions.add(action); } // endregion // region External Representation public String toString() { StringJoiner joiner = new StringJoiner("\n"); joiner.add("# " + name); for (Action action : actions) { joiner.add(action.toString()); } return joiner.toString(); } public JSONObject toJson() { JSONObject jsonObject = new JSONObject(); try { jsonObject.put("name", name); } catch (JSONException e) { e.printStackTrace(); } JSONArray jsonArray = new JSONArray(); for (Action action : actions) { jsonArray.put(action.toJson()); } try { jsonObject.put("actions", jsonArray); } catch (JSONException e) { e.printStackTrace(); } return jsonObject; } // endregion // region Parsing // endregion }