github.com/diptanu/nomad@v0.5.7-0.20170516172507-d72e86cbe3d9/helper/funcs_test.go (about)

     1  package helper
     2  
     3  import (
     4  	"reflect"
     5  	"sort"
     6  	"testing"
     7  )
     8  
     9  func TestSliceStringIsSubset(t *testing.T) {
    10  	l := []string{"a", "b", "c"}
    11  	s := []string{"d"}
    12  
    13  	sub, offending := SliceStringIsSubset(l, l[:1])
    14  	if !sub || len(offending) != 0 {
    15  		t.Fatalf("bad %v %v", sub, offending)
    16  	}
    17  
    18  	sub, offending = SliceStringIsSubset(l, s)
    19  	if sub || len(offending) == 0 || offending[0] != "d" {
    20  		t.Fatalf("bad %v %v", sub, offending)
    21  	}
    22  }
    23  
    24  func TestMapStringStringSliceValueSet(t *testing.T) {
    25  	m := map[string][]string{
    26  		"foo": []string{"1", "2"},
    27  		"bar": []string{"3"},
    28  		"baz": nil,
    29  	}
    30  
    31  	act := MapStringStringSliceValueSet(m)
    32  	exp := []string{"1", "2", "3"}
    33  	sort.Strings(act)
    34  	if !reflect.DeepEqual(act, exp) {
    35  		t.Fatalf("Bad; got %v; want %v", act, exp)
    36  	}
    37  }
    38  
    39  func TestClearEnvVar(t *testing.T) {
    40  	type testCase struct {
    41  		input    string
    42  		expected string
    43  	}
    44  	cases := []testCase{
    45  		{"asdf", "asdf"},
    46  		{"ASDF", "ASDF"},
    47  		{"0sdf", "_sdf"},
    48  		{"asd0", "asd0"},
    49  		{"_asd", "_asd"},
    50  		{"-asd", "_asd"},
    51  		{"A~!@#$%^&*()_+-={}[]|\\;:'\"<,>.?/Z", "A_______________________________Z"},
    52  		{"A\U0001f4a9Z", "A____Z"},
    53  	}
    54  	for _, c := range cases {
    55  		if output := CleanEnvVar(c.input, '_'); output != c.expected {
    56  			t.Errorf("CleanEnvVar(%q, '_') -> %q != %q", c.input, output, c.expected)
    57  		}
    58  	}
    59  }
    60  
    61  func BenchmarkCleanEnvVar(b *testing.B) {
    62  	in := "NOMAD_ADDR_redis-cache"
    63  	replacement := byte('_')
    64  	b.SetBytes(int64(len(in)))
    65  	b.ReportAllocs()
    66  	b.ResetTimer()
    67  	for i := 0; i < b.N; i++ {
    68  		CleanEnvVar(in, replacement)
    69  	}
    70  }