...
1
2
3
4 package filtersutil_test
5
6 import (
7 "bytes"
8 "fmt"
9 "log"
10 "testing"
11
12 "github.com/stretchr/testify/assert"
13 "sigs.k8s.io/kustomize/kyaml/filtersutil"
14 "sigs.k8s.io/kustomize/kyaml/kio"
15 "sigs.k8s.io/kustomize/kyaml/yaml"
16 )
17
18 func TestApplyToJSON(t *testing.T) {
19
20 testFilter := kio.FilterAll(yaml.FilterFunc(
21 func(node *yaml.RNode) (*yaml.RNode, error) {
22 set := yaml.SetField(
23 "foo", yaml.NewScalarRNode("bar"))
24 err := node.PipeE(set)
25 if !assert.NoError(t, err) {
26 t.FailNow()
27 }
28 return node, nil
29 }))
30
31 obj1 := buffer{Buffer: bytes.NewBufferString(`{"kind": "Foo"}`)}
32 obj2 := buffer{Buffer: bytes.NewBufferString(`{"kind": "Bar"}`)}
33 err := filtersutil.ApplyToJSON(testFilter, obj1, obj2)
34 if err != nil {
35 log.Fatal(err)
36 }
37
38 fmt.Println(obj1.String())
39 fmt.Println(obj2.String())
40
41
42
43
44 }
45
46 type buffer struct {
47 *bytes.Buffer
48 }
49
50 func (buff buffer) UnmarshalJSON(b []byte) error {
51 buff.Reset()
52 buff.Write(b)
53 return nil
54 }
55
56 func (buff buffer) MarshalJSON() ([]byte, error) {
57 return buff.Bytes(), nil
58 }
59
View as plain text