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 }