This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
package langext
|
||||
|
||||
import (
|
||||
"git.blackforestbytes.com/BlackForestBytes/goext/tst"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestFormatBoolTrue(t *testing.T) {
|
||||
tst.AssertEqual(t, FormatBool(true, "yes", "no"), "yes")
|
||||
}
|
||||
|
||||
func TestFormatBoolFalse(t *testing.T) {
|
||||
tst.AssertEqual(t, FormatBool(false, "yes", "no"), "no")
|
||||
}
|
||||
|
||||
func TestConditional(t *testing.T) {
|
||||
tst.AssertEqual(t, Conditional(true, 1, 2), 1)
|
||||
tst.AssertEqual(t, Conditional(false, 1, 2), 2)
|
||||
tst.AssertEqual(t, Conditional(true, "a", "b"), "a")
|
||||
tst.AssertEqual(t, Conditional(false, "a", "b"), "b")
|
||||
}
|
||||
|
||||
func TestConditionalFn00(t *testing.T) {
|
||||
tst.AssertEqual(t, ConditionalFn00(true, 10, 20), 10)
|
||||
tst.AssertEqual(t, ConditionalFn00(false, 10, 20), 20)
|
||||
}
|
||||
|
||||
func TestConditionalFn10Lazy(t *testing.T) {
|
||||
called := false
|
||||
v := ConditionalFn10(false, func() int {
|
||||
called = true
|
||||
return 1
|
||||
}, 99)
|
||||
tst.AssertEqual(t, v, 99)
|
||||
tst.AssertEqual(t, called, false)
|
||||
|
||||
v = ConditionalFn10(true, func() int {
|
||||
called = true
|
||||
return 1
|
||||
}, 99)
|
||||
tst.AssertEqual(t, v, 1)
|
||||
tst.AssertEqual(t, called, true)
|
||||
}
|
||||
|
||||
func TestConditionalFn01Lazy(t *testing.T) {
|
||||
called := false
|
||||
v := ConditionalFn01(true, 1, func() int {
|
||||
called = true
|
||||
return 99
|
||||
})
|
||||
tst.AssertEqual(t, v, 1)
|
||||
tst.AssertEqual(t, called, false)
|
||||
|
||||
v = ConditionalFn01(false, 1, func() int {
|
||||
called = true
|
||||
return 99
|
||||
})
|
||||
tst.AssertEqual(t, v, 99)
|
||||
tst.AssertEqual(t, called, true)
|
||||
}
|
||||
|
||||
func TestConditionalFn11Lazy(t *testing.T) {
|
||||
calledT := false
|
||||
calledF := false
|
||||
|
||||
v := ConditionalFn11(true,
|
||||
func() int { calledT = true; return 1 },
|
||||
func() int { calledF = true; return 2 },
|
||||
)
|
||||
tst.AssertEqual(t, v, 1)
|
||||
tst.AssertEqual(t, calledT, true)
|
||||
tst.AssertEqual(t, calledF, false)
|
||||
|
||||
calledT = false
|
||||
calledF = false
|
||||
|
||||
v = ConditionalFn11(false,
|
||||
func() int { calledT = true; return 1 },
|
||||
func() int { calledF = true; return 2 },
|
||||
)
|
||||
tst.AssertEqual(t, v, 2)
|
||||
tst.AssertEqual(t, calledT, false)
|
||||
tst.AssertEqual(t, calledF, true)
|
||||
}
|
||||
Reference in New Issue
Block a user