package tst import ( "strconv" "testing" ) // --- Must ----------------------------------------------------------------- func TestMust_NoError_Int(t *testing.T) { v := Must(123, nil)(t) AssertEqual(t, v, 123) } func TestMust_NoError_String(t *testing.T) { v := Must("hello", nil)(t) AssertEqual(t, v, "hello") } func TestMust_NoError_Slice(t *testing.T) { v := Must([]int{1, 2, 3}, nil)(t) AssertArrayEqual(t, v, []int{1, 2, 3}) } func TestMust_NoError_Struct(t *testing.T) { type s struct { X int Y string } v := Must(s{X: 7, Y: "abc"}, nil)(t) AssertEqual(t, v, s{X: 7, Y: "abc"}) } func TestMust_StrconvAtoi(t *testing.T) { v := Must(strconv.Atoi("42"))(t) AssertEqual(t, v, 42) } func TestMust_ZeroValueOnNoError(t *testing.T) { v := Must(0, nil)(t) AssertEqual(t, v, 0) } func TestMust_ReturnedFnIsNotNil(t *testing.T) { fn := Must("anything", nil) if fn == nil { t.Fatal("Must should return a non-nil function") } }