github.com/VMitov/casper@v0.4.0/build_test.go (about) 1 package casper 2 3 import ( 4 "bytes" 5 "fmt" 6 "testing" 7 8 "github.com/miracl/casper/source" 9 ) 10 11 func TestBuild(t *testing.T) { 12 testCases := []struct { 13 tmpl string 14 source source.Getter 15 res string 16 }{ 17 { 18 `{"cfg1": "{{.key1}}", "cfg2": "{{.key2}}"}`, 19 source.NewSource(map[string]interface{}{ 20 "key1": "var1", 21 "key2": "var2", 22 }), 23 `{"cfg1": "var1", "cfg2": "var2"}`, 24 }, 25 { 26 `{"cfg1": "{{.key1}}", "cfg2": "{{if .key2}}{{.key2}}{{end}}", "cfg3": "{{.key3}}"}`, 27 source.NewSource(map[string]interface{}{ 28 "key1": "var1", 29 }), 30 `{"cfg1": "var1", "cfg2": "", "cfg3": "<no value>"}`, 31 }, 32 { 33 ``, 34 source.NewSource(map[string]interface{}{ 35 "key1": "var1", 36 }), 37 ``, 38 }, 39 } 40 41 for i, tc := range testCases { 42 t.Run(fmt.Sprintf("Case%v", i), func(t *testing.T) { 43 // build 44 config, err := BuildConfig{ 45 Template: bytes.NewBufferString(tc.tmpl), 46 Source: tc.source, 47 }.Build() 48 if err != nil { 49 t.Fatal(err) 50 } 51 52 // compare 53 if string(config) != tc.res { 54 t.Errorf("Got %v; want %v", string(config), tc.res) 55 } 56 }) 57 } 58 }