github.com/blystad/deis@v0.11.0/router/tests/router_test.go (about)

     1  package tests
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/deis/deis/tests/dockercli"
     9  	"github.com/deis/deis/tests/etcdutils"
    10  	"github.com/deis/deis/tests/utils"
    11  )
    12  
    13  func runDeisRouterTest(
    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-router-"+testID,
    20  			"--rm",
    21  			"-p", servicePort+":80",
    22  			"-p", "2222:2222",
    23  			"-e", "PUBLISH="+servicePort,
    24  			"-e", "HOST="+utils.GetHostIPAddress(),
    25  			"-e", "ETCD_PORT="+etcdPort,
    26  			"deis/router:"+testID)
    27  	}()
    28  	dockercli.PrintToStdout(t, stdout, stdoutPipe, "deis-router running")
    29  	if err != nil {
    30  		t.Fatal(err)
    31  	}
    32  }
    33  
    34  func TestRouter(t *testing.T) {
    35  	setkeys := []string{
    36  		"deis/controller/host",
    37  		"/deis/controller/port",
    38  		"/deis/builder/host",
    39  		"/deis/builder/port",
    40  	}
    41  	setdir := []string{
    42  		"/deis/controller",
    43  		"/deis/router",
    44  		"/deis/database",
    45  		"/deis/services",
    46  		"/deis/builder",
    47  		"/deis/domains",
    48  	}
    49  	testID := utils.NewID()
    50  	err := dockercli.BuildImage(t, "../", "deis/router:"+testID)
    51  	if err != nil {
    52  		t.Fatal(err)
    53  	}
    54  	etcdPort := utils.GetRandomPort()
    55  	dockercli.RunEtcdTest(t, testID, etcdPort)
    56  	handler := etcdutils.InitetcdValues(setdir, setkeys, etcdPort)
    57  	etcdutils.Publishvalues(t, handler)
    58  	servicePort := utils.GetRandomPort()
    59  	fmt.Printf("--- Test deis-router-%s at port %s\n", testID, servicePort)
    60  	runDeisRouterTest(t, testID, etcdPort, servicePort)
    61  	// TODO: nginx needs a few seconds to wake up here--fixme!
    62  	time.Sleep(5000 * time.Millisecond)
    63  	dockercli.DeisServiceTest(
    64  		t, "deis-router-"+testID, servicePort, "http")
    65  	dockercli.ClearTestSession(t, testID)
    66  }