1package git23import (4 "testing"56 "github.com/matryer/is"7)89func TestParseAttr(t *testing.T) {10 cases := []struct {11 in string12 file string13 want []Attribute14 }{15 {16 in: "org/example/MyClass.java: diff: java\n",17 file: "org/example/MyClass.java",18 want: []Attribute{19 {20 Name: "diff",21 Value: "java",22 },23 },24 },25 {26 in: `org/example/MyClass.java: crlf: unset27org/example/MyClass.java: diff: java28org/example/MyClass.java: myAttr: set`,29 file: "org/example/MyClass.java",30 want: []Attribute{31 {32 Name: "crlf",33 Value: "unset",34 },35 {36 Name: "diff",37 Value: "java",38 },39 {40 Name: "myAttr",41 Value: "set",42 },43 },44 },45 {46 in: `org/example/MyClass.java: diff: java47org/example/MyClass.java: myAttr: set`,48 file: "org/example/MyClass.java",49 want: []Attribute{50 {51 Name: "diff",52 Value: "java",53 },54 {55 Name: "myAttr",56 Value: "set",57 },58 },59 },60 {61 in: `README: caveat: unspecified`,62 file: "README",63 want: []Attribute{64 {65 Name: "caveat",66 Value: "unspecified",67 },68 },69 },70 {71 in: "",72 file: "foo",73 want: []Attribute{},74 },75 {76 in: "\n",77 file: "foo",78 want: []Attribute{},79 },80 }8182 is := is.New(t)83 for _, c := range cases {84 attrs := parseAttributes(c.file, []byte(c.in))85 if len(attrs) != len(c.want) {86 t.Fatalf("parseAttributes(%q, %q) = %v, want %v", c.file, c.in, attrs, c.want)87 }8889 is.Equal(attrs, c.want)90 }91}