Class: NullResultTest

Inherits:
Minitest::Test
  • Object
show all
Defined in:
lib/null_result.rb

Overview

Tests for the NullResult class.

This suite verifies that the default and custom initialization of NullResult work as expected and that the public interface (e.g. #message, #data, #success?, #failure?, and #to_s) behaves correctly.

Instance Method Summary collapse

Instance Method Details

#test_custom_dataObject



109
110
111
112
113
114
# File 'lib/null_result.rb', line 109

def test_custom_data
  custom_data = { error: 'invalid', code: 404 }
  nr = NullResult.new(data: custom_data)
  assert_equal custom_data, nr.data, 'Custom data mismatch'
  assert_equal 'No valid result available', nr.message, 'Default message expected'
end

#test_custom_messageObject



102
103
104
105
106
107
# File 'lib/null_result.rb', line 102

def test_custom_message
  custom_message = 'Custom error message'
  nr = NullResult.new(message: custom_message)
  assert_equal custom_message, nr.message, 'Custom message mismatch'
  assert_nil nr.data, 'Data should remain nil when not provided'
end

#test_custom_message_and_dataObject



116
117
118
119
120
121
122
# File 'lib/null_result.rb', line 116

def test_custom_message_and_data
  custom_message = 'Error occurred'
  custom_data = { reason: 'not_found' }
  nr = NullResult.new(message: custom_message, data: custom_data)
  assert_equal custom_message, nr.message, 'Custom message mismatch'
  assert_equal custom_data, nr.data, 'Custom data mismatch'
end

#test_default_instanceObject



93
94
95
96
97
98
99
100
# File 'lib/null_result.rb', line 93

def test_default_instance
  nr = NullResult.new
  assert_equal 'No valid result available', nr.message, 'Default message mismatch'
  assert_nil nr.data, 'Default data should be nil'
  refute nr.success?, 'Default instance should not be a success'
  assert nr.failure?, 'Default instance should be a failure'
  assert_match /NullResult/, nr.to_s, 'to_s should include the class name'
end

#test_to_s_formatObject



124
125
126
127
128
129
130
# File 'lib/null_result.rb', line 124

def test_to_s_format
  custom_message = 'Error occurred'
  custom_data = { a: 1, b: 2 }
  nr = NullResult.new(message: custom_message, data: custom_data)
  expected = "NullResult(message: #{custom_message.inspect}, data: #{custom_data.inspect})"
  assert_equal expected, nr.to_s, 'String representation does not match expected format'
end