Blame


1 5e70998a 2022-04-12 o package aliases
2 5e70998a 2022-04-12 o
3 5e70998a 2022-04-12 o import (
4 5e70998a 2022-04-12 o "io"
5 5e70998a 2022-04-12 o "strings"
6 5e70998a 2022-04-12 o "testing"
7 5e70998a 2022-04-12 o )
8 5e70998a 2022-04-12 o
9 5e70998a 2022-04-12 o func TestParse(t *testing.T) {
10 5e70998a 2022-04-12 o var r io.Reader
11 5e70998a 2022-04-12 o valid := map[string]string{
12 5e70998a 2022-04-12 o "foo: bar@example.com": "parse valid line",
13 5e70998a 2022-04-12 o "# some comment": "parse valid commented line",
14 5e70998a 2022-04-12 o " ": "parse empty line",
15 5e70998a 2022-04-12 o }
16 5e70998a 2022-04-12 o for line, msg := range valid {
17 5e70998a 2022-04-12 o r = strings.NewReader(line)
18 5e70998a 2022-04-12 o _, err := Parse(r)
19 5e70998a 2022-04-12 o if err != nil {
20 5e70998a 2022-04-12 o t.Errorf("%s %q: %v", msg, line, err)
21 5e70998a 2022-04-12 o }
22 5e70998a 2022-04-12 o }
23 5e70998a 2022-04-12 o
24 5e70998a 2022-04-12 o invalid := map[string]string{
25 5e70998a 2022-04-12 o "oops:": "missing destination",
26 5e70998a 2022-04-12 o " : asdfhjkl": "missing recipient",
27 5e70998a 2022-04-12 o ":": "missing recipient and destination",
28 5e70998a 2022-04-12 o "::: alex@example.com": "too many colons",
29 5e70998a 2022-04-12 o "1 2 3 4 5": "too many fields",
30 5e70998a 2022-04-12 o }
31 5e70998a 2022-04-12 o for line, problem := range invalid {
32 5e70998a 2022-04-12 o r = strings.NewReader(line)
33 5e70998a 2022-04-12 o _, err := Parse(r)
34 5e70998a 2022-04-12 o if err == nil {
35 5e70998a 2022-04-12 o t.Errorf("no error parsing %q (%s)", line, problem)
36 5e70998a 2022-04-12 o }
37 5e70998a 2022-04-12 o }
38 5e70998a 2022-04-12 o }