Skip to content

Commit b90797c

Browse files
committed
cm: add test for (Result).Result()
1 parent 2eb90f9 commit b90797c

File tree

1 file changed

+41
-18
lines changed

1 file changed

+41
-18
lines changed

cm/result_test.go

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,47 @@ type resulter[OK, Err any] interface {
1919
Err() *Err
2020
}
2121

22+
func TestResultOKOrErr(t *testing.T) {
23+
r1 := OK[Result[string, string, struct{}]]("hello")
24+
if ok := r1.OK(); ok == nil {
25+
t.Errorf("OK(): %v, expected non-nil OK", ok)
26+
}
27+
if err := r1.Err(); err != nil {
28+
t.Errorf("Err(): %v, expected nil Err", err)
29+
}
30+
31+
r2 := Err[Result[bool, struct{}, bool]](true)
32+
if ok := r2.OK(); ok != nil {
33+
t.Errorf("OK(): %v, expected nil OK", ok)
34+
}
35+
if err := r2.Err(); err == nil {
36+
t.Errorf("Err(): %v, expected non-nil Err", err)
37+
}
38+
}
39+
40+
func TestResultResult(t *testing.T) {
41+
ok, err, isErr := OK[Result[string, string, int]]("hello").Result()
42+
if got, want := ok, "hello"; got != want {
43+
t.Errorf("Result(): ok = %v; expected %v", got, want)
44+
}
45+
if got, want := err, 0; got != want {
46+
t.Errorf("Result(): err = %v; expected %v", got, want)
47+
}
48+
if got, want := isErr, false; got != want {
49+
t.Errorf("Result(): isErr = %v; expected %v", got, want)
50+
}
51+
ok, err, isErr = Err[Result[string, string, int]](42).Result()
52+
if got, want := ok, ""; got != want {
53+
t.Errorf("Result(): ok = %v; expected %v", got, want)
54+
}
55+
if got, want := err, 42; got != want {
56+
t.Errorf("Result(): err = %v; expected %v", got, want)
57+
}
58+
if got, want := isErr, true; got != want {
59+
t.Errorf("Result(): isErr = %v; expected %v", got, want)
60+
}
61+
}
62+
2263
func TestResultLayout(t *testing.T) {
2364
// 8 on 64-bit, 4 on 32-bit
2465
ptrSize := unsafe.Sizeof(uintptr(0))
@@ -70,24 +111,6 @@ func TestResultLayout(t *testing.T) {
70111
}
71112
}
72113

73-
func TestResultOKOrErr(t *testing.T) {
74-
r1 := OK[Result[string, string, struct{}]]("hello")
75-
if ok := r1.OK(); ok == nil {
76-
t.Errorf("OK(): %v, expected non-nil OK", ok)
77-
}
78-
if err := r1.Err(); err != nil {
79-
t.Errorf("Err(): %v, expected nil Err", err)
80-
}
81-
82-
r2 := Err[Result[bool, struct{}, bool]](true)
83-
if ok := r2.OK(); ok != nil {
84-
t.Errorf("OK(): %v, expected nil OK", ok)
85-
}
86-
if err := r2.Err(); err == nil {
87-
t.Errorf("Err(): %v, expected non-nil Err", err)
88-
}
89-
}
90-
91114
func TestAltResult1(t *testing.T) {
92115
type alt1[Shape, OK, Err any] struct {
93116
_ [0]OK

0 commit comments

Comments
 (0)