github.com/andresvia/terraform@v0.6.15-0.20160412045437-d51c75946785/command/get_test.go (about)

     1  package command
     2  
     3  import (
     4  	"os"
     5  	"strings"
     6  	"testing"
     7  
     8  	"github.com/mitchellh/cli"
     9  )
    10  
    11  func TestGet(t *testing.T) {
    12  	ui := new(cli.MockUi)
    13  	c := &GetCommand{
    14  		Meta: Meta{
    15  			ContextOpts: testCtxConfig(testProvider()),
    16  			Ui:          ui,
    17  			dataDir:     tempDir(t),
    18  		},
    19  	}
    20  
    21  	args := []string{
    22  		testFixturePath("get"),
    23  	}
    24  	if code := c.Run(args); code != 0 {
    25  		t.Fatalf("bad: \n%s", ui.ErrorWriter.String())
    26  	}
    27  
    28  	output := ui.OutputWriter.String()
    29  	if !strings.Contains(output, "Get: file://") {
    30  		t.Fatalf("doesn't look like get: %s", output)
    31  	}
    32  	if strings.Contains(output, "(update)") {
    33  		t.Fatalf("doesn't look like get: %s", output)
    34  	}
    35  }
    36  
    37  func TestGet_multipleArgs(t *testing.T) {
    38  	ui := new(cli.MockUi)
    39  	c := &GetCommand{
    40  		Meta: Meta{
    41  			ContextOpts: testCtxConfig(testProvider()),
    42  			Ui:          ui,
    43  			dataDir:     tempDir(t),
    44  		},
    45  	}
    46  
    47  	args := []string{
    48  		"bad",
    49  		"bad",
    50  	}
    51  	if code := c.Run(args); code != 1 {
    52  		t.Fatalf("bad: \n%s", ui.OutputWriter.String())
    53  	}
    54  }
    55  
    56  func TestGet_noArgs(t *testing.T) {
    57  	cwd, err := os.Getwd()
    58  	if err != nil {
    59  		t.Fatalf("err: %s", err)
    60  	}
    61  	if err := os.Chdir(testFixturePath("get")); err != nil {
    62  		t.Fatalf("err: %s", err)
    63  	}
    64  	defer os.Chdir(cwd)
    65  
    66  	ui := new(cli.MockUi)
    67  	c := &GetCommand{
    68  		Meta: Meta{
    69  			ContextOpts: testCtxConfig(testProvider()),
    70  			Ui:          ui,
    71  			dataDir:     tempDir(t),
    72  		},
    73  	}
    74  
    75  	args := []string{}
    76  	if code := c.Run(args); code != 0 {
    77  		t.Fatalf("bad: \n%s", ui.ErrorWriter.String())
    78  	}
    79  
    80  	output := ui.OutputWriter.String()
    81  	if !strings.Contains(output, "Get: file://") {
    82  		t.Fatalf("doesn't look like get: %s", output)
    83  	}
    84  	if strings.Contains(output, "(update)") {
    85  		t.Fatalf("doesn't look like get: %s", output)
    86  	}
    87  }
    88  
    89  func TestGet_update(t *testing.T) {
    90  	ui := new(cli.MockUi)
    91  	c := &GetCommand{
    92  		Meta: Meta{
    93  			ContextOpts: testCtxConfig(testProvider()),
    94  			Ui:          ui,
    95  			dataDir:     tempDir(t),
    96  		},
    97  	}
    98  
    99  	args := []string{
   100  		"-update",
   101  		testFixturePath("get"),
   102  	}
   103  	if code := c.Run(args); code != 0 {
   104  		t.Fatalf("bad: \n%s", ui.ErrorWriter.String())
   105  	}
   106  
   107  	output := ui.OutputWriter.String()
   108  	if !strings.Contains(output, "Get: file://") {
   109  		t.Fatalf("doesn't look like get: %s", output)
   110  	}
   111  	if !strings.Contains(output, "(update)") {
   112  		t.Fatalf("doesn't look like get: %s", output)
   113  	}
   114  }