links_test.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package links
  2. import (
  3. "github.com/dotcloud/docker/nat"
  4. "strings"
  5. "testing"
  6. )
  7. func TestLinkNew(t *testing.T) {
  8. ports := make(nat.PortSet)
  9. ports[nat.Port("6379/tcp")] = struct{}{}
  10. link, err := NewLink("172.0.17.3", "172.0.17.2", "/db/docker", nil, ports, nil)
  11. if err != nil {
  12. t.Fatal(err)
  13. }
  14. if link == nil {
  15. t.FailNow()
  16. }
  17. if link.Name != "/db/docker" {
  18. t.Fail()
  19. }
  20. if link.Alias() != "docker" {
  21. t.Fail()
  22. }
  23. if link.ParentIP != "172.0.17.3" {
  24. t.Fail()
  25. }
  26. if link.ChildIP != "172.0.17.2" {
  27. t.Fail()
  28. }
  29. for _, p := range link.Ports {
  30. if p != nat.Port("6379/tcp") {
  31. t.Fail()
  32. }
  33. }
  34. }
  35. func TestLinkEnv(t *testing.T) {
  36. ports := make(nat.PortSet)
  37. ports[nat.Port("6379/tcp")] = struct{}{}
  38. link, err := NewLink("172.0.17.3", "172.0.17.2", "/db/docker", []string{"PASSWORD=gordon"}, ports, nil)
  39. if err != nil {
  40. t.Fatal(err)
  41. }
  42. rawEnv := link.ToEnv()
  43. env := make(map[string]string, len(rawEnv))
  44. for _, e := range rawEnv {
  45. parts := strings.Split(e, "=")
  46. if len(parts) != 2 {
  47. t.FailNow()
  48. }
  49. env[parts[0]] = parts[1]
  50. }
  51. if env["DOCKER_PORT"] != "tcp://172.0.17.2:6379" {
  52. t.Fatalf("Expected 172.0.17.2:6379, got %s", env["DOCKER_PORT"])
  53. }
  54. if env["DOCKER_PORT_6379_TCP"] != "tcp://172.0.17.2:6379" {
  55. t.Fatalf("Expected tcp://172.0.17.2:6379, got %s", env["DOCKER_PORT_6379_TCP"])
  56. }
  57. if env["DOCKER_PORT_6379_TCP_PROTO"] != "tcp" {
  58. t.Fatalf("Expected tcp, got %s", env["DOCKER_PORT_6379_TCP_PROTO"])
  59. }
  60. if env["DOCKER_PORT_6379_TCP_ADDR"] != "172.0.17.2" {
  61. t.Fatalf("Expected 172.0.17.2, got %s", env["DOCKER_PORT_6379_TCP_ADDR"])
  62. }
  63. if env["DOCKER_PORT_6379_TCP_PORT"] != "6379" {
  64. t.Fatalf("Expected 6379, got %s", env["DOCKER_PORT_6379_TCP_PORT"])
  65. }
  66. if env["DOCKER_NAME"] != "/db/docker" {
  67. t.Fatalf("Expected /db/docker, got %s", env["DOCKER_NAME"])
  68. }
  69. if env["DOCKER_ENV_PASSWORD"] != "gordon" {
  70. t.Fatalf("Expected gordon, got %s", env["DOCKER_ENV_PASSWORD"])
  71. }
  72. }