github.com/blystad/deis@v0.11.0/controller/tests/controller_test.go (about)

     1  package tests
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/deis/deis/tests/dockercli"
     8  	"github.com/deis/deis/tests/etcdutils"
     9  	"github.com/deis/deis/tests/mock"
    10  	"github.com/deis/deis/tests/utils"
    11  )
    12  
    13  func runDeisControllerTest(
    14  	t *testing.T, testID string, etcdPort string, servicePort string) {
    15  	var err error
    16  	cli, stdout, stdoutPipe := dockercli.GetNewClient()
    17  	go func() {
    18  		err = dockercli.RunContainer(cli,
    19  			"--name", "deis-controller-"+testID,
    20  			"--rm",
    21  			"-p", servicePort+":8000",
    22  			"-e", "PUBLISH="+servicePort,
    23  			"-e", "HOST="+utils.GetHostIPAddress(),
    24  			"-e", "ETCD_PORT="+etcdPort,
    25  			"deis/controller:"+testID)
    26  	}()
    27  	dockercli.PrintToStdout(t, stdout, stdoutPipe, "Booting")
    28  	if err != nil {
    29  		t.Fatal(err)
    30  	}
    31  }
    32  
    33  func TestController(t *testing.T) {
    34  	setkeys := []string{
    35  		"/deis/registry/protocol",
    36  		"deis/registry/host",
    37  		"/deis/registry/port",
    38  		"/deis/cache/host",
    39  		"/deis/cache/port",
    40  	}
    41  	setdir := []string{
    42  		"/deis/controller",
    43  		"/deis/cache",
    44  		"/deis/database",
    45  		"/deis/registry",
    46  		"/deis/domains",
    47  	}
    48  	testID := utils.NewID()
    49  	err := dockercli.BuildImage(t, "../", "deis/controller:"+testID)
    50  	if err != nil {
    51  		t.Fatal(err)
    52  	}
    53  	etcdPort := utils.GetRandomPort()
    54  	dockercli.RunEtcdTest(t, testID, etcdPort)
    55  	handler := etcdutils.InitetcdValues(setdir, setkeys, etcdPort)
    56  	etcdutils.Publishvalues(t, handler)
    57  	dbPort := utils.GetRandomPort()
    58  	mock.RunMockDatabase(t, testID, etcdPort, dbPort)
    59  	servicePort := utils.GetRandomPort()
    60  	fmt.Printf("--- Test deis-controller-%s at port %s\n", testID, servicePort)
    61  	runDeisControllerTest(t, testID, etcdPort, servicePort)
    62  	dockercli.DeisServiceTest(
    63  		t, "deis-controller-"+testID, servicePort, "http")
    64  	dockercli.ClearTestSession(t, testID)
    65  }