github.com/rliebz/terraform@v0.9.0-beta2.0.20170307220345-5d894e4ffda7/command/hook_ui_test.go (about) 1 package command 2 3 import ( 4 "fmt" 5 "testing" 6 ) 7 8 func TestTruncateId(t *testing.T) { 9 testCases := []struct { 10 Input string 11 Expected string 12 MaxLen int 13 }{ 14 { 15 Input: "Hello world", 16 Expected: "H...d", 17 MaxLen: 3, 18 }, 19 { 20 Input: "Hello world", 21 Expected: "H...d", 22 MaxLen: 5, 23 }, 24 { 25 Input: "Hello world", 26 Expected: "He...d", 27 MaxLen: 6, 28 }, 29 { 30 Input: "Hello world", 31 Expected: "He...ld", 32 MaxLen: 7, 33 }, 34 { 35 Input: "Hello world", 36 Expected: "Hel...ld", 37 MaxLen: 8, 38 }, 39 { 40 Input: "Hello world", 41 Expected: "Hel...rld", 42 MaxLen: 9, 43 }, 44 { 45 Input: "Hello world", 46 Expected: "Hell...rld", 47 MaxLen: 10, 48 }, 49 { 50 Input: "Hello world", 51 Expected: "Hello world", 52 MaxLen: 11, 53 }, 54 { 55 Input: "Hello world", 56 Expected: "Hello world", 57 MaxLen: 12, 58 }, 59 } 60 for i, tc := range testCases { 61 testName := fmt.Sprintf("%d", i) 62 t.Run(testName, func(t *testing.T) { 63 out := truncateId(tc.Input, tc.MaxLen) 64 if out != tc.Expected { 65 t.Fatalf("Expected %q to be shortened to %d as %q (given: %q)", 66 tc.Input, tc.MaxLen, tc.Expected, out) 67 } 68 }) 69 } 70 }