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 }