require 'minitest/autorun' require_relative 'maybe' class MaybeTest < MiniTest::Unit::TestCase def test_nil assert_equal Maybe(nil).a.b.c, Maybe(Nothing.new) end def test_some assert_equal Maybe("Some").downcase, Maybe("some") end def test_value_with_nil assert_equal Maybe(nil).a.value("foo"), "foo" end def test_value_with_some assert_equal Maybe("Some").downcase.value("nothing"), "some" end def test_else_with_nil assert_equal Maybe(nil).else("foo"), "foo" end def test_else_with_some assert_equal Maybe("Foo").else("bar"), Maybe("Foo") end end