...

Source file src/github.com/hashicorp/go-multierror/append_test.go

Documentation: github.com/hashicorp/go-multierror

     1  package multierror
     2  
     3  import (
     4  	"errors"
     5  	"testing"
     6  )
     7  
     8  func TestAppend_Error(t *testing.T) {
     9  	original := &Error{
    10  		Errors: []error{errors.New("foo")},
    11  	}
    12  
    13  	result := Append(original, errors.New("bar"))
    14  	if len(result.Errors) != 2 {
    15  		t.Fatalf("wrong len: %d", len(result.Errors))
    16  	}
    17  
    18  	original = &Error{}
    19  	result = Append(original, errors.New("bar"))
    20  	if len(result.Errors) != 1 {
    21  		t.Fatalf("wrong len: %d", len(result.Errors))
    22  	}
    23  
    24  	// Test when a typed nil is passed
    25  	var e *Error
    26  	result = Append(e, errors.New("baz"))
    27  	if len(result.Errors) != 1 {
    28  		t.Fatalf("wrong len: %d", len(result.Errors))
    29  	}
    30  
    31  	// Test flattening
    32  	original = &Error{
    33  		Errors: []error{errors.New("foo")},
    34  	}
    35  
    36  	result = Append(original, Append(nil, errors.New("foo"), errors.New("bar")))
    37  	if len(result.Errors) != 3 {
    38  		t.Fatalf("wrong len: %d", len(result.Errors))
    39  	}
    40  }
    41  
    42  func TestAppend_NilError(t *testing.T) {
    43  	var err error
    44  	result := Append(err, errors.New("bar"))
    45  	if len(result.Errors) != 1 {
    46  		t.Fatalf("wrong len: %d", len(result.Errors))
    47  	}
    48  }
    49  
    50  func TestAppend_NilErrorArg(t *testing.T) {
    51  	var err error
    52  	var nilErr *Error
    53  	result := Append(err, nilErr)
    54  	if len(result.Errors) != 0 {
    55  		t.Fatalf("wrong len: %d", len(result.Errors))
    56  	}
    57  }
    58  
    59  func TestAppend_NilErrorIfaceArg(t *testing.T) {
    60  	var err error
    61  	var nilErr error
    62  	result := Append(err, nilErr)
    63  	if len(result.Errors) != 0 {
    64  		t.Fatalf("wrong len: %d", len(result.Errors))
    65  	}
    66  }
    67  
    68  func TestAppend_NonError(t *testing.T) {
    69  	original := errors.New("foo")
    70  	result := Append(original, errors.New("bar"))
    71  	if len(result.Errors) != 2 {
    72  		t.Fatalf("wrong len: %d", len(result.Errors))
    73  	}
    74  }
    75  
    76  func TestAppend_NonError_Error(t *testing.T) {
    77  	original := errors.New("foo")
    78  	result := Append(original, Append(nil, errors.New("bar")))
    79  	if len(result.Errors) != 2 {
    80  		t.Fatalf("wrong len: %d", len(result.Errors))
    81  	}
    82  }
    83  

View as plain text