github.com/ByteTerrace/packer@v1.3.2/packer/testing.go (about)

     1  package packer
     2  
     3  import (
     4  	"bytes"
     5  	"io/ioutil"
     6  	"testing"
     7  )
     8  
     9  func TestCoreConfig(t *testing.T) *CoreConfig {
    10  	// Create some test components
    11  	components := ComponentFinder{
    12  		Builder: func(n string) (Builder, error) {
    13  			if n != "test" {
    14  				return nil, nil
    15  			}
    16  
    17  			return &MockBuilder{}, nil
    18  		},
    19  	}
    20  
    21  	return &CoreConfig{
    22  		Components: components,
    23  	}
    24  }
    25  
    26  func TestCore(t *testing.T, c *CoreConfig) *Core {
    27  	core, err := NewCore(c)
    28  	if err != nil {
    29  		t.Fatalf("err: %s", err)
    30  	}
    31  
    32  	return core
    33  }
    34  
    35  func TestUi(t *testing.T) Ui {
    36  	var buf bytes.Buffer
    37  	return &BasicUi{
    38  		Reader:      &buf,
    39  		Writer:      ioutil.Discard,
    40  		ErrorWriter: ioutil.Discard,
    41  	}
    42  }
    43  
    44  // TestBuilder sets the builder with the name n to the component finder
    45  // and returns the mock.
    46  func TestBuilder(t *testing.T, c *CoreConfig, n string) *MockBuilder {
    47  	var b MockBuilder
    48  
    49  	c.Components.Builder = func(actual string) (Builder, error) {
    50  		if actual != n {
    51  			return nil, nil
    52  		}
    53  
    54  		return &b, nil
    55  	}
    56  
    57  	return &b
    58  }
    59  
    60  // TestProvisioner sets the prov. with the name n to the component finder
    61  // and returns the mock.
    62  func TestProvisioner(t *testing.T, c *CoreConfig, n string) *MockProvisioner {
    63  	var b MockProvisioner
    64  
    65  	c.Components.Provisioner = func(actual string) (Provisioner, error) {
    66  		if actual != n {
    67  			return nil, nil
    68  		}
    69  
    70  		return &b, nil
    71  	}
    72  
    73  	return &b
    74  }
    75  
    76  // TestPostProcessor sets the prov. with the name n to the component finder
    77  // and returns the mock.
    78  func TestPostProcessor(t *testing.T, c *CoreConfig, n string) *MockPostProcessor {
    79  	var b MockPostProcessor
    80  
    81  	c.Components.PostProcessor = func(actual string) (PostProcessor, error) {
    82  		if actual != n {
    83  			return nil, nil
    84  		}
    85  
    86  		return &b, nil
    87  	}
    88  
    89  	return &b
    90  }