class Attestify::Assertions::OutputAssertion

A helper class for Attestify::Assertions#assert_output.

Public Class Methods

new(expected_stdout, expected_stderr, stdout, stderr) click to toggle source
# File lib/attestify/assertions/output_assertion.rb, line 5
def initialize(expected_stdout, expected_stderr, stdout, stderr)
  @expected_stdout = expected_stdout
  @expected_stderr = expected_stderr
  @stdout = stdout
  @stderr = stderr
end

Public Instance Methods

assert() click to toggle source
# File lib/attestify/assertions/output_assertion.rb, line 12
def assert
  assert_stdout && assert_stderr
end
message() click to toggle source
# File lib/attestify/assertions/output_assertion.rb, line 16
def message
  messages = [stdout_message, stderr_message]
  "Expected #{messages.compact.join(", and ")}"
end

Private Instance Methods

assert_output(expected, actual) click to toggle source
# File lib/attestify/assertions/output_assertion.rb, line 31
def assert_output(expected, actual)
  return true unless expected

  if expected.is_a?(String)
    expected == actual
  else
    actual =~ expected
  end
end
assert_stderr() click to toggle source
# File lib/attestify/assertions/output_assertion.rb, line 27
def assert_stderr
  assert_output(@expected_stderr, @stderr)
end
assert_stdout() click to toggle source
# File lib/attestify/assertions/output_assertion.rb, line 23
def assert_stdout
  assert_output(@expected_stdout, @stdout)
end
output_message(label, expected, actual) click to toggle source
# File lib/attestify/assertions/output_assertion.rb, line 49
def output_message(label, expected, actual)
  return nil unless expected

  if expected.is_a?(String)
    "#{label}: #{expected.inspect} == #{actual.inspect}"
  else
    "#{label}: #{actual.inspect} =~ #{expected.inspect}"
  end
end
stderr_message() click to toggle source
# File lib/attestify/assertions/output_assertion.rb, line 45
def stderr_message
  output_message("$stderr", @expected_stderr, @stderr)
end
stdout_message() click to toggle source
# File lib/attestify/assertions/output_assertion.rb, line 41
def stdout_message
  output_message("$stdout", @expected_stdout, @stdout)
end