diff options
| author | Russ Cox <rsc@golang.org> | 2008-12-11 12:25:58 -0800 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2008-12-11 12:25:58 -0800 |
| commit | 8708b6b3e44bfd0da24095db8c4c49b425405158 (patch) | |
| tree | e1ced2b2e9d92ddbcd1e7b6c9f53b57c529d0efc /src/lib/json/generic_test.go | |
| parent | cfa051116c97dc97e02fcdde9887c2e455dead81 (diff) | |
| download | golang-8708b6b3e44bfd0da24095db8c4c49b425405158.tar.gz | |
add JSON library
R=r
DELTA=1127 (1127 added, 0 deleted, 0 changed)
OCL=20975
CL=20983
Diffstat (limited to 'src/lib/json/generic_test.go')
| -rw-r--r-- | src/lib/json/generic_test.go | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/lib/json/generic_test.go b/src/lib/json/generic_test.go new file mode 100644 index 000000000..a061af032 --- /dev/null +++ b/src/lib/json/generic_test.go @@ -0,0 +1,72 @@ +// Copyright 2009 The Go 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 json + +import ( + "json"; + "testing"; +) + +var jsontests = []string { + `null`, + `true`, + `false`, + `"abc"`, + `123`, + `0.1`, + `1e-10`, + `[]`, + `[1,2,3,4]`, + `[1,2,"abc",null,true,false]`, + `{}`, + `{"a":1}`, +} + +export func TestJson(t *testing.T) { + for i := 0; i < len(jsontests); i++ { + val, ok, errtok := StringToJson(jsontests[i]); + if !ok { + t.Errorf("StringToJson(%#q) => error near %v", jsontests[i], errtok); + continue; + } + str := JsonToString(val); + if str != jsontests[i] { + t.Errorf("JsonToString(StringToJson(%#q)) = %#q", jsontests[i], str); + continue; + } + } +} + +export func TestJsonMap(t *testing.T) { + values := new(map[string]Json); + mapstr := "{"; + for i := 0; i < len(jsontests); i++ { + val, ok, errtok := StringToJson(jsontests[i]); + if !ok { + t.Errorf("StringToJson(%#q) => error near %v", jsontests[i], errtok); + } + if i > 0 { + mapstr += ","; + } + values[jsontests[i]] = val; + mapstr += Quote(jsontests[i]); + mapstr += ":"; + mapstr += JsonToString(val); + } + mapstr += "}"; + + mapv, ok, errtok := StringToJson(mapstr); + if !ok { + t.Fatalf("StringToJson(%#q) => error near %v", mapstr, errtok); + } + if mapv == nil { + t.Fatalf("StringToJson(%#q) => nil, %v, %v", mapstr, ok, errtok); + } + for k,v range values { + if v1 := mapv.Get(k); !Equal(v1, v) { + t.Errorf("MapTest: Walk(%#q) => %v, want %v", k, v1, v); + } + } +} |
