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 }