Class: Spassky::TestSuiteResult

Inherits:
Object
  • Object
show all
Defined in:
lib/spassky/test_suite_result.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(device_statuses) ⇒ TestSuiteResult

Returns a new instance of TestSuiteResult.



9
10
11
# File 'lib/spassky/test_suite_result.rb', line 9

def initialize device_statuses
  @device_statuses = device_statuses
end

Instance Attribute Details

#device_statusesObject (readonly)

Returns the value of attribute device_statuses.



7
8
9
# File 'lib/spassky/test_suite_result.rb', line 7

def device_statuses
  @device_statuses
end

Class Method Details

.from_json(json) ⇒ Object



45
46
47
48
49
50
# File 'lib/spassky/test_suite_result.rb', line 45

def self.from_json json
  device_test_statuses = JSON.parse(json)['device_statuses'].map do |device_test_status|
    DeviceTestStatus.from_hash(device_test_status)
  end
  test_suite_result = TestSuiteResult.new(device_test_statuses)
end

Instance Method Details

#completed_since(older_test_suite_result) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/spassky/test_suite_result.rb', line 19

def completed_since(older_test_suite_result)
  if older_test_suite_result.nil?
    device_statuses.select { |s| s.completed? }
  else
    find_newly_completed_device_results(older_test_suite_result)
  end
end

#statusObject



13
14
15
16
17
# File 'lib/spassky/test_suite_result.rb', line 13

def status
  statuses = @device_statuses.map { |s| s.status }
  return "in progress" if statuses.empty?
  ["in progress", "fail", "timed out", "pass"].find {|s| statuses.include? s}
end

#summaryObject



27
28
29
# File 'lib/spassky/test_suite_result.rb', line 27

def summary
  TestSuiteResultSummariser.new(@device_statuses).summary
end

#to_jsonObject



31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/spassky/test_suite_result.rb', line 31

def to_json
  {
    :status => "pass",
    :device_statuses => @device_statuses.map do |status|
      {
        :device_id => status.device_id,
        :test_name => status.test_name,
        :status => status.status,
        :message => status.message
      }
    end
  }.to_json
end