package utils import "testing" func TestTry(t *testing.T) { t.Run("First Try", func(t *testing.T) { val, err := NewTry[int, bool](true). Try(func() (int, bool) { return 1, true }). Or(func() (int, bool) { return 2, false }). Or(func() (int, bool) { return 3, true }). Or(func() (int, bool) { return 4, false }). Done() if val != 1 && err != true { t.Error("Try failed") } }) t.Run("Middle Or", func(t *testing.T) { val, err := NewTry[int, bool](true). Try(func() (int, bool) { return 1, false }). Or(func() (int, bool) { return 2, false }). Or(func() (int, bool) { return 3, true }). Or(func() (int, bool) { return 4, false }). Done() if val != 3 && err != true { t.Error("Try failed") } }) t.Run("Last Or", func(t *testing.T) { val, err := NewTry[int, bool](true). Try(func() (int, bool) { return 1, false }). Or(func() (int, bool) { return 2, false }). Or(func() (int, bool) { return 3, false }). Or(func() (int, bool) { return 4, true }). Done() if val != 4 && err != true { t.Error("Try failed") } }) t.Run("Nothing", func(t *testing.T) { val, err := NewTry[int, bool](true). Try(func() (int, bool) { return 1, false }). Or(func() (int, bool) { return 2, false }). Or(func() (int, bool) { return 3, false }). Or(func() (int, bool) { return 4, false }). Done() if val != 4 && err != false { t.Error("Try failed") } }) }