...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package textproto_test
16
17 import (
18 "strings"
19 "testing"
20
21 "cuelang.org/go/cue"
22 "cuelang.org/go/cue/errors"
23 "cuelang.org/go/encoding/protobuf/textproto"
24 "cuelang.org/go/internal/cuetxtar"
25 )
26
27 func TestEncode(t *testing.T) {
28 test := cuetxtar.TxTarTest{
29 Root: "./testdata/encoder",
30 Name: "encode",
31 }
32
33 r := cue.Runtime{}
34
35 test.Run(t, func(t *cuetxtar.Test) {
36
37
38 var schema, value cue.Value
39
40 for _, f := range t.Archive.Files {
41 switch {
42 case strings.HasSuffix(f.Name, ".cue"):
43 inst, err := r.Compile(f.Name, f.Data)
44 if err != nil {
45 t.WriteErrors(errors.Promote(err, "test"))
46 return
47 }
48 switch f.Name {
49 case "schema.cue":
50 schema = inst.Value()
51 case "value.cue":
52 value = inst.Value()
53 }
54 }
55 }
56
57 v := schema.Unify(value)
58 if err := v.Err(); err != nil {
59 t.WriteErrors(errors.Promote(err, "test"))
60 return
61 }
62
63 b, err := textproto.NewEncoder().Encode(v)
64 if err != nil {
65 t.WriteErrors(errors.Promote(err, "test"))
66 return
67 }
68 _, _ = t.Write(b)
69
70 })
71 }
72
View as plain text