diff options
Diffstat (limited to 'internal/scfg/writer_test.go')
-rw-r--r-- | internal/scfg/writer_test.go | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/internal/scfg/writer_test.go b/internal/scfg/writer_test.go deleted file mode 100644 index 59881da..0000000 --- a/internal/scfg/writer_test.go +++ /dev/null @@ -1,161 +0,0 @@ -// SPDX-License-Identifier: MIT -// SPDX-FileCopyrightText: Copyright (c) 2020 Simon Ser <https://emersion.fr> - -package scfg - -import ( - "bytes" - "testing" -) - -func TestWrite(t *testing.T) { - for _, tc := range []struct { - src Block - want string - err error - }{ - { - src: Block{}, - want: "", - }, - { - src: Block{{ - Name: "dir", - Children: Block{{ - Name: "blk1", - Params: []string{"p1", `"p2"`}, - Children: Block{ - { - Name: "sub1", - Params: []string{"arg11", "arg12"}, - }, - { - Name: "sub2", - Params: []string{"arg21", "arg22"}, - }, - { - Name: "sub3", - Params: []string{"arg31", "arg32"}, - Children: Block{ - { - Name: "sub-sub1", - }, - { - Name: "sub-sub2", - Params: []string{"arg321", "arg322"}, - }, - }, - }, - }, - }}, - }}, - want: `dir { - blk1 p1 "\"p2\"" { - sub1 arg11 arg12 - sub2 arg21 arg22 - sub3 arg31 arg32 { - sub-sub1 - sub-sub2 arg321 arg322 - } - } -} -`, - }, - { - src: Block{{Name: "dir1"}}, - want: "dir1\n", - }, - { - src: Block{{Name: "dir\"1"}}, - want: "\"dir\\\"1\"\n", - }, - { - src: Block{{Name: "dir'1"}}, - want: "\"dir'1\"\n", - }, - { - src: Block{{Name: "dir:}"}}, - want: "\"dir:}\"\n", - }, - { - src: Block{{Name: "dir:{"}}, - want: "\"dir:{\"\n", - }, - { - src: Block{{Name: "dir\t1"}}, - want: `"dir` + "\t" + `1"` + "\n", - }, - { - src: Block{{Name: "dir 1"}}, - want: "\"dir 1\"\n", - }, - { - src: Block{{Name: "dir1", Params: []string{"arg1", "arg2", `"arg3"`}}}, - want: "dir1 arg1 arg2 " + `"\"arg3\""` + "\n", - }, - { - src: Block{{Name: "dir1", Params: []string{"arg1", "arg 2", "arg'3"}}}, - want: "dir1 arg1 \"arg 2\" \"arg'3\"\n", - }, - { - src: Block{{Name: "dir1", Params: []string{"arg1", "", "arg3"}}}, - want: "dir1 arg1 \"\" arg3\n", - }, - { - src: Block{{Name: "dir1", Params: []string{"arg1", `"` + "\"\"" + `"`, "arg3"}}}, - want: "dir1 arg1 " + `"\"\"\"\""` + " arg3\n", - }, - { - src: Block{{ - Name: "dir1", - Children: Block{ - {Name: "sub1"}, - {Name: "sub2", Params: []string{"arg1", "arg2"}}, - }, - }}, - want: `dir1 { - sub1 - sub2 arg1 arg2 -} -`, - }, - { - src: Block{{Name: ""}}, - err: errDirEmptyName, - }, - { - src: Block{{ - Name: "dir", - Children: Block{ - {Name: "sub1"}, - {Name: "", Children: Block{{Name: "sub21"}}}, - }, - }}, - err: errDirEmptyName, - }, - } { - t.Run("", func(t *testing.T) { - var buf bytes.Buffer - err := Write(&buf, tc.src) - switch { - case err != nil && tc.err != nil: - if got, want := err.Error(), tc.err.Error(); got != want { - t.Fatalf("invalid error:\ngot= %q\nwant=%q", got, want) - } - return - case err == nil && tc.err != nil: - t.Fatalf("got err=nil, want=%q", tc.err.Error()) - case err != nil && tc.err == nil: - t.Fatalf("could not marshal: %+v", err) - case err == nil && tc.err == nil: - // ok. - } - if got, want := buf.String(), tc.want; got != want { - t.Fatalf( - "invalid marshal representation:\ngot:\n%s\nwant:\n%s\n---", - got, want, - ) - } - }) - } -} |