github.com/Tyktechnologies/tyk@v2.9.5+incompatible/regexp/keybuilder_test.go (about) 1 package regexp 2 3 import ( 4 "fmt" 5 "testing" 6 ) 7 8 var tStr1 = "aαa⏰𐌈" 9 var tStr2 = "bβb⏳𐌏" 10 11 func TestKeyImmutabilityReset(t *testing.T) { 12 kb := keyBuilder{} 13 14 kb.AppendString(tStr1) 15 k := kb.Key() 16 17 kb.Reset() 18 if k != tStr1 { 19 t.Errorf("key should remains %v, got %v", tStr1, k) 20 } 21 } 22 23 func TestKeyImmutabilityChangeBuilderState(t *testing.T) { 24 kb := keyBuilder{} 25 26 kb.AppendString(tStr1) 27 k := kb.Key() 28 29 kb.AppendString(tStr2) 30 if k != tStr1 { 31 t.Errorf("key should remains %v, got %v", tStr1, k) 32 } 33 } 34 35 func TestAppendString(t *testing.T) { 36 kb := keyBuilder{} 37 38 kb.AppendString(tStr1).AppendString(tStr2) 39 nsKey := kb.UnsafeKey() 40 key := kb.Key() 41 42 exp := tStr1 + tStr2 43 if key != exp || nsKey != exp { 44 t.Errorf("expect to got %v, got %v and %v", exp, key, nsKey) 45 } 46 } 47 48 func TestAppendBytes(t *testing.T) { 49 kb := keyBuilder{} 50 51 kb.AppendString(tStr1).AppendBytes([]byte(tStr2)) 52 nsKey := kb.UnsafeKey() 53 key := kb.Key() 54 55 exp := tStr1 + tStr2 56 if key != exp || nsKey != exp { 57 t.Errorf("expect to got %v, got %v and %v", exp, key, nsKey) 58 } 59 } 60 61 func TestAppendInt(t *testing.T) { 62 kb := keyBuilder{} 63 64 kb.AppendString(tStr1).AppendInt(123) 65 nsKey := kb.UnsafeKey() 66 key := kb.Key() 67 68 exp := tStr1 + "123" 69 if key != exp || nsKey != exp { 70 t.Errorf("expect to got %v, got %v and %v", exp, key, nsKey) 71 } 72 } 73 74 func TestWrite(t *testing.T) { 75 kb := keyBuilder{} 76 77 b := []byte(tStr2) 78 n, err := kb.AppendString(tStr1).Write(b) 79 80 if err != nil { 81 t.Errorf("Write should always pass without error, got %v", err) 82 } 83 84 if n != len(b) { 85 t.Errorf("Write should always return length of byte slice argument. Expected %v, got %v", len(b), n) 86 } 87 88 nsKey := kb.UnsafeKey() 89 key := kb.Key() 90 91 exp := tStr1 + tStr2 92 if key != exp || nsKey != exp { 93 t.Errorf("expect to got %v, got %v and %v", exp, key, nsKey) 94 } 95 } 96 97 func TestAppendf(t *testing.T) { 98 kb := keyBuilder{} 99 100 f := func(s string) string { return s } 101 102 kb.AppendString(tStr1).Appendf("%p", f) 103 nsKey := kb.UnsafeKey() 104 key := kb.Key() 105 106 exp := tStr1 + fmt.Sprintf("%p", f) 107 if key != exp || nsKey != exp { 108 t.Errorf("expect to got %v, got %v and %v", exp, key, nsKey) 109 } 110 }