github.com/greenboxal/deis@v1.12.1/client/controller/client/client_test.go (about)

     1  package client
     2  
     3  import (
     4  	"io/ioutil"
     5  	"net/url"
     6  	"os"
     7  	"path"
     8  	"testing"
     9  )
    10  
    11  const sFile string = `{"username":"t","ssl_verify":false,"controller":"http://d.t","token":"a","response_limit": 50}`
    12  
    13  func createTempProfile(contents string) error {
    14  	name, err := ioutil.TempDir("", "client")
    15  
    16  	if err != nil {
    17  		return err
    18  	}
    19  
    20  	os.Unsetenv("DEIS_PROFILE")
    21  	os.Setenv("HOME", name)
    22  	folder := path.Join(name, "/.deis/")
    23  	if err = os.Mkdir(folder, 0755); err != nil {
    24  		return err
    25  	}
    26  
    27  	if err = ioutil.WriteFile(path.Join(folder, "client.json"), []byte(contents), 0775); err != nil {
    28  		return err
    29  	}
    30  
    31  	return nil
    32  }
    33  
    34  func TestLoadSave(t *testing.T) {
    35  	if err := createTempProfile(sFile); err != nil {
    36  		t.Fatal(err)
    37  	}
    38  
    39  	client, err := New()
    40  
    41  	if err != nil {
    42  		t.Fatal(err)
    43  	}
    44  
    45  	expectedB := false
    46  	if client.SSLVerify != expectedB {
    47  		t.Errorf("Expected %t, Got %t", expectedB, client.SSLVerify)
    48  	}
    49  
    50  	expected := "a"
    51  	if client.Token != expected {
    52  		t.Errorf("Expected %s, Got %s", expected, client.Token)
    53  	}
    54  
    55  	expected = "t"
    56  	if client.Username != expected {
    57  		t.Errorf("Expected %s, Got %s", expected, client.Username)
    58  	}
    59  
    60  	expected = "http://d.t"
    61  	if client.ControllerURL.String() != expected {
    62  		t.Errorf("Expected %s, Got %s", expected, client.ControllerURL.String())
    63  	}
    64  
    65  	expectedI := 50
    66  	if client.ResponseLimit != expectedI {
    67  		t.Errorf("Expected %d, Got %d", expectedI, client.ResponseLimit)
    68  	}
    69  
    70  	client.SSLVerify = true
    71  	client.Token = "b"
    72  	client.Username = "c"
    73  	client.ResponseLimit = 0
    74  
    75  	u, err := url.Parse("http://deis.test")
    76  
    77  	if err != nil {
    78  		t.Fatal(err)
    79  	}
    80  
    81  	client.ControllerURL = *u
    82  
    83  	if err = client.Save(); err != nil {
    84  		t.Fatal(err)
    85  	}
    86  
    87  	client, err = New()
    88  
    89  	expectedB = true
    90  	if client.SSLVerify != expectedB {
    91  		t.Errorf("Expected %t, Got %t", expectedB, client.SSLVerify)
    92  	}
    93  
    94  	expected = "b"
    95  	if client.Token != expected {
    96  		t.Errorf("Expected %s, Got %s", expected, client.Token)
    97  	}
    98  
    99  	expected = "c"
   100  	if client.Username != expected {
   101  		t.Errorf("Expected %s, Got %s", expected, client.Username)
   102  	}
   103  
   104  	expected = "http://deis.test"
   105  	if client.ControllerURL.String() != expected {
   106  		t.Errorf("Expected %s, Got %s", expected, client.ControllerURL.String())
   107  	}
   108  
   109  	expectedI = 100
   110  	if client.ResponseLimit != expectedI {
   111  		t.Errorf("Expected %d, Got %d", expectedI, client.ResponseLimit)
   112  	}
   113  }
   114  
   115  func TestDeleteSettings(t *testing.T) {
   116  	if err := createTempProfile(""); err != nil {
   117  		t.Fatal(err)
   118  	}
   119  
   120  	if err := Delete(); err != nil {
   121  		t.Fatal(err)
   122  	}
   123  
   124  	file := locateSettingsFile()
   125  
   126  	if _, err := os.Stat(file); err == nil {
   127  		t.Errorf("File %s exists, supposed to have been deleted.", file)
   128  	}
   129  }