2022-08-08 17:01:41 +00:00
|
|
|
package opt_test
|
|
|
|
|
|
|
|
import (
|
2024-07-04 16:54:41 +00:00
|
|
|
"github.com/reiver/go-opt"
|
2022-08-08 17:01:41 +00:00
|
|
|
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestOptional_WhenNothing(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
|
|
tests := []struct{
|
|
|
|
Optional interface{WhenNothing(func())}
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
Optional: opt.Nothing[string](),
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
Optional: opt.Nothing[int](),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Nothing[int8](),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Nothing[int16](),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Nothing[int32](),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Nothing[int64](),
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
Optional: opt.Nothing[uint](),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Nothing[uint8](),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Nothing[uint16](),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Nothing[uint32](),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Nothing[uint64](),
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for testNumber, test := range tests {
|
|
|
|
|
|
|
|
var worked bool = false
|
|
|
|
|
|
|
|
test.Optional.WhenNothing(func(){
|
|
|
|
|
|
|
|
worked = true
|
|
|
|
})
|
|
|
|
|
|
|
|
if !worked {
|
|
|
|
t.Errorf("For test #%d, the call to the method did not seem work.", testNumber)
|
|
|
|
t.Logf("WORKED: %t", worked)
|
|
|
|
t.Logf("OPTIONAL: (%T) %#v", test.Optional, test.Optional)
|
|
|
|
//////////////// CONTINUE
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestOptional_WhenNothing_something(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
|
|
tests := []struct{
|
|
|
|
Optional interface{WhenNothing(func())}
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
Optional: opt.Something[string]("once twice thrice fource"),
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
Optional: opt.Something[int](-1),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Something[int8](-101),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Something[int16](-10101),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Something[int32](-1010101),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Something[int64](-101010101),
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
Optional: opt.Something[uint](1),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Something[uint8](101),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Something[uint16](10101),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Something[uint32](1010101),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Optional: opt.Something[uint64](101010101),
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for testNumber, test := range tests {
|
|
|
|
|
|
|
|
var worked bool = false
|
|
|
|
|
|
|
|
test.Optional.WhenNothing(func(){
|
|
|
|
|
|
|
|
worked = true
|
|
|
|
})
|
|
|
|
|
|
|
|
if worked {
|
|
|
|
t.Errorf("For test #%d, the call to the method worked, but it should not have.", testNumber)
|
|
|
|
t.Logf("WORKED: %t", worked)
|
|
|
|
t.Logf("OPTIONAL: (%T) %#v", test.Optional, test.Optional)
|
|
|
|
//////////////// CONTINUE
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|