github.com/jmitchell/nomad@v0.1.3-0.20151007230021-7ab84c2862d8/command/agent/scada_test.go (about) 1 package agent 2 3 import ( 4 "net" 5 "reflect" 6 "testing" 7 8 "github.com/hashicorp/scada-client" 9 ) 10 11 func TestProviderService(t *testing.T) { 12 conf := DefaultConfig() 13 conf.Version = "0.5.0" 14 conf.VersionPrerelease = "rc1" 15 conf.Atlas = &AtlasConfig{} 16 conf.Atlas.Join = true 17 conf.Server.Enabled = true 18 ps := ProviderService(conf) 19 20 expect := &client.ProviderService{ 21 Service: "nomad", 22 ServiceVersion: "0.5.0rc1", 23 Capabilities: map[string]int{ 24 "http": 1, 25 }, 26 Meta: map[string]string{ 27 "auto-join": "true", 28 "region": "global", 29 "datacenter": "dc1", 30 "client": "false", 31 "server": "true", 32 }, 33 ResourceType: "nomad-cluster", 34 } 35 36 if !reflect.DeepEqual(ps, expect) { 37 t.Fatalf("bad: %v", ps) 38 } 39 } 40 41 func TestProviderConfig(t *testing.T) { 42 conf := DefaultConfig() 43 conf.Version = "0.5.0" 44 conf.VersionPrerelease = "rc1" 45 conf.Atlas = &AtlasConfig{} 46 conf.Atlas.Join = true 47 conf.Atlas.Infrastructure = "armon/test" 48 conf.Atlas.Token = "foobarbaz" 49 conf.Atlas.Endpoint = "foo.bar:1111" 50 conf.Server.Enabled = true 51 pc := ProviderConfig(conf) 52 53 expect := &client.ProviderConfig{ 54 Service: &client.ProviderService{ 55 Service: "nomad", 56 ServiceVersion: "0.5.0rc1", 57 Capabilities: map[string]int{ 58 "http": 1, 59 }, 60 Meta: map[string]string{ 61 "auto-join": "true", 62 "region": "global", 63 "datacenter": "dc1", 64 "client": "false", 65 "server": "true", 66 }, 67 ResourceType: "nomad-cluster", 68 }, 69 Handlers: map[string]client.CapabilityProvider{ 70 "http": nil, 71 }, 72 Endpoint: "foo.bar:1111", 73 ResourceGroup: "armon/test", 74 Token: "foobarbaz", 75 } 76 77 if !reflect.DeepEqual(pc, expect) { 78 t.Fatalf("bad: %v", pc) 79 } 80 } 81 82 func TestSCADAListener(t *testing.T) { 83 list := newScadaListener("armon/test") 84 defer list.Close() 85 86 var raw interface{} = list 87 _, ok := raw.(net.Listener) 88 if !ok { 89 t.Fatalf("bad") 90 } 91 92 a, b := net.Pipe() 93 defer a.Close() 94 defer b.Close() 95 96 go list.Push(a) 97 out, err := list.Accept() 98 if err != nil { 99 t.Fatalf("err: %v", err) 100 } 101 if out != a { 102 t.Fatalf("bad") 103 } 104 } 105 106 func TestSCADAAddr(t *testing.T) { 107 var addr interface{} = &scadaAddr{"armon/test"} 108 _, ok := addr.(net.Addr) 109 if !ok { 110 t.Fatalf("bad") 111 } 112 }