1package mxj
2
3import (
4	"fmt"
5	"testing"
6)
7
8var castdata = []byte(`<doc>
9	<string>string</string>
10	<float>3.14159625</float>
11	<int>2019</int>
12	<bool>
13		<true>true</true>
14		<false>FALSE</false>
15		<T>T</T>
16		<f>f</f>
17	</bool></doc>`)
18
19func TestHeader(t *testing.T) {
20	fmt.Println("\ncast_test.go ----------")
21}
22
23func TestCastDefault(t *testing.T) {
24	fmt.Println("------------ TestCastDefault ...")
25	m, err := NewMapXml(castdata)
26	if err != nil {
27		t.Fatal(err.Error())
28	}
29	fmt.Printf("%#v\n", m)
30}
31
32func TestCastTrue(t *testing.T) {
33	fmt.Println("------------ TestCastTrue ...")
34	m, _ := NewMapXml(castdata, true)
35	fmt.Printf("%#v\n", m)
36}
37
38func TestSetCheckTagToSkipFunc(t *testing.T) {
39	fmt.Println("------------ TestSetCheckTagToSkipFunc ...")
40	fn := func(tag string) bool {
41		list := []string{"int","false"}
42		for _, v := range list {
43			if v == tag {
44				return true
45			}
46		}
47		return false
48	}
49	SetCheckTagToSkipFunc(fn)
50
51	m, err := NewMapXml(castdata, true)
52	if err != nil {
53		t.Fatal(err.Error())
54	}
55	fmt.Printf("%#v\n", m)
56}
57
58func TestCastValuesToFloat(t *testing.T) {
59	fmt.Println("------------ TestCastValuesToFloat(false) ...")
60	CastValuesToFloat(false)
61	defer CastValuesToFloat(true)
62
63	m, err := NewMapXml(castdata, true)
64	if err != nil {
65		t.Fatal(err.Error())
66	}
67	fmt.Printf("%#v\n", m)
68}
69
70func TestCastValuesToBool(t *testing.T) {
71	fmt.Println("------------ TestCastValuesToBool(false) ...")
72	CastValuesToBool(false)
73	defer CastValuesToBool(true)
74
75	m, err := NewMapXml(castdata, true)
76	if err != nil {
77		t.Fatal(err.Error())
78	}
79	fmt.Printf("%#v\n", m)
80}
81