mirror of
https://github.com/golang/go.git
synced 2025-11-11 14:11:04 +00:00
add JSON library
R=r DELTA=1127 (1127 added, 0 deleted, 0 changed) OCL=20975 CL=20983
This commit is contained in:
parent
fa945d5bf8
commit
793a6effcf
8 changed files with 1139 additions and 0 deletions
72
src/lib/json/generic_test.go
Normal file
72
src/lib/json/generic_test.go
Normal file
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue