github.com/inflatablewoman/deis@v1.0.1-0.20141111034523-a4511c46a6ce/deisctl/backend/fleet/utils_test.go (about)

     1  package fleet
     2  
     3  import "testing"
     4  
     5  func TestNextComponent(t *testing.T) {
     6  	// test first component
     7  	num, err := nextUnitNum([]string{})
     8  	if err != nil {
     9  		t.Fatal(err)
    10  	}
    11  	if num != 1 {
    12  		t.Fatal("Invalid component number")
    13  	}
    14  	// test next component
    15  	num, err = nextUnitNum([]string{"deis-router@1.service"})
    16  	if err != nil {
    17  		t.Fatal(err)
    18  	}
    19  	if num != 2 {
    20  		t.Fatal("Invalid component number")
    21  	}
    22  	// test last component
    23  	num, err = nextUnitNum([]string{"deis-router@1.service", "deis-router@2.service"})
    24  	if err != nil {
    25  		t.Fatal(err)
    26  	}
    27  	if num != 3 {
    28  		t.Fatal("Invalid component number")
    29  	}
    30  	// test middle component
    31  	num, err = nextUnitNum([]string{"deis-router@3.service"})
    32  	if err != nil {
    33  		t.Fatal(err)
    34  	}
    35  	if num != 1 {
    36  		t.Fatal("Invalid component number")
    37  	}
    38  	num, err = nextUnitNum([]string{"deis-router@1.service", "deis-router@3.service"})
    39  	if err != nil {
    40  		t.Fatal(err)
    41  	}
    42  	if num != 2 {
    43  		t.Fatalf("Invalid component number: %v", num)
    44  	}
    45  	num, err = nextUnitNum([]string{"deis-router@1.service", "deis-router@2.service", "deis-router@3.service"})
    46  	if err != nil {
    47  		t.Fatal(err)
    48  	}
    49  	if num != 4 {
    50  		t.Fatal("Invalid component number")
    51  	}
    52  }
    53  
    54  func TestSplitJobName(t *testing.T) {
    55  	c, num, err := splitJobName("deis-router@1.service")
    56  	if err != nil {
    57  		t.Fatal(err)
    58  	}
    59  	if c != "router" || num != 1 {
    60  		t.Fatalf("Invalid values: %v %v", c, num)
    61  	}
    62  }
    63  
    64  func TestSplitTarget(t *testing.T) {
    65  	c, num, err := splitTarget("router")
    66  	if err != nil {
    67  		t.Fatal(err)
    68  	}
    69  	if c != "router" && num != 0 {
    70  		t.Fatalf("Invalid split on \"%v\": %v %v", "router", c, num)
    71  	}
    72  
    73  	c, num, err = splitTarget("router@3")
    74  	if err != nil {
    75  		t.Fatal(err)
    76  	}
    77  	if c != "router" || num != 3 {
    78  		t.Fatalf("Invalid split on \"%v\": %v %v", "router@3", c, num)
    79  	}
    80  
    81  	c, num, err = splitTarget("store-gateway")
    82  	if err != nil {
    83  		t.Fatal(err)
    84  	}
    85  	if c != "store-gateway" || num != 0 {
    86  		t.Fatalf("Invalid split on \"%v\": %v %v", "store-gateway", c, num)
    87  	}
    88  
    89  }