diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/gobang.go | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/tests/gobang.go b/tests/gobang.go index e35f358..e2dd61b 100644 --- a/tests/gobang.go +++ b/tests/gobang.go @@ -13,6 +13,82 @@ import ( +func test_SomeError() { + TestStart("SomeError()") + + Testing("an empty array is nil", func() { + given := []error{} + AssertEqual(SomeError(given), nil) + }) + + Testing("only nil values is nil", func() { + given := []error{ + nil, + nil, + nil, + } + AssertEqual(SomeError(given), nil) + }) + + Testing("we get the first non-nil value", func() { + err1 := errors.New("error 1") + err2 := errors.New("error 2") + given := []error{ + nil, + err1, + err2, + } + AssertEqual(SomeError(given), err1) + }) +} + +func test_SomeFnError() { + TestStart("SomeFnError()") + + Testing("an empty arrays is also nil", func() { + given := [](func() error){} + AssertEqual(SomeFnError(given), nil) + }) + + Testing("all functions are called", func() { + i := 0 + fn := func() error { + i++ + return nil + } + given := [](func() error){ + fn, + fn, + fn, + } + AssertEqual(SomeFnError(given), nil) + AssertEqual(i, 3) + }) + + Testing("we call all functions even if we get an error", func() { + i := 0 + errs := []error{ + nil, + nil, + errors.New("fn error 2"), + errors.New("fn error 3"), + nil, + } + fn := func() error { + i++ + return errs[i] + } + given := [](func() error){ + fn, + fn, + fn, + fn, + } + AssertEqual(SomeFnError(given), errs[2]) + AssertEqual(i, 4) + }) +} + func test_Random() { TestStart("Random()") @@ -788,6 +864,8 @@ func test_setHostname() { func MainTest() { + test_SomeError() + test_SomeFnError() test_Random() test_sourceInfo() test_logArgs() |