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  }