You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.9 KiB

  1. import groovy.mock.interceptor.MockFor
  2. import groovy.util.GroovyTestCase
  3. import org.wikimedia.integration.Blubber
  4. class BlubberTestCase extends GroovyTestCase {
  5. private class WorkflowScript {} // Mock for Jenkins Pipeline workflow context
  6. def blubberConfig = ".pipeline/blubber.yaml"
  7. def blubberoidURL = "https://an.example/blubberoid/v1/"
  8. void testGenerateDockerfile() {
  9. def mock = new MockFor(WorkflowScript)
  10. def config = "version: v3\n" +
  11. "base: foo"
  12. mock.demand.readFile { args ->
  13. assert args.file == blubberConfig
  14. config
  15. }
  16. mock.demand.httpRequest { args ->
  17. assert args.httpMode == "POST"
  18. assert args.customHeaders == [[name: "content-type", value: "application/yaml"]]
  19. assert args.requestBody == config
  20. assert args.consoleLogResponseBody == true
  21. assert args.validResponseCodes == "200"
  22. [content: "BASE foo\n"]
  23. }
  24. mock.use {
  25. def blubber = new Blubber(new WorkflowScript(), blubberConfig, blubberoidURL)
  26. def dockerfile = blubber.generateDockerfile("foo")
  27. assert dockerfile == "BASE foo\n"
  28. }
  29. }
  30. void testGetConfigMediaType_yaml() {
  31. def blubber = new Blubber(new WorkflowScript(), blubberConfig, blubberoidURL)
  32. assert blubber.getConfigMediaType() == "application/yaml"
  33. }
  34. void testGetConfigMediaType_yml() {
  35. def blubber = new Blubber(new WorkflowScript(), blubberConfig, blubberoidURL)
  36. assert blubber.getConfigMediaType() == "application/yaml"
  37. }
  38. void testGetConfigMediaType_json() {
  39. def blubber = new Blubber(new WorkflowScript(), ".pipeline/blubber.json", blubberoidURL)
  40. assert blubber.getConfigMediaType() == "application/json"
  41. }
  42. void testGetRequestURL() {
  43. def blubber = new Blubber(new WorkflowScript(), blubberConfig, blubberoidURL)
  44. assert blubber.getRequestURL("foo bar") == "https://an.example/blubberoid/v1/foo+bar"
  45. }
  46. }