File tree Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -71,16 +71,25 @@ type Status struct {
71
71
72
72
// Code returns the status code contained in s.
73
73
func (s * Status ) Code () codes.Code {
74
+ if s == nil || s .s == nil {
75
+ return codes .OK
76
+ }
74
77
return codes .Code (s .s .Code )
75
78
}
76
79
77
80
// Message returns the message contained in s.
78
81
func (s * Status ) Message () string {
82
+ if s == nil || s .s == nil {
83
+ return ""
84
+ }
79
85
return s .s .Message
80
86
}
81
87
82
88
// Proto returns s's status as an spb.Status proto message.
83
89
func (s * Status ) Proto () * spb.Status {
90
+ if s == nil {
91
+ return nil
92
+ }
84
93
return proto .Clone (s .s ).(* spb.Status )
85
94
}
86
95
Original file line number Diff line number Diff line change @@ -65,6 +65,24 @@ func TestFromToProto(t *testing.T) {
65
65
}
66
66
}
67
67
68
+ func TestFromNilProto (t * testing.T ) {
69
+ tests := []* Status {nil , FromProto (nil )}
70
+ for _ , s := range tests {
71
+ if c := s .Code (); c != codes .OK {
72
+ t .Errorf ("s: %v - Expected s.Code() = OK; got %v" , s , c )
73
+ }
74
+ if m := s .Message (); m != "" {
75
+ t .Errorf ("s: %v - Expected s.Message() = \" \" ; got %q" , s , m )
76
+ }
77
+ if p := s .Proto (); p != nil {
78
+ t .Errorf ("s: %v - Expected s.Proto() = nil; got %q" , s , p )
79
+ }
80
+ if e := s .Err (); e != nil {
81
+ t .Errorf ("s: %v - Expected s.Err() = nil; got %v" , s , e )
82
+ }
83
+ }
84
+ }
85
+
68
86
func TestError (t * testing.T ) {
69
87
err := Error (codes .Internal , "test description" )
70
88
if got , want := err .Error (), "rpc error: code = Internal desc = test description" ; got != want {
You can’t perform that action at this time.
0 commit comments