github.com/StackPointCloud/packer@v0.10.2-0.20180716202532-b28098e0f79b/post-processor/docker-push/post-processor_test.go (about) 1 package dockerpush 2 3 import ( 4 "bytes" 5 "testing" 6 7 "github.com/hashicorp/packer/builder/docker" 8 "github.com/hashicorp/packer/packer" 9 "github.com/hashicorp/packer/post-processor/docker-import" 10 ) 11 12 func testConfig() map[string]interface{} { 13 return map[string]interface{}{} 14 } 15 16 func testPP(t *testing.T) *PostProcessor { 17 var p PostProcessor 18 if err := p.Configure(testConfig()); err != nil { 19 t.Fatalf("err: %s", err) 20 } 21 22 return &p 23 } 24 25 func testUi() *packer.BasicUi { 26 return &packer.BasicUi{ 27 Reader: new(bytes.Buffer), 28 Writer: new(bytes.Buffer), 29 } 30 } 31 32 func TestPostProcessor_ImplementsPostProcessor(t *testing.T) { 33 var _ packer.PostProcessor = new(PostProcessor) 34 } 35 36 func TestPostProcessor_PostProcess(t *testing.T) { 37 driver := &docker.MockDriver{} 38 p := &PostProcessor{Driver: driver} 39 artifact := &packer.MockArtifact{ 40 BuilderIdValue: dockerimport.BuilderId, 41 IdValue: "foo/bar", 42 } 43 44 result, keep, err := p.PostProcess(testUi(), artifact) 45 if result != nil { 46 t.Fatal("should be nil") 47 } 48 if keep { 49 t.Fatal("should not keep") 50 } 51 if err != nil { 52 t.Fatalf("err: %s", err) 53 } 54 55 if !driver.PushCalled { 56 t.Fatal("should call push") 57 } 58 if driver.PushName != "foo/bar" { 59 t.Fatal("bad name") 60 } 61 } 62 63 func TestPostProcessor_PostProcess_portInName(t *testing.T) { 64 driver := &docker.MockDriver{} 65 p := &PostProcessor{Driver: driver} 66 artifact := &packer.MockArtifact{ 67 BuilderIdValue: dockerimport.BuilderId, 68 IdValue: "localhost:5000/foo/bar", 69 } 70 71 result, keep, err := p.PostProcess(testUi(), artifact) 72 if result != nil { 73 t.Fatal("should be nil") 74 } 75 if keep { 76 t.Fatal("should not keep") 77 } 78 if err != nil { 79 t.Fatalf("err: %s", err) 80 } 81 82 if !driver.PushCalled { 83 t.Fatal("should call push") 84 } 85 if driver.PushName != "localhost:5000/foo/bar" { 86 t.Fatal("bad name") 87 } 88 } 89 90 func TestPostProcessor_PostProcess_tags(t *testing.T) { 91 driver := &docker.MockDriver{} 92 p := &PostProcessor{Driver: driver} 93 artifact := &packer.MockArtifact{ 94 BuilderIdValue: dockerimport.BuilderId, 95 IdValue: "hashicorp/ubuntu:precise", 96 } 97 98 result, keep, err := p.PostProcess(testUi(), artifact) 99 if result != nil { 100 t.Fatal("should be nil") 101 } 102 if keep { 103 t.Fatal("should not keep") 104 } 105 if err != nil { 106 t.Fatalf("err: %s", err) 107 } 108 109 if !driver.PushCalled { 110 t.Fatal("should call push") 111 } 112 if driver.PushName != "hashicorp/ubuntu:precise" { 113 t.Fatalf("bad name: %s", driver.PushName) 114 } 115 }