MCPcopy
hub / github.com/TomWright/dasel / TestTomlWriter_MoreCases

Function TestTomlWriter_MoreCases

parsing/toml/toml_writer_test.go:140–242  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

138}
139
140func TestTomlWriter_MoreCases(t *testing.T) {
141 cases := map[string][]byte{
142 "simple array": []byte("nums = [1, 2, 3]"),
143 "mixed array": []byte("mix = [1, \"two\", true]"),
144 "inline nested table": []byte("props = { sub = { a = 1 }, arr = [1,2] }"),
145 "quoted key with space": []byte("\"a b\" = \"val\""),
146 "dotted and quoted mix": []byte("a.\"b.c\".d = \"x\""),
147 "negative integer": []byte("n = -5"),
148 "scientific float": []byte("f = 1e3"),
149 "array of inline tables": []byte("items = [{a = 1}, {a = 2} ]"),
150 "nested table headers": []byte("[server]\nip = \"127.0.0.1\"\n[server.db]\nname = \"maindb\""),
151 "quoted single dot": []byte("\"a.b\" = 1"),
152 "unquoted dotted": []byte("a.b = 2"),
153 "mixed quoted segment": []byte("a.\"b.c\" = 3"),
154 "inline then explicit": []byte("t = {a = 1}\n[t]\nb = 2"),
155 "array trailing comma": []byte("arr = [1,2,]"),
156 "local date": []byte("d = 1979-05-27"),
157 "local time": []byte("t = 07:32:00"),
158 "local datetime": []byte("dt = 1979-05-27T07:32:00"),
159 "datetime with tz": []byte("dt = 1979-05-27T07:32:00-08:00"),
160 "multiline basic string": []byte("m = '''not used'''\n"),
161 }
162
163 reader, err := toml.TOML.NewReader(parsing.DefaultReaderOptions())
164 if err != nil {
165 t.Fatalf("unexpected error creating reader: %v", err)
166 }
167 writer, err := toml.TOML.NewWriter(parsing.DefaultWriterOptions())
168 if err != nil {
169 t.Fatalf("unexpected error creating writer: %v", err)
170 }
171
172 for name, src := range cases {
173 src := src
174 name := name
175 t.Run(name, func(t *testing.T) {
176 v, err := reader.Read(src)
177 if err != nil {
178 t.Fatalf("reader error for %s: %v", name, err)
179 }
180
181 out, err := writer.Write(v)
182 if err != nil {
183 t.Fatalf("writer error for %s: %v", name, err)
184 }
185
186 v2, err := reader.Read(out)
187 if err != nil {
188 t.Fatalf("reader error for generated output %s: %v", name, err)
189 }
190
191 res, err := v.Equal(v2)
192 if err != nil {
193 t.Fatalf("compare error for %s: %v", name, err)
194 }
195 b, err := res.BoolValue()
196 if err != nil {
197 t.Fatalf("bool extraction error for %s: %v", name, err)

Callers

nothing calls this directly

Calls 9

ReadMethod · 0.95
WriteMethod · 0.95
DefaultReaderOptionsFunction · 0.92
DefaultWriterOptionsFunction · 0.92
NewReaderMethod · 0.80
NewWriterMethod · 0.80
BoolValueMethod · 0.80
RunMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected