示例#1
0
func testArray(t *testing.T, s string) {
	parser := sjson.NewJsonParser()
	if err := parser.Init([]byte(s)); err != nil {
		t.Fatal(err)
	}
	jout := debug.Walk(parser)
	t.Logf("%v", jout)
}
示例#2
0
func TestDebug(t *testing.T) {
	p := NewReflectParser()
	p.Init(reflect.ValueOf(debug.Input))
	m := debug.Walk(p)
	if !m.Equal(debug.Output) {
		t.Fatalf("expected %s but got %s", debug.Output, m)
	}
}
示例#3
0
func TestMultiLineArray(t *testing.T) {
	s := `{
		"A":[1]
	}`
	parser := sjson.NewJsonParser()
	if err := parser.Init([]byte(s)); err != nil {
		t.Fatal(err)
	}
	jout := debug.Walk(parser)
	t.Logf("%v", jout)
}
示例#4
0
func testXML(t *testing.T, s string) {
	x := NewXMLParser()
	if err := x.Init([]byte(s)); err != nil {
		panic(err)
	}
	m := debug.Walk(debug.NewLogger(x, debug.NewLineLogger()))
	data, err := json.Marshal(m)
	if err != nil {
		t.Fatal(err)
	}
	t.Logf(string(data))
}
示例#5
0
func TestExtensionsBigContainer(t *testing.T) {
	p := NewProtoNameParser("prototests", "BigContainer", prototests.ABigContainer.Description())
	data, err := proto.Marshal(prototests.ABigContainer)
	if err != nil {
		panic(err)
	}
	if err := p.Init(data); err != nil {
		t.Fatal(err)
	}
	nodes := debug.Walk(p)
	if !nodes.Equal(prototests.ABigContainerOutput) {
		t.Fatalf("expected %v, but got %v", prototests.ABigContainerOutput, nodes)
	}
}
示例#6
0
func TestDebug(t *testing.T) {
	p := sjson.NewJsonParser()
	data, err := json.Marshal(debug.Input)
	if err != nil {
		t.Fatal(err)
	}
	if err := p.Init(data); err != nil {
		t.Fatal(err)
	}
	m := debug.Walk(p)
	if !m.Equal(debug.Output) {
		t.Fatalf("expected %s but got %s", debug.Output, m)
	}
}
示例#7
0
func TestDebug(t *testing.T) {
	p := NewProtoNameParser("debug", "Debug", debug.DebugDescription())
	data, err := proto.Marshal(debug.Input)
	if err != nil {
		panic(err)
	}
	if err := p.Init(data); err != nil {
		t.Fatal(err)
	}
	parser := debug.NewLogger(p, debug.NewLineLogger())
	m := debug.Walk(parser)
	if !m.Equal(debug.Output) {
		t.Fatalf("expected %s but got %s", debug.Output, m)
	}
}
示例#8
0
func testValue(t *testing.T, input, output string) {
	parser := sjson.NewJsonParser()
	if err := parser.Init([]byte(input)); err != nil {
		t.Fatalf("init error: %v", err)
	}
	jout := debug.Walk(parser)
	if len(jout) != 1 {
		t.Fatalf("expected one node")
	}
	if len(jout[0].Children) != 0 {
		t.Fatalf("did not expected any children")
	}
	if jout[0].Label != output {
		t.Fatalf("expected %s got %s", output, jout[0].Label)
	}
}
示例#9
0
func TestEscapedChar(t *testing.T) {
	j := map[string][]interface{}{
		`a\"`: {1},
	}
	data, err := json.Marshal(j)
	if err != nil {
		t.Fatal(err)
	}
	t.Logf("%s", string(data))
	parser := sjson.NewJsonParser()
	if err := parser.Init(data); err != nil {
		t.Fatal(err)
	}
	m := debug.Walk(parser)
	name := m[0].Label
	if name != `a\"` {
		t.Fatalf("wrong escaped name %s", name)
	}
}