...

Source file src/github.com/clbanning/mxj/v2/keystolower_test.go

Documentation: github.com/clbanning/mxj/v2

     1  // keystolower_test.go
     2  
     3  package mxj
     4  
     5  import (
     6  	"fmt"
     7  	"testing"
     8  )
     9  
    10  var tolowerdata1 = []byte(`
    11  	<doc>
    12  		<element attr="attrValue">value</element>
    13  	</doc>
    14  `)
    15  
    16  var tolowerdata2 = []byte(`
    17  	<DOC>
    18  		<Element attR="attrValue">value</Element>
    19  	</DOC>
    20  `)
    21  
    22  func TestToLower(t *testing.T) {
    23  	fmt.Println("\n-------------- keystolower_test.go")
    24  	fmt.Println("\nTestToLower ...")
    25  
    26  	CoerceKeysToLower()
    27  	defer CoerceKeysToLower()
    28  
    29  	m1, err := NewMapXml(tolowerdata1)
    30  	if err != nil {
    31  		t.Fatal(err)
    32  	}
    33  	m2, err := NewMapXml(tolowerdata2)
    34  	if err != nil {
    35  		t.Fatal(err)
    36  	}
    37  
    38  	v1, err := m1.ValuesForPath("doc.element")
    39  	if err != nil {
    40  		t.Fatal(err)
    41  	}
    42  	v2, err := m2.ValuesForPath("doc.element")
    43  	if err != nil {
    44  		t.Fatal(err)
    45  	}
    46  
    47  	if len(v1) != len(v2) {
    48  		t.Fatal(err, len(v1), len(v2))
    49  	}
    50  
    51  	m := v1[0].(map[string]interface{})
    52  	mm := v2[0].(map[string]interface{})
    53  	for k, v := range m {
    54  		if vv, ok := mm[k]; !ok {
    55  			t.Fatal("key:", k, "not in mm")
    56  		} else if v.(string) != vv.(string) {
    57  			t.Fatal(v.(string), "not in v2:", vv.(string))
    58  		}
    59  	}
    60  }
    61  

View as plain text