class Repeater attr_accessor :udid, :bundle_id, :enable_simulator_keyboard, :actions def initialize(params) validate_session(params[:session_path]) end def run params = { udid: udid, bundle_id: bundle_id, enable_simulator_keyboard: enable_simulator_keyboard, session_actions: actions } Driver.new(params).repeat_monkey_test end def validate_session(session_path) Logger.error("Provided session can't be found: #{session_path}") unless File.exist?(session_path) session = JSON.parse(File.read(session_path)) if session['params'].nil? Logger.error('Provided session is not valid: `params` should not be `nil`') return end self.actions = session['actions'] Logger.error('Provided session is not valid: `actions` should not be `nil` or `empty`') if actions.nil? || actions.empty? self.udid = session['params']['udid'] Logger.error('Provided session is not valid: `udid` should not be `nil`') if udid.nil? self.bundle_id = session['params']['bundle_id'] Logger.error('Provided session is not valid: `bundle_id` should not be `nil`') if bundle_id.nil? self.enable_simulator_keyboard = session['params']['enable_simulator_keyboard'] end end