github.com/nsqio/nsq@v1.3.0/apps/nsq_to_http/nsq_to_http_test.go (about) 1 // This is an NSQ client that reads the specified topic/channel 2 // and performs HTTP requests (GET/POST) to the specified endpoints 3 4 package main 5 6 import ( 7 "reflect" 8 "testing" 9 ) 10 11 func TestParseCustomHeaders(t *testing.T) { 12 type args struct { 13 strs []string 14 } 15 tests := []struct { 16 name string 17 args args 18 want map[string]string 19 wantErr bool 20 }{ 21 { 22 "Valid Custom Headers", 23 args{[]string{"header1: value1", "header2:value2", "header3:value3", "header4:value4"}}, 24 map[string]string{"header1": "value1", "header2": "value2", "header3": "value3", "header4": "value4"}, 25 false, 26 }, 27 { 28 "Invalid Custom Headers where key is present but no value", 29 args{[]string{"header1:", "header2:value2", "header3: value3", "header4:value4"}}, 30 nil, 31 true, 32 }, 33 { 34 "Invalid Custom Headers where key is not present but value is present", 35 args{[]string{"header1: value1", ": value2", "header3:value3", "header4:value4"}}, 36 nil, 37 true, 38 }, 39 { 40 "Invalid Custom Headers where key and value are not present but ':' is specified", 41 args{[]string{"header1:value1", "header2:value2", ":", "header4:value4"}}, 42 nil, 43 true, 44 }, 45 } 46 for _, tt := range tests { 47 t.Run(tt.name, func(t *testing.T) { 48 got, err := parseCustomHeaders(tt.args.strs) 49 if (err != nil) != tt.wantErr { 50 t.Errorf("parseCustomHeaders() error = %v, wantErr %v", err, tt.wantErr) 51 return 52 } 53 if !reflect.DeepEqual(got, tt.want) { 54 t.Errorf("parseCustomHeaders() = %v, want %v", got, tt.want) 55 } 56 }) 57 } 58 }