github.com/stchris/docker@v1.4.2-0.20150106053530-1510a324dbd5/links/links_test.go (about) 1 package links 2 3 import ( 4 "github.com/docker/docker/nat" 5 "strings" 6 "testing" 7 ) 8 9 func TestLinkNaming(t *testing.T) { 10 ports := make(nat.PortSet) 11 ports[nat.Port("6379/tcp")] = struct{}{} 12 13 link, err := NewLink("172.0.17.3", "172.0.17.2", "/db/docker-1", nil, ports, nil) 14 if err != nil { 15 t.Fatal(err) 16 } 17 18 rawEnv := link.ToEnv() 19 env := make(map[string]string, len(rawEnv)) 20 for _, e := range rawEnv { 21 parts := strings.Split(e, "=") 22 if len(parts) != 2 { 23 t.FailNow() 24 } 25 env[parts[0]] = parts[1] 26 } 27 28 value, ok := env["DOCKER_1_PORT"] 29 30 if !ok { 31 t.Fatalf("DOCKER_1_PORT not found in env") 32 } 33 34 if value != "tcp://172.0.17.2:6379" { 35 t.Fatalf("Expected 172.0.17.2:6379, got %s", env["DOCKER_1_PORT"]) 36 } 37 } 38 39 func TestLinkNew(t *testing.T) { 40 ports := make(nat.PortSet) 41 ports[nat.Port("6379/tcp")] = struct{}{} 42 43 link, err := NewLink("172.0.17.3", "172.0.17.2", "/db/docker", nil, ports, nil) 44 if err != nil { 45 t.Fatal(err) 46 } 47 48 if link == nil { 49 t.FailNow() 50 } 51 if link.Name != "/db/docker" { 52 t.Fail() 53 } 54 if link.Alias() != "docker" { 55 t.Fail() 56 } 57 if link.ParentIP != "172.0.17.3" { 58 t.Fail() 59 } 60 if link.ChildIP != "172.0.17.2" { 61 t.Fail() 62 } 63 for _, p := range link.Ports { 64 if p != nat.Port("6379/tcp") { 65 t.Fail() 66 } 67 } 68 } 69 70 func TestLinkEnv(t *testing.T) { 71 ports := make(nat.PortSet) 72 ports[nat.Port("6379/tcp")] = struct{}{} 73 74 link, err := NewLink("172.0.17.3", "172.0.17.2", "/db/docker", []string{"PASSWORD=gordon"}, ports, nil) 75 if err != nil { 76 t.Fatal(err) 77 } 78 79 rawEnv := link.ToEnv() 80 env := make(map[string]string, len(rawEnv)) 81 for _, e := range rawEnv { 82 parts := strings.Split(e, "=") 83 if len(parts) != 2 { 84 t.FailNow() 85 } 86 env[parts[0]] = parts[1] 87 } 88 if env["DOCKER_PORT"] != "tcp://172.0.17.2:6379" { 89 t.Fatalf("Expected 172.0.17.2:6379, got %s", env["DOCKER_PORT"]) 90 } 91 if env["DOCKER_PORT_6379_TCP"] != "tcp://172.0.17.2:6379" { 92 t.Fatalf("Expected tcp://172.0.17.2:6379, got %s", env["DOCKER_PORT_6379_TCP"]) 93 } 94 if env["DOCKER_PORT_6379_TCP_PROTO"] != "tcp" { 95 t.Fatalf("Expected tcp, got %s", env["DOCKER_PORT_6379_TCP_PROTO"]) 96 } 97 if env["DOCKER_PORT_6379_TCP_ADDR"] != "172.0.17.2" { 98 t.Fatalf("Expected 172.0.17.2, got %s", env["DOCKER_PORT_6379_TCP_ADDR"]) 99 } 100 if env["DOCKER_PORT_6379_TCP_PORT"] != "6379" { 101 t.Fatalf("Expected 6379, got %s", env["DOCKER_PORT_6379_TCP_PORT"]) 102 } 103 if env["DOCKER_NAME"] != "/db/docker" { 104 t.Fatalf("Expected /db/docker, got %s", env["DOCKER_NAME"]) 105 } 106 if env["DOCKER_ENV_PASSWORD"] != "gordon" { 107 t.Fatalf("Expected gordon, got %s", env["DOCKER_ENV_PASSWORD"]) 108 } 109 } 110 111 func TestLinkMultipleEnv(t *testing.T) { 112 ports := make(nat.PortSet) 113 ports[nat.Port("6379/tcp")] = struct{}{} 114 ports[nat.Port("6380/tcp")] = struct{}{} 115 ports[nat.Port("6381/tcp")] = struct{}{} 116 117 link, err := NewLink("172.0.17.3", "172.0.17.2", "/db/docker", []string{"PASSWORD=gordon"}, ports, nil) 118 if err != nil { 119 t.Fatal(err) 120 } 121 122 rawEnv := link.ToEnv() 123 env := make(map[string]string, len(rawEnv)) 124 for _, e := range rawEnv { 125 parts := strings.Split(e, "=") 126 if len(parts) != 2 { 127 t.FailNow() 128 } 129 env[parts[0]] = parts[1] 130 } 131 if env["DOCKER_PORT"] != "tcp://172.0.17.2:6379" { 132 t.Fatalf("Expected 172.0.17.2:6379, got %s", env["DOCKER_PORT"]) 133 } 134 if env["DOCKER_PORT_6379_TCP_START"] != "tcp://172.0.17.2:6379" { 135 t.Fatalf("Expected tcp://172.0.17.2:6379, got %s", env["DOCKER_PORT_6379_TCP_START"]) 136 } 137 if env["DOCKER_PORT_6379_TCP_END"] != "tcp://172.0.17.2:6381" { 138 t.Fatalf("Expected tcp://172.0.17.2:6381, got %s", env["DOCKER_PORT_6379_TCP_END"]) 139 } 140 if env["DOCKER_PORT_6379_TCP_PROTO"] != "tcp" { 141 t.Fatalf("Expected tcp, got %s", env["DOCKER_PORT_6379_TCP_PROTO"]) 142 } 143 if env["DOCKER_PORT_6379_TCP_ADDR"] != "172.0.17.2" { 144 t.Fatalf("Expected 172.0.17.2, got %s", env["DOCKER_PORT_6379_TCP_ADDR"]) 145 } 146 if env["DOCKER_PORT_6379_TCP_PORT_START"] != "6379" { 147 t.Fatalf("Expected 6379, got %s", env["DOCKER_PORT_6379_TCP_PORT_START"]) 148 } 149 if env["DOCKER_PORT_6379_TCP_PORT_END"] != "6381" { 150 t.Fatalf("Expected 6381, got %s", env["DOCKER_PORT_6379_TCP_PORT_END"]) 151 } 152 if env["DOCKER_NAME"] != "/db/docker" { 153 t.Fatalf("Expected /db/docker, got %s", env["DOCKER_NAME"]) 154 } 155 if env["DOCKER_ENV_PASSWORD"] != "gordon" { 156 t.Fatalf("Expected gordon, got %s", env["DOCKER_ENV_PASSWORD"]) 157 } 158 }