Class: Assert::Result::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/assert/result.rb,
lib/assert/result.rb

Direct Known Subclasses

Error, Fail, Ignore, Pass, Skip

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(build_data) ⇒ Base

Returns a new instance of Base.



44
45
46
47
# File 'lib/assert/result.rb', line 44

def initialize(build_data)
  @build_data = build_data
  @with_bt    = nil
end

Class Method Details

.for_test(test, message, bt) ⇒ Object



34
35
36
37
38
39
40
41
42
# File 'lib/assert/result.rb', line 34

def self.for_test(test, message, bt)
  self.new({
    :test_name      => test.name,
    :test_file_line => test.file_line,
    :message        => message,
    :output         => test.output,
    :backtrace      => Backtrace.new(bt)
  })
end

.nameObject



32
# File 'lib/assert/result.rb', line 32

def self.name; "";       end

.typeObject



31
# File 'lib/assert/result.rb', line 31

def self.type; :unknown; end

Instance Method Details

#==(other_result) ⇒ Object



134
135
136
137
138
139
140
# File 'lib/assert/result.rb', line 134

def ==(other_result)
  if other_result.is_a?(self.class)
    self.type == other_result.type && self.message == other_result.message
  else
    super
  end
end

#backtraceObject



80
81
82
# File 'lib/assert/result.rb', line 80

def backtrace
  @backtrace ||= (@build_data[:backtrace] || Backtrace.new([]))
end

#file_lineObject



114
115
116
# File 'lib/assert/result.rb', line 114

def file_line
  @file_line ||= Assert::FileLine.parse(self.src_line)
end

#file_nameObject



118
# File 'lib/assert/result.rb', line 118

def file_name; self.file_line.file;      end

#inspectObject



142
143
144
145
146
147
# File 'lib/assert/result.rb', line 142

def inspect
  "#<#{self.class}:#{"0x0%x" % (object_id << 1)} "\
  "@message=#{self.message.inspect} "\
  "@file_line=#{self.file_line.to_s.inspect} "\
  "@test_file_line=#{self.test_file_line.to_s.inspect}>"
end

#line_numObject



119
# File 'lib/assert/result.rb', line 119

def line_num;  self.file_line.line.to_i; end

#messageObject



72
73
74
# File 'lib/assert/result.rb', line 72

def message
  @message ||= (@build_data[:message] || "")
end

#nameObject



53
54
55
# File 'lib/assert/result.rb', line 53

def name
  @name ||= (@build_data[:name] || self.class.name.to_s)
end

#outputObject



76
77
78
# File 'lib/assert/result.rb', line 76

def output
  @output ||= (@build_data[:output] || "")
end

#set_backtrace(bt) ⇒ Object

we choose to implement this way instead of using an ‘attr_writer` to be consistant with how you override exception backtraces.



90
91
92
93
94
95
# File 'lib/assert/result.rb', line 90

def set_backtrace(bt)
  @backtrace = Backtrace.new(bt)
  @src_line  = nil
  @file_line = nil
  @trace     = nil
end

#set_with_bt(with_bt) ⇒ Object

set the given with bt and the src line for with bt



98
99
100
101
102
103
104
# File 'lib/assert/result.rb', line 98

def set_with_bt(with_bt)
  return if with_bt.nil?
  @with_bt   = with_bt
  @src_line  = with_bt.first
  @file_line = nil
  @trace     = nil
end

#src_lineObject



110
111
112
# File 'lib/assert/result.rb', line 110

def src_line
  @src_line ||= first_filtered_bt_line(self.backtrace)
end

#test_file_lineObject



61
62
63
# File 'lib/assert/result.rb', line 61

def test_file_line
  @test_file_line ||= (@build_data[:test_file_line] || Assert::FileLine.parse(""))
end

#test_file_nameObject



65
# File 'lib/assert/result.rb', line 65

def test_file_name; self.test_file_line.file;      end

#test_idObject



68
69
70
# File 'lib/assert/result.rb', line 68

def test_id
  self.test_file_line.to_s
end

#test_line_numObject



66
# File 'lib/assert/result.rb', line 66

def test_line_num;  self.test_file_line.line.to_i; end

#test_nameObject



57
58
59
# File 'lib/assert/result.rb', line 57

def test_name
  @test_name ||= (@build_data[:test_name] || "")
end

#to_sObject



127
128
129
130
131
132
# File 'lib/assert/result.rb', line 127

def to_s
  [ "#{self.name.upcase}: #{self.test_name}",
    self.message,
    self.trace
  ].reject(&:empty?).join("\n")
end

#to_symObject



125
# File 'lib/assert/result.rb', line 125

def to_sym; self.type; end

#traceObject



84
85
86
# File 'lib/assert/result.rb', line 84

def trace
  @trace ||= build_trace
end

#typeObject



49
50
51
# File 'lib/assert/result.rb', line 49

def type
  @type ||= (@build_data[:type] || self.class.type).to_sym
end

#with_bt_set?Boolean

Returns:

  • (Boolean)


106
107
108
# File 'lib/assert/result.rb', line 106

def with_bt_set?
  !@with_bt.nil?
end