initial commits
parent
96c7683a06
commit
3364f522cd
|
@ -0,0 +1,205 @@
|
|||
package nul_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"sourcecode.social/reiver/go-nul"
|
||||
)
|
||||
|
||||
func TestNullable_WhenNull_nothing(t *testing.T) {
|
||||
|
||||
|
||||
tests := []struct{
|
||||
Nullable interface{WhenNull(func())}
|
||||
}{
|
||||
{
|
||||
Nullable: nul.Nothing[string](),
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
Nullable: nul.Nothing[int](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Nothing[int8](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Nothing[int16](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Nothing[int32](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Nothing[int64](),
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
Nullable: nul.Nothing[uint](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Nothing[uint8](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Nothing[uint16](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Nothing[uint32](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Nothing[uint64](),
|
||||
},
|
||||
}
|
||||
|
||||
for testNumber, test := range tests {
|
||||
|
||||
var worked bool = false
|
||||
|
||||
test.Nullable.WhenNull(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("NULLABLE: (%T) %#v", test.Nullable, test.Nullable)
|
||||
//////////////// CONTINUE
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestNullable_WhenNull_null(t *testing.T) {
|
||||
|
||||
|
||||
tests := []struct{
|
||||
Nullable interface{WhenNull(func())}
|
||||
}{
|
||||
{
|
||||
Nullable: nul.Null[string](),
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
Nullable: nul.Null[int](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Null[int8](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Null[int16](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Null[int32](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Null[int64](),
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
Nullable: nul.Null[uint](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Null[uint8](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Null[uint16](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Null[uint32](),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Null[uint64](),
|
||||
},
|
||||
}
|
||||
|
||||
for testNumber, test := range tests {
|
||||
|
||||
var worked bool = false
|
||||
|
||||
test.Nullable.WhenNull(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("NULLABLE: (%T) %#v", test.Nullable, test.Nullable)
|
||||
//////////////// CONTINUE
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestNullable_WhenNull_something(t *testing.T) {
|
||||
|
||||
|
||||
tests := []struct{
|
||||
Nullable interface{WhenNull(func())}
|
||||
}{
|
||||
{
|
||||
Nullable: nul.Something[string]("once twice thrice fource"),
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
Nullable: nul.Something[int](-1),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Something[int8](-101),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Something[int16](-10101),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Something[int32](-1010101),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Something[int64](-101010101),
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
Nullable: nul.Something[uint](1),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Something[uint8](101),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Something[uint16](10101),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Something[uint32](1010101),
|
||||
},
|
||||
{
|
||||
Nullable: nul.Something[uint64](101010101),
|
||||
},
|
||||
}
|
||||
|
||||
for testNumber, test := range tests {
|
||||
|
||||
var worked bool = false
|
||||
|
||||
test.Nullable.WhenNull(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("NULLABLE: (%T) %#v", test.Nullable, test.Nullable)
|
||||
//////////////// CONTINUE
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue