buildargs_test.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package dockerfile
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func strPtr(source string) *string {
  7. return &source
  8. }
  9. func TestGetAllAllowed(t *testing.T) {
  10. buildArgs := newBuildArgs(map[string]*string{
  11. "ArgNotUsedInDockerfile": strPtr("fromopt1"),
  12. "ArgOverriddenByOptions": strPtr("fromopt2"),
  13. "ArgNoDefaultInDockerfileFromOptions": strPtr("fromopt3"),
  14. "HTTP_PROXY": strPtr("theproxy"),
  15. })
  16. buildArgs.AddMetaArg("ArgFromMeta", strPtr("frommeta1"))
  17. buildArgs.AddMetaArg("ArgFromMetaOverriden", strPtr("frommeta2"))
  18. buildArgs.AddMetaArg("ArgFromMetaNotUsed", strPtr("frommeta3"))
  19. buildArgs.AddArg("ArgOverriddenByOptions", strPtr("fromdockerfile2"))
  20. buildArgs.AddArg("ArgWithDefaultInDockerfile", strPtr("fromdockerfile1"))
  21. buildArgs.AddArg("ArgNoDefaultInDockerfile", nil)
  22. buildArgs.AddArg("ArgNoDefaultInDockerfileFromOptions", nil)
  23. buildArgs.AddArg("ArgFromMeta", nil)
  24. buildArgs.AddArg("ArgFromMetaOverriden", strPtr("fromdockerfile3"))
  25. all := buildArgs.GetAllAllowed()
  26. expected := map[string]string{
  27. "HTTP_PROXY": "theproxy",
  28. "ArgOverriddenByOptions": "fromopt2",
  29. "ArgWithDefaultInDockerfile": "fromdockerfile1",
  30. "ArgNoDefaultInDockerfileFromOptions": "fromopt3",
  31. "ArgFromMeta": "frommeta1",
  32. "ArgFromMetaOverriden": "fromdockerfile3",
  33. }
  34. assert.Equal(t, expected, all)
  35. }
  36. func TestGetAllMeta(t *testing.T) {
  37. buildArgs := newBuildArgs(map[string]*string{
  38. "ArgNotUsedInDockerfile": strPtr("fromopt1"),
  39. "ArgOverriddenByOptions": strPtr("fromopt2"),
  40. "ArgNoDefaultInMetaFromOptions": strPtr("fromopt3"),
  41. "HTTP_PROXY": strPtr("theproxy"),
  42. })
  43. buildArgs.AddMetaArg("ArgFromMeta", strPtr("frommeta1"))
  44. buildArgs.AddMetaArg("ArgOverriddenByOptions", strPtr("frommeta2"))
  45. buildArgs.AddMetaArg("ArgNoDefaultInMetaFromOptions", nil)
  46. all := buildArgs.GetAllMeta()
  47. expected := map[string]string{
  48. "HTTP_PROXY": "theproxy",
  49. "ArgFromMeta": "frommeta1",
  50. "ArgOverriddenByOptions": "fromopt2",
  51. "ArgNoDefaultInMetaFromOptions": "fromopt3",
  52. }
  53. assert.Equal(t, expected, all)
  54. }