github.com/Cloud-Foundations/Dominator@v0.3.4/lib/json/read_test.go (about) 1 package json 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "testing" 7 ) 8 9 var ( 10 badJson = []byte(`{ 11 "Key": "value", 12 } 13 `) 14 15 commentedJson = []byte(`{ 16 "Key": "value" 17 # Wash away that original sin. 18 } 19 `) 20 21 goodJson = []byte(`{ 22 "Key": "value" 23 } 24 `) 25 ) 26 27 type jsonDataType struct { 28 Key string 29 } 30 31 func TestBad(t *testing.T) { 32 var data jsonDataType 33 if err := Read(bytes.NewBuffer(badJson), &data); err == nil { 34 t.Errorf("No failure trying to read bad JSON") 35 } 36 } 37 38 func TestCommentedUnfiltered(t *testing.T) { 39 var data jsonDataType 40 if err := json.Unmarshal(commentedJson, &data); err == nil { 41 t.Errorf("No failure trying to read unfiltered commented JSON") 42 } 43 } 44 45 func TestCommentedFiltered(t *testing.T) { 46 var data jsonDataType 47 if err := Read(bytes.NewBuffer(commentedJson), &data); err != nil { 48 t.Errorf("Failure trying to read filtered commented JSON") 49 } 50 if data.Key != "value" { 51 t.Errorf("Key: expected: \"value\", got: \"%s\"", data.Key) 52 } 53 } 54 55 func TestGoodFiltered(t *testing.T) { 56 var data jsonDataType 57 if err := Read(bytes.NewBuffer(goodJson), &data); err != nil { 58 t.Errorf("Failure trying to read good JSON") 59 } 60 if data.Key != "value" { 61 t.Errorf("Key: expected: \"value\", got: \"%s\"", data.Key) 62 } 63 }