utils.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package cstest
  2. import (
  3. "fmt"
  4. "io/ioutil"
  5. "os"
  6. "testing"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. func Copy(sourceFile string, destinationFile string) error {
  10. input, err := ioutil.ReadFile(sourceFile)
  11. if err != nil {
  12. return err
  13. }
  14. err = ioutil.WriteFile(destinationFile, input, 0644)
  15. if err != nil {
  16. return err
  17. }
  18. return nil
  19. }
  20. func CopyDir(src string, dest string) error {
  21. if dest[:len(src)] == src {
  22. return fmt.Errorf("Cannot copy a folder into the folder itself!")
  23. }
  24. f, err := os.Open(src)
  25. if err != nil {
  26. return err
  27. }
  28. file, err := f.Stat()
  29. if err != nil {
  30. return err
  31. }
  32. if !file.IsDir() {
  33. return fmt.Errorf("Source " + file.Name() + " is not a directory!")
  34. }
  35. err = os.MkdirAll(dest, 0755)
  36. if err != nil {
  37. return err
  38. }
  39. files, err := ioutil.ReadDir(src)
  40. if err != nil {
  41. return err
  42. }
  43. for _, f := range files {
  44. if f.IsDir() {
  45. err = CopyDir(src+"/"+f.Name(), dest+"/"+f.Name())
  46. if err != nil {
  47. return err
  48. }
  49. }
  50. if !f.IsDir() {
  51. content, err := ioutil.ReadFile(src + "/" + f.Name())
  52. if err != nil {
  53. return err
  54. }
  55. err = ioutil.WriteFile(dest+"/"+f.Name(), content, 0755)
  56. if err != nil {
  57. return err
  58. }
  59. }
  60. }
  61. return nil
  62. }
  63. func AssertErrorContains(t *testing.T, err error, expectedErr string) {
  64. if expectedErr == "" {
  65. if err != nil {
  66. t.Fatalf("Unexpected error: %s", err)
  67. }
  68. assert.Equal(t, err, nil)
  69. return
  70. }
  71. if err == nil {
  72. t.Fatalf("Expected '%s', got nil", expectedErr)
  73. }
  74. assert.Contains(t, err.Error(), expectedErr)
  75. }