| Index: go/src/infra/gae/libs/gae/upstream_errors_test.go
|
| diff --git a/go/src/infra/gae/libs/gae/upstream_errors_test.go b/go/src/infra/gae/libs/gae/upstream_errors_test.go
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a5a2e8276454482ce4eabd22ab326b6ecfafb037
|
| --- /dev/null
|
| +++ b/go/src/infra/gae/libs/gae/upstream_errors_test.go
|
| @@ -0,0 +1,60 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +package gae
|
| +
|
| +import (
|
| + "errors"
|
| + "testing"
|
| +
|
| + . "github.com/smartystreets/goconvey/convey"
|
| +)
|
| +
|
| +type otherMEType []error
|
| +
|
| +func (o otherMEType) Error() string { return "FAIL" }
|
| +
|
| +func TestUpstreamErrors(t *testing.T) {
|
| + t.Parallel()
|
| +
|
| + Convey("Test MultiError", t, func() {
|
| + Convey("nil", func() {
|
| + me := MultiError(nil)
|
| + So(me.Error(), ShouldEqual, "(0 errors)")
|
| + Convey("single", func() {
|
| + So(SingleError(error(me)), ShouldBeNil)
|
| + })
|
| + })
|
| + Convey("one", func() {
|
| + me := MultiError{errors.New("sup")}
|
| + So(me.Error(), ShouldEqual, "sup")
|
| + })
|
| + Convey("two", func() {
|
| + me := MultiError{errors.New("sup"), errors.New("what")}
|
| + So(me.Error(), ShouldEqual, "sup (and 1 other error)")
|
| + })
|
| + Convey("more", func() {
|
| + me := MultiError{errors.New("sup"), errors.New("what"), errors.New("nerds")}
|
| + So(me.Error(), ShouldEqual, "sup (and 2 other errors)")
|
| +
|
| + Convey("single", func() {
|
| + So(SingleError(error(me)), ShouldResemble, errors.New("sup"))
|
| + })
|
| + })
|
| + Convey("convert", func() {
|
| + ome := otherMEType{errors.New("sup")}
|
| + So(FixError(ome), ShouldHaveSameTypeAs, MultiError{})
|
| + })
|
| + })
|
| +
|
| + Convey("FixError passes through", t, func() {
|
| + e := errors.New("unique")
|
| + So(FixError(e), ShouldEqual, e)
|
| + })
|
| +
|
| + Convey("SingleError passes through", t, func() {
|
| + e := errors.New("unique")
|
| + So(SingleError(e), ShouldEqual, e)
|
| + })
|
| +}
|
|
|