github.com/rochacon/deis@v1.0.2-0.20150903015341-6839b592a1ff/mesos/pkg/etcd/lock_test.go (about)

     1  package etcd
     2  
     3  import (
     4  	"os/exec"
     5  	"testing"
     6  )
     7  
     8  func init() {
     9  	_, err := exec.Command("etcd", "--version").Output()
    10  	if err != nil {
    11  		log.Fatal(err)
    12  	}
    13  }
    14  
    15  func TestAcquireReleaseLock(t *testing.T) {
    16  	startEtcd()
    17  	defer stopEtcd()
    18  
    19  	etcdClient := NewClient([]string{"http://localhost:4001"})
    20  
    21  	err := AcquireLock(etcdClient, "/lock", 10)
    22  	if err != nil {
    23  		t.Fatalf("Unexpected error '%v'", err)
    24  	}
    25  
    26  	value := Get(etcdClient, "/lock")
    27  	if value == "" {
    28  		t.Fatalf("Expected '%v' arguments but returned '%v'", "locked", value)
    29  	}
    30  
    31  	if value != "locked" {
    32  		t.Fatalf("Expected '%v' arguments but returned '%v'", "locked", value)
    33  	}
    34  
    35  	ReleaseLock(etcdClient)
    36  
    37  	value = Get(etcdClient, "/lock")
    38  	if value != "released" {
    39  		t.Fatalf("Expected '%v' arguments but returned '%v'", "released", value)
    40  	}
    41  
    42  }