github.com/fabiokung/docker@v0.11.2-0.20170222101415-4534dcd49497/daemon/discovery/discovery_test.go (about) 1 package discovery 2 3 import ( 4 "testing" 5 "time" 6 ) 7 8 func TestDiscoveryOpts(t *testing.T) { 9 clusterOpts := map[string]string{"discovery.heartbeat": "10", "discovery.ttl": "5"} 10 heartbeat, ttl, err := discoveryOpts(clusterOpts) 11 if err == nil { 12 t.Fatalf("discovery.ttl < discovery.heartbeat must fail") 13 } 14 15 clusterOpts = map[string]string{"discovery.heartbeat": "10", "discovery.ttl": "10"} 16 heartbeat, ttl, err = discoveryOpts(clusterOpts) 17 if err == nil { 18 t.Fatalf("discovery.ttl == discovery.heartbeat must fail") 19 } 20 21 clusterOpts = map[string]string{"discovery.heartbeat": "-10", "discovery.ttl": "10"} 22 heartbeat, ttl, err = discoveryOpts(clusterOpts) 23 if err == nil { 24 t.Fatalf("negative discovery.heartbeat must fail") 25 } 26 27 clusterOpts = map[string]string{"discovery.heartbeat": "10", "discovery.ttl": "-10"} 28 heartbeat, ttl, err = discoveryOpts(clusterOpts) 29 if err == nil { 30 t.Fatalf("negative discovery.ttl must fail") 31 } 32 33 clusterOpts = map[string]string{"discovery.heartbeat": "invalid"} 34 heartbeat, ttl, err = discoveryOpts(clusterOpts) 35 if err == nil { 36 t.Fatalf("invalid discovery.heartbeat must fail") 37 } 38 39 clusterOpts = map[string]string{"discovery.ttl": "invalid"} 40 heartbeat, ttl, err = discoveryOpts(clusterOpts) 41 if err == nil { 42 t.Fatalf("invalid discovery.ttl must fail") 43 } 44 45 clusterOpts = map[string]string{"discovery.heartbeat": "10", "discovery.ttl": "20"} 46 heartbeat, ttl, err = discoveryOpts(clusterOpts) 47 if err != nil { 48 t.Fatal(err) 49 } 50 51 if heartbeat != 10*time.Second { 52 t.Fatalf("Heartbeat - Expected : %v, Actual : %v", 10*time.Second, heartbeat) 53 } 54 55 if ttl != 20*time.Second { 56 t.Fatalf("TTL - Expected : %v, Actual : %v", 20*time.Second, ttl) 57 } 58 59 clusterOpts = map[string]string{"discovery.heartbeat": "10"} 60 heartbeat, ttl, err = discoveryOpts(clusterOpts) 61 if err != nil { 62 t.Fatal(err) 63 } 64 65 if heartbeat != 10*time.Second { 66 t.Fatalf("Heartbeat - Expected : %v, Actual : %v", 10*time.Second, heartbeat) 67 } 68 69 expected := 10 * defaultDiscoveryTTLFactor * time.Second 70 if ttl != expected { 71 t.Fatalf("TTL - Expected : %v, Actual : %v", expected, ttl) 72 } 73 74 clusterOpts = map[string]string{"discovery.ttl": "30"} 75 heartbeat, ttl, err = discoveryOpts(clusterOpts) 76 if err != nil { 77 t.Fatal(err) 78 } 79 80 if ttl != 30*time.Second { 81 t.Fatalf("TTL - Expected : %v, Actual : %v", 30*time.Second, ttl) 82 } 83 84 expected = 30 * time.Second / defaultDiscoveryTTLFactor 85 if heartbeat != expected { 86 t.Fatalf("Heartbeat - Expected : %v, Actual : %v", expected, heartbeat) 87 } 88 89 clusterOpts = map[string]string{} 90 heartbeat, ttl, err = discoveryOpts(clusterOpts) 91 if err != nil { 92 t.Fatal(err) 93 } 94 95 if heartbeat != defaultDiscoveryHeartbeat { 96 t.Fatalf("Heartbeat - Expected : %v, Actual : %v", defaultDiscoveryHeartbeat, heartbeat) 97 } 98 99 expected = defaultDiscoveryHeartbeat * defaultDiscoveryTTLFactor 100 if ttl != expected { 101 t.Fatalf("TTL - Expected : %v, Actual : %v", expected, ttl) 102 } 103 }