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  }