123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /*
- *
- * Copyright 2017 gRPC authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
- package codes
- import (
- "encoding/json"
- "reflect"
- "testing"
- cpb "google.golang.org/genproto/googleapis/rpc/code"
- )
- func TestUnmarshalJSON(t *testing.T) {
- for s, v := range cpb.Code_value {
- want := Code(v)
- var got Code
- if err := got.UnmarshalJSON([]byte(`"` + s + `"`)); err != nil || got != want {
- t.Errorf("got.UnmarshalJSON(%q) = %v; want <nil>. got=%v; want %v", s, err, got, want)
- }
- }
- }
- func TestJSONUnmarshal(t *testing.T) {
- var got []Code
- want := []Code{OK, NotFound, Internal, Canceled}
- in := `["OK", "NOT_FOUND", "INTERNAL", "CANCELLED"]`
- err := json.Unmarshal([]byte(in), &got)
- if err != nil || !reflect.DeepEqual(got, want) {
- t.Fatalf("json.Unmarshal(%q, &got) = %v; want <nil>. got=%v; want %v", in, err, got, want)
- }
- }
- func TestUnmarshalJSON_NilReceiver(t *testing.T) {
- var got *Code
- in := OK.String()
- if err := got.UnmarshalJSON([]byte(in)); err == nil {
- t.Errorf("got.UnmarshalJSON(%q) = nil; want <non-nil>. got=%v", in, got)
- }
- }
- func TestUnmarshalJSON_UnknownInput(t *testing.T) {
- var got Code
- for _, in := range [][]byte{[]byte(""), []byte("xxx"), []byte("Code(17)"), nil} {
- if err := got.UnmarshalJSON([]byte(in)); err == nil {
- t.Errorf("got.UnmarshalJSON(%q) = nil; want <non-nil>. got=%v", in, got)
- }
- }
- }
- func TestUnmarshalJSON_MarshalUnmarshal(t *testing.T) {
- for i := 0; i < _maxCode; i++ {
- var cUnMarshaled Code
- c := Code(i)
- cJSON, err := json.Marshal(c)
- if err != nil {
- t.Errorf("marshalling %q failed: %v", c, err)
- }
- if err := json.Unmarshal(cJSON, &cUnMarshaled); err != nil {
- t.Errorf("unmarshalling code failed: %s", err)
- }
- if c != cUnMarshaled {
- t.Errorf("code is %q after marshalling/unmarshalling, expected %q", cUnMarshaled, c)
- }
- }
- }
|