github.com/koron/hk@v0.0.0-20150303213137-b8aeaa3ab34c/scale_test.go (about)

     1  package main
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  var parseScaleTests = []struct {
     8  	in     string
     9  	pstype string
    10  	qty    int
    11  	size   string
    12  	err    error
    13  }{
    14  	{"web=5", "web", 5, "", nil},
    15  	{"bg_worker=50:1X", "bg_worker", 50, "1X", nil},
    16  	{"bg_worker=50:PX", "bg_worker", 50, "PX", nil},
    17  	{"web=:2X", "web", -1, "2X", nil},
    18  	{"web=:PX", "web", -1, "PX", nil},
    19  	{"web=1X", "web", -1, "1X", nil},
    20  	{"web=1x", "web", -1, "1X", nil},
    21  	{"web=PX", "web", -1, "PX", nil},
    22  	{"web=px", "web", -1, "PX", nil},
    23  	{"web=1X:5", "web", -1, "", errInvalidScaleArg},
    24  	{"web=PX:5", "web", -1, "", errInvalidScaleArg},
    25  	{"web", "", -1, "", errInvalidScaleArg},
    26  	{"web=", "web", -1, "", errInvalidScaleArg},
    27  	{"web =", "", -1, "", errInvalidScaleArg},
    28  	{"web=1X: 5", "", -1, "", errInvalidScaleArg},
    29  }
    30  
    31  func TestParseScaleArg(t *testing.T) {
    32  	for i, pt := range parseScaleTests {
    33  		pstype, qty, size, err := parseScaleArg(pt.in)
    34  		if pstype != pt.pstype {
    35  			t.Errorf("%d. parseScaleArg(%q).pstype => %q, want %q", i, pt.in, pstype, pt.pstype)
    36  		}
    37  		if qty != pt.qty {
    38  			t.Errorf("%d. parseScaleArg(%q).qty => %d, want %d", i, pt.in, qty, pt.qty)
    39  		}
    40  		if size != pt.size {
    41  			t.Errorf("%d. parseScaleArg(%q).size => %q, want %q", i, pt.in, size, pt.size)
    42  		}
    43  		if err != pt.err {
    44  			t.Errorf("%d. parseScaleArg(%q).err => %q, want %q", i, pt.in, err, pt.err)
    45  		}
    46  	}
    47  }