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  }