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  }