mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-20 20:52:33 +02:00
63 lines
1.4 KiB
Go
63 lines
1.4 KiB
Go
package error_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
. "github.com/yusing/go-proxy/internal/error"
|
|
. "github.com/yusing/go-proxy/internal/utils/testing"
|
|
)
|
|
|
|
func TestBuilderEmpty(t *testing.T) {
|
|
eb := NewBuilder("qwer")
|
|
ExpectTrue(t, eb.Build() == nil)
|
|
ExpectTrue(t, eb.Build().NoError())
|
|
ExpectFalse(t, eb.HasError())
|
|
}
|
|
|
|
func TestBuilderAddNil(t *testing.T) {
|
|
eb := NewBuilder("asdf")
|
|
var err NestedError
|
|
for range 3 {
|
|
eb.Add(nil)
|
|
}
|
|
for range 3 {
|
|
eb.Add(err)
|
|
}
|
|
ExpectTrue(t, eb.Build() == nil)
|
|
ExpectTrue(t, eb.Build().NoError())
|
|
ExpectFalse(t, eb.HasError())
|
|
}
|
|
|
|
func TestBuilderNested(t *testing.T) {
|
|
eb := NewBuilder("error occurred")
|
|
eb.Add(Failure("Action 1").With(Invalid("Inner", "1")).With(Invalid("Inner", "2")))
|
|
eb.Add(Failure("Action 2").With(Invalid("Inner", "3")))
|
|
|
|
got := eb.Build().String()
|
|
expected1 := (`error occurred:
|
|
- Action 1 failed:
|
|
- invalid Inner: 1
|
|
- invalid Inner: 2
|
|
- Action 2 failed:
|
|
- invalid Inner: 3`)
|
|
expected2 := (`error occurred:
|
|
- Action 1 failed:
|
|
- invalid Inner: "1"
|
|
- invalid Inner: "2"
|
|
- Action 2 failed:
|
|
- invalid Inner: "3"`)
|
|
ExpectEqualAny(t, got, []string{expected1, expected2})
|
|
}
|
|
|
|
func TestBuilderTo(t *testing.T) {
|
|
eb := NewBuilder("error occurred")
|
|
eb.Addf("abcd")
|
|
|
|
var err NestedError
|
|
eb.To(&err)
|
|
got := err.String()
|
|
expected := (`error occurred:
|
|
- abcd`)
|
|
|
|
ExpectEqual(t, got, expected)
|
|
}
|