github.com/aavshr/aws-sdk-go@v1.41.3/internal/ini/ini_lexer_test.go (about) 1 //go:build go1.7 2 // +build go1.7 3 4 package ini 5 6 import ( 7 "bytes" 8 "io" 9 "reflect" 10 "testing" 11 ) 12 13 func TestTokenize(t *testing.T) { 14 numberToken := newToken(TokenLit, []rune("123"), IntegerType) 15 numberToken.base = 10 16 cases := []struct { 17 r io.Reader 18 expectedTokens []Token 19 expectedError bool 20 }{ 21 { 22 r: bytes.NewBuffer([]byte(`x = 123`)), 23 expectedTokens: []Token{ 24 newToken(TokenLit, []rune("x"), StringType), 25 newToken(TokenWS, []rune(" "), NoneType), 26 newToken(TokenOp, []rune("="), NoneType), 27 newToken(TokenWS, []rune(" "), NoneType), 28 numberToken, 29 }, 30 }, 31 { 32 r: bytes.NewBuffer([]byte(`[ foo ]`)), 33 expectedTokens: []Token{ 34 newToken(TokenSep, []rune("["), NoneType), 35 newToken(TokenWS, []rune(" "), NoneType), 36 newToken(TokenLit, []rune("foo"), StringType), 37 newToken(TokenWS, []rune(" "), NoneType), 38 newToken(TokenSep, []rune("]"), NoneType), 39 }, 40 }, 41 } 42 43 for _, c := range cases { 44 lex := iniLexer{} 45 tokens, err := lex.Tokenize(c.r) 46 47 if e, a := c.expectedError, err != nil; e != a { 48 t.Errorf("expected %t, but received %t", e, a) 49 } 50 51 if e, a := c.expectedTokens, tokens; !reflect.DeepEqual(e, a) { 52 t.Errorf("expected %v, but received %v", e, a) 53 } 54 } 55 }