| 165 | } |
| 166 | |
| 167 | func (s) TestFromErrorImplementsInterface(t *testing.T) { |
| 168 | code, message := codes.Internal, "test description" |
| 169 | details := []*anypb.Any{{ |
| 170 | TypeUrl: "testUrl", |
| 171 | Value: []byte("testValue"), |
| 172 | }} |
| 173 | err := customError{ |
| 174 | Code: code, |
| 175 | Message: message, |
| 176 | Details: details, |
| 177 | } |
| 178 | s, ok := FromError(err) |
| 179 | if !ok || s.Code() != code || s.Message() != message || s.Err() == nil { |
| 180 | t.Fatalf("FromError(%v) = %v, %v; want <Code()=%s, Message()=%q, Err()!=nil>, true", err, s, ok, code, message) |
| 181 | } |
| 182 | pd := s.Proto().GetDetails() |
| 183 | if len(pd) != 1 || !proto.Equal(pd[0], details[0]) { |
| 184 | t.Fatalf("s.Proto.GetDetails() = %v; want <Details()=%s>", pd, details) |
| 185 | } |
| 186 | } |
| 187 | |
| 188 | func (s) TestFromErrorUnknownError(t *testing.T) { |
| 189 | code, message := codes.Unknown, "unknown error" |