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) }