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