Class: PDK::Report::Event

Inherits:
Object
  • Object
show all
Defined in:
lib/pdk/report/event.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Event

Initailises a new PDK::Report::Event object.

Parameters:

  • data (Hash{Symbol=>Object})

    ata [HashSymbol=>Object

Options Hash (data):

  • :file (String) — default: see #file
  • :line (Integer) — default: see #line
  • :column (Integer) — default: see #column
  • :source (String) — default: see #source
  • :message (String) — default: see #message
  • :severity (String) — default: see #severity
  • :test (String) — default: see #test
  • :state (Symbol) — default: see #state


51
52
53
54
55
# File 'lib/pdk/report/event.rb', line 51

def initialize(data)
  sanitise_data(data).each do |key, value|
    instance_variable_set("@#{key}", value)
  end
end

Instance Attribute Details

#columnInteger (readonly)

Returns The column number in the line of the file that the event is in reference to.

Returns:

  • (Integer)

    The column number in the line of the file that the event is in reference to.



17
18
19
# File 'lib/pdk/report/event.rb', line 17

def column
  @column
end

#fileString (readonly)

Returns The path to the file that the event is in reference to.

Returns:

  • (String)

    The path to the file that the event is in reference to.



9
10
11
# File 'lib/pdk/report/event.rb', line 9

def file
  @file
end

#lineInteger (readonly)

Returns The line number in the file that the event is in reference to.

Returns:

  • (Integer)

    The line number in the file that the event is in reference to.



13
14
15
# File 'lib/pdk/report/event.rb', line 13

def line
  @line
end

#messageString (readonly)

Returns A freeform String containing a human readable message describing the event.

Returns:

  • (String)

    A freeform String containing a human readable message describing the event.



25
26
27
# File 'lib/pdk/report/event.rb', line 25

def message
  @message
end

#severityString (readonly)

Returns The severity of the event as reported by the underlying tool.

Returns:

  • (String)

    The severity of the event as reported by the underlying tool.



29
30
31
# File 'lib/pdk/report/event.rb', line 29

def severity
  @severity
end

#sourceString (readonly)

Returns The name of the source of the event (usually the name of the validation or testing tool that generated the event).

Returns:

  • (String)

    The name of the source of the event (usually the name of the validation or testing tool that generated the event).



21
22
23
# File 'lib/pdk/report/event.rb', line 21

def source
  @source
end

#stateSymbol (readonly)

Returns The state of the event. :passed, :failure, :error, or :skipped.

Returns:

  • (Symbol)

    The state of the event. :passed, :failure, :error, or :skipped.



36
37
38
# File 'lib/pdk/report/event.rb', line 36

def state
  @state
end

#testString (readonly)

Returns The name of the test that generated the event.

Returns:

  • (String)

    The name of the test that generated the event.



32
33
34
# File 'lib/pdk/report/event.rb', line 32

def test
  @test
end

Instance Method Details

#error?Boolean

Checks if the event is the result of a test that could not complete due to an error.

Returns:

  • (Boolean)

    true if the test did not complete, otherwise false.



68
69
70
# File 'lib/pdk/report/event.rb', line 68

def error?
  state == :error
end

#failure?Boolean

Checks if the event is the result of a failing test.

Returns:

  • (Boolean)

    true if the test failed, otherwise false.



75
76
77
# File 'lib/pdk/report/event.rb', line 75

def failure?
  state == :failure
end

#pass?Boolean

Checks if the event is the result of a passing test.

Returns:

  • (Boolean)

    true if the test passed, otherwise false.



60
61
62
# File 'lib/pdk/report/event.rb', line 60

def pass?
  state == :passed
end

#skipped?Boolean

Checks if the event is the result of test that was not run.

Returns:

  • (Boolean)

    true if the test was skipped, otherwise false.



82
83
84
# File 'lib/pdk/report/event.rb', line 82

def skipped?
  state == :skipped
end

#to_junitREXML::Element

Renders the event as a JUnit XML testcase.

Returns:

  • (REXML::Element)

    The rendered event.



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/pdk/report/event.rb', line 98

def to_junit
  testcase = REXML::Element.new('testcase')
  testcase.attributes['classname'] = [source, test].compact.join('.')
  testcase.attributes['name'] = [file, line, column].compact.join(':')
  testcase.attributes['time'] = 0

  if failure?
    failure = REXML::Element.new('failure')
    failure.attributes['type'] = severity
    failure.attributes['message'] = message
    failure.text = to_text
    testcase.elements << failure
  elsif skipped?
    testcase.add_element('skipped')
  end

  testcase
end

#to_textString

Renders the event in a clang style text format.

Returns:

  • (String)

    The rendered event.



89
90
91
92
93
# File 'lib/pdk/report/event.rb', line 89

def to_text
  location = [file, line, column].compact.join(':')

  [location, severity, message].compact.join(': ')
end