token_test.go (1796B)
1 package main 2 3 import ( 4 "fmt" 5 "strings" 6 "testing" 7 ) 8 9 func TestTokenParse(t *testing.T) { 10 tokensRaw := `token1 A 11 token2 B 12 token3 C` 13 expected := []token{{name: "A", token: "token1"}, {name: "B", token: "token2"}, {name: "C", token: "token3"}} 14 15 actual, err := parseTokens(strings.NewReader(tokensRaw)) 16 if err != nil { 17 t.Error(err) 18 } 19 20 if len(actual) != 3 { 21 t.Errorf("Expected 3 outputs, got %d", len(actual)) 22 } 23 if fmt.Sprint(actual) != fmt.Sprint(expected) { 24 t.Errorf("Maps mismatch, \nexpected %v,\ngot %v", expected, actual) 25 } 26 } 27 28 func TestTokenParseWithComment(t *testing.T) { 29 tokensRaw := `token1 A 30 token2 B 31 #token3 C` 32 expected := []token{{name: "A", token: "token1"}, {name: "B", token: "token2"}} 33 34 actual, err := parseTokens(strings.NewReader(tokensRaw)) 35 if err != nil { 36 t.Error(err) 37 } 38 39 if len(actual) != 2 { 40 t.Errorf("Expected 2 outputs, got %d", len(actual)) 41 } 42 if fmt.Sprint(actual) != fmt.Sprint(expected) { 43 t.Errorf("Maps mismatch, \nexpected %v,\ngot %v", expected, actual) 44 } 45 } 46 47 func TestTokenParseWithConfig(t *testing.T) { 48 tokensRaw := `token1 A onlyIncome` 49 expected := []token{{name: "A", token: "token1", config: config{onlyIncome: true}}} 50 51 actual, err := parseTokens(strings.NewReader(tokensRaw)) 52 if err != nil { 53 t.Error(err) 54 } 55 56 if fmt.Sprint(actual) != fmt.Sprint(expected) { 57 t.Errorf("Maps mismatch, \nexpected %v,\ngot %v", expected, actual) 58 } 59 } 60 61 func TestTokenParseWithDifferentConfig(t *testing.T) { 62 tokensRaw := `token1 A banana` 63 expected := []token{{name: "A", token: "token1", config: config{onlyIncome: false}}} 64 65 actual, err := parseTokens(strings.NewReader(tokensRaw)) 66 if err != nil { 67 t.Error(err) 68 } 69 70 if fmt.Sprint(actual) != fmt.Sprint(expected) { 71 t.Errorf("Maps mismatch, \nexpected %v,\ngot %v", expected, actual) 72 } 73 }