32 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
package config
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"reflect"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
var getMapPairsFromStringTest = []struct {
 | 
						|
	in       string
 | 
						|
	expected []string
 | 
						|
	err      error
 | 
						|
}{
 | 
						|
	{"log_statement:all, work_mem:'4GB'", []string{"log_statement:all", "work_mem:'4GB'"}, nil},
 | 
						|
	{`log_statement:none, search_path:'"$user", public'`, []string{"log_statement:none", `search_path:'"$user", public'`}, nil},
 | 
						|
	{`search_path:'"$user"`, nil, fmt.Errorf("unmatched quote starting at position 13")},
 | 
						|
	{"", []string{""}, nil},
 | 
						|
	{",,log_statement:all	,", []string{"", "", "log_statement:all", ""}, nil},
 | 
						|
}
 | 
						|
 | 
						|
func TestGetMapPairsFromString(t *testing.T) {
 | 
						|
	for _, tt := range getMapPairsFromStringTest {
 | 
						|
		got, err := getMapPairsFromString(tt.in)
 | 
						|
		if err != tt.err && ((err == nil || tt.err == nil) || (err.Error() != tt.err.Error())) {
 | 
						|
			t.Errorf("TestGetMapPairsFromString with %s: expected error: %#v, got %#v", tt.in, tt.err, err)
 | 
						|
		}
 | 
						|
		if !reflect.DeepEqual(got, tt.expected) {
 | 
						|
			t.Errorf("TestGetMapPairsFromString with %s: expected %#v, got %#v", tt.in, tt.expected, got)
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |