fillstruct_test.vim 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. func! Test_fillstruct() abort
  2. try
  3. let l:tmp = gotest#write_file('a/a.go', [
  4. \ 'package a',
  5. \ 'import "net/mail"',
  6. \ "var addr = mail.\x1fAddress{}"])
  7. call go#fillstruct#FillStruct()
  8. call gotest#assert_buffer(1, [
  9. \ 'var addr = mail.Address{',
  10. \ '\tName: "",',
  11. \ '\tAddress: "",',
  12. \ '}'])
  13. finally
  14. call delete(l:tmp, 'rf')
  15. endtry
  16. endfunc
  17. func! Test_fillstruct_line() abort
  18. try
  19. let l:tmp = gotest#write_file('a/a.go', [
  20. \ 'package a',
  21. \ 'import "net/mail"',
  22. \ "\x1f" . 'var addr = mail.Address{}'])
  23. call go#fillstruct#FillStruct()
  24. call gotest#assert_buffer(1, [
  25. \ 'var addr = mail.Address{',
  26. \ '\tName: "",',
  27. \ '\tAddress: "",',
  28. \ '}'])
  29. finally
  30. call delete(l:tmp, 'rf')
  31. endtry
  32. endfunc
  33. func! Test_fillstruct_two_line() abort
  34. try
  35. let l:tmp = gotest#write_file('a/a.go', [
  36. \ 'package a',
  37. \ 'import (',
  38. \ '"fmt"',
  39. \ '"net/mail"',
  40. \ ')',
  41. \ "\x1f" . 'func x() { fmt.Println(mail.Address{}, mail.Address{}) }'])
  42. call go#fillstruct#FillStruct()
  43. call gotest#assert_buffer(1, [
  44. \ 'import (',
  45. \ '"fmt"',
  46. \ '"net/mail"',
  47. \ ')',
  48. \ 'func x() { fmt.Println(mail.Address{',
  49. \ '\tName: "",',
  50. \ '\tAddress: "",',
  51. \ '}, mail.Address{',
  52. \ '\tName: "",',
  53. \ '\tAddress: "",',
  54. \ '}) }'])
  55. finally
  56. "call delete(l:tmp, 'rf')
  57. endtry
  58. endfunc
  59. func! Test_fillstruct_two_cursor() abort
  60. try
  61. let l:tmp = gotest#write_file('a/a.go', [
  62. \ 'package a',
  63. \ 'import (',
  64. \ '"fmt"',
  65. \ '"net/mail"',
  66. \ ')',
  67. \ "func x() { fmt.Println(mail.Address{}, mail.Ad\x1fdress{}) }"])
  68. call go#fillstruct#FillStruct()
  69. call gotest#assert_buffer(1, [
  70. \ 'import (',
  71. \ '"fmt"',
  72. \ '"net/mail"',
  73. \ ')',
  74. \ 'func x() { fmt.Println(mail.Address{}, mail.Address{',
  75. \ '\tName: "",',
  76. \ '\tAddress: "",',
  77. \ '}) }'])
  78. finally
  79. call delete(l:tmp, 'rf')
  80. endtry
  81. endfunc
  82. " vim: sw=2 ts=2 et