| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package source
- import (
- "errors"
- "fmt"
- "testing"
- )
- func newCommError() error {
- return NewCommError("Test Communication Error")
- }
- func newErrorCollection() error {
- qc := &QueryErrorCollector{}
- qc.Report("test_query1", nil, NewCommError("Failed to connect"), nil)
- qc.Report("test_query2", nil, NewCommError("Failed to connect"), errors.New("Parsing error"))
- qc.Report("test_query3", nil, nil, errors.New("Failed to parse field 'foo'"))
- return qc
- }
- func newNestedError() error {
- comErr := NewCommError("Communication Error")
- e1 := fmt.Errorf("Wrap Error #1: %w", comErr)
- e2 := fmt.Errorf("Wrap Error #2: %w", e1)
- return e2
- }
- func TestErrorCollectionCheck(t *testing.T) {
- err := newErrorCollection()
- if !IsErrorCollection(err) {
- t.Fatalf("IsErrorCollection() returned false, expected true")
- return
- }
- }
- func TestNestedErrorAs(t *testing.T) {
- err := newNestedError()
- var commErr CommError
- if !errors.As(err, &commErr) {
- t.Fatalf("Expected there to exist a CommError, but failed.")
- return
- }
- }
- func TestErrorCollectionErrorAs(t *testing.T) {
- err := newErrorCollection()
- var commErr CommError
- if !errors.As(err, &commErr) {
- t.Fatalf("Expected there to exist a CommError, but failed.")
- return
- }
- }
- func TestCommErrorAs(t *testing.T) {
- err := newCommError()
- var commErr CommError
- if !errors.As(err, &commErr) {
- t.Fatalf("Expected there to exist a CommError, but failed.")
- return
- }
- }
- func TestAllErrorsFor(t *testing.T) {
- err := newErrorCollection()
- if !IsErrorCollection(err) {
- t.Fatalf("Error is not ErrorCollection")
- return
- }
- collection := err.(QueryErrorCollection)
- allErrors := AllErrorsFor(collection)
- // Expected Errors Length
- const expected = 4
- if len(allErrors) != expected {
- t.Fatalf("All Errors Length was: %d, Expected %d", len(allErrors), expected)
- return
- }
- }
|