github.com/lingyao2333/mo-zero@v1.4.1/core/errorx/batcherror_test.go (about) 1 package errorx 2 3 import ( 4 "errors" 5 "fmt" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 const ( 12 err1 = "first error" 13 err2 = "second error" 14 ) 15 16 func TestBatchErrorNil(t *testing.T) { 17 var batch BatchError 18 assert.Nil(t, batch.Err()) 19 assert.False(t, batch.NotNil()) 20 batch.Add(nil) 21 assert.Nil(t, batch.Err()) 22 assert.False(t, batch.NotNil()) 23 } 24 25 func TestBatchErrorNilFromFunc(t *testing.T) { 26 err := func() error { 27 var be BatchError 28 return be.Err() 29 }() 30 assert.True(t, err == nil) 31 } 32 33 func TestBatchErrorOneError(t *testing.T) { 34 var batch BatchError 35 batch.Add(errors.New(err1)) 36 assert.NotNil(t, batch) 37 assert.Equal(t, err1, batch.Err().Error()) 38 assert.True(t, batch.NotNil()) 39 } 40 41 func TestBatchErrorWithErrors(t *testing.T) { 42 var batch BatchError 43 batch.Add(errors.New(err1)) 44 batch.Add(errors.New(err2)) 45 assert.NotNil(t, batch) 46 assert.Equal(t, fmt.Sprintf("%s\n%s", err1, err2), batch.Err().Error()) 47 assert.True(t, batch.NotNil()) 48 }