github.com/maier/nomad@v0.4.1-0.20161110003312-a9e3d0b8549d/nomad/regions_endpoint_test.go (about)

     1  package nomad
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/hashicorp/net-rpc-msgpackrpc"
     8  	"github.com/hashicorp/nomad/nomad/structs"
     9  	"github.com/hashicorp/nomad/testutil"
    10  )
    11  
    12  func TestRegionList(t *testing.T) {
    13  	// Make the servers
    14  	s1 := testServer(t, func(c *Config) {
    15  		c.Region = "region1"
    16  	})
    17  	defer s1.Shutdown()
    18  	codec := rpcClient(t, s1)
    19  
    20  	s2 := testServer(t, func(c *Config) {
    21  		c.Region = "region2"
    22  	})
    23  	defer s2.Shutdown()
    24  
    25  	// Join the servers
    26  	s2Addr := fmt.Sprintf("127.0.0.1:%d",
    27  		s2.config.SerfConfig.MemberlistConfig.BindPort)
    28  	if n, err := s1.Join([]string{s2Addr}); err != nil || n != 1 {
    29  		t.Fatalf("Failed joining: %v (%d joined)", err, n)
    30  	}
    31  
    32  	// Query the regions list
    33  	testutil.WaitForResult(func() (bool, error) {
    34  		var arg structs.GenericRequest
    35  		var out []string
    36  		if err := msgpackrpc.CallWithCodec(codec, "Region.List", &arg, &out); err != nil {
    37  			t.Fatalf("err: %v", err)
    38  		}
    39  		if len(out) != 2 || out[0] != "region1" || out[1] != "region2" {
    40  			t.Fatalf("unexpected regions: %v", out)
    41  		}
    42  		return true, nil
    43  	}, func(err error) {
    44  		t.Fatalf("err: %v", err)
    45  	})
    46  }