@@ -11,7 +11,9 @@ func TestOptional(t *testing.T) {
11
11
t .Run ("NewOptional" , func (t * testing.T ) {
12
12
opt := NewOptional (42 )
13
13
assert .True (t , opt .IsPresent ())
14
- assert .Equal (t , 42 , opt .Get ())
14
+ value , err := opt .Get ()
15
+ assert .NoError (t , err )
16
+ assert .Equal (t , 42 , value )
15
17
})
16
18
17
19
t .Run ("Empty" , func (t * testing.T ) {
@@ -21,10 +23,13 @@ func TestOptional(t *testing.T) {
21
23
22
24
t .Run ("Get" , func (t * testing.T ) {
23
25
opt := NewOptional ("test" )
24
- assert .Equal (t , "test" , opt .Get ())
26
+ value , err := opt .Get ()
27
+ assert .NoError (t , err )
28
+ assert .Equal (t , "test" , value )
25
29
26
30
emptyOpt := Empty [string ]()
27
- assert .Panics (t , func () { emptyOpt .Get () })
31
+ _ , err = emptyOpt .Get ()
32
+ assert .Error (t , err )
28
33
})
29
34
30
35
t .Run ("OrElse" , func (t * testing.T ) {
@@ -54,7 +59,9 @@ func TestOptional(t *testing.T) {
54
59
opt := NewOptional (3 )
55
60
mapped := opt .Map (func (v int ) int { return v * 2 })
56
61
assert .True (t , mapped .IsPresent ())
57
- assert .Equal (t , 6 , mapped .Get ())
62
+ value , err := mapped .Get ()
63
+ assert .NoError (t , err )
64
+ assert .Equal (t , 6 , value )
58
65
59
66
emptyOpt := Empty [int ]()
60
67
mappedEmpty := emptyOpt .Map (func (v int ) int { return v * 2 })
@@ -75,7 +82,9 @@ func TestOptional(t *testing.T) {
75
82
err := json .Unmarshal ([]byte ("42" ), & opt )
76
83
assert .NoError (t , err )
77
84
assert .True (t , opt .IsPresent ())
78
- assert .Equal (t , 42 , opt .Get ())
85
+ value , err := opt .Get ()
86
+ assert .NoError (t , err )
87
+ assert .Equal (t , 42 , value )
79
88
80
89
err = json .Unmarshal ([]byte ("null" ), & opt )
81
90
assert .NoError (t , err )
@@ -106,9 +115,13 @@ func TestOptionalUnmarshalJSONInStruct(t *testing.T) {
106
115
assert .NoError (t , err )
107
116
assert .Equal (t , "John Doe" , result .Name )
108
117
assert .True (t , result .Age .IsPresent ())
109
- assert .Equal (t , 30 , result .Age .Get ())
118
+ ageValue , err := result .Age .Get ()
119
+ assert .NoError (t , err )
120
+ assert .Equal (t , 30 , ageValue )
110
121
assert .True (t , result .Address .IsPresent ())
111
- assert .Equal (t , "123 Main St" , result .Address .Get ())
122
+ addressValue , err := result .Address .Get ()
123
+ assert .NoError (t , err )
124
+ assert .Equal (t , "123 Main St" , addressValue )
112
125
})
113
126
114
127
t .Run ("Missing optional values" , func (t * testing.T ) {
0 commit comments