github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/apiserver/common/machine_test.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package common_test
     5  
     6  import (
     7  	gc "gopkg.in/check.v1"
     8  
     9  	"github.com/juju/juju/apiserver/common"
    10  	"github.com/juju/juju/state"
    11  	"github.com/juju/juju/state/multiwatcher"
    12  )
    13  
    14  type machineSuite struct{}
    15  
    16  var _ = gc.Suite(&machineSuite{})
    17  
    18  func (s *machineSuite) TestMachineJobFromParams(c *gc.C) {
    19  	var tests = []struct {
    20  		name multiwatcher.MachineJob
    21  		want state.MachineJob
    22  		err  string
    23  	}{{
    24  		name: multiwatcher.JobHostUnits,
    25  		want: state.JobHostUnits,
    26  	}, {
    27  		name: multiwatcher.JobManageEnviron,
    28  		want: state.JobManageEnviron,
    29  	}, {
    30  		name: multiwatcher.JobManageNetworking,
    31  		want: state.JobManageNetworking,
    32  	}, {
    33  		name: multiwatcher.JobManageStateDeprecated,
    34  		want: state.JobManageStateDeprecated,
    35  	}, {
    36  		name: "invalid",
    37  		want: -1,
    38  		err:  `invalid machine job "invalid"`,
    39  	}}
    40  	for _, test := range tests {
    41  		got, err := common.MachineJobFromParams(test.name)
    42  		if err != nil {
    43  			c.Check(err, gc.ErrorMatches, test.err)
    44  		}
    45  		c.Check(got, gc.Equals, test.want)
    46  	}
    47  }