github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/cmd/jujud/agent/util/flag_test.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package util_test 5 6 import ( 7 "github.com/juju/testing" 8 jc "github.com/juju/testing/checkers" 9 gc "gopkg.in/check.v1" 10 11 "github.com/juju/juju/cmd/jujud/agent/util" 12 "github.com/juju/juju/worker" 13 ) 14 15 type FlagSuite struct { 16 testing.IsolationSuite 17 } 18 19 var _ = gc.Suite(&FlagSuite{}) 20 21 func (*FlagSuite) TestFlagOutputBadWorker(c *gc.C) { 22 in := &stubWorker{} 23 var out util.Flag 24 err := util.FlagOutput(in, &out) 25 c.Check(err, gc.ErrorMatches, `expected in to implement Flag; got a .*`) 26 c.Check(out, gc.IsNil) 27 } 28 29 func (*FlagSuite) TestFlagOutputBadTarget(c *gc.C) { 30 in := &stubFlagWorker{} 31 var out interface{} 32 err := util.FlagOutput(in, &out) 33 c.Check(err, gc.ErrorMatches, `expected out to be a \*Flag; got a .*`) 34 c.Check(out, gc.IsNil) 35 } 36 37 func (*FlagSuite) TestFlagOutputSuccess(c *gc.C) { 38 in := &stubFlagWorker{} 39 var out util.Flag 40 err := util.FlagOutput(in, &out) 41 c.Check(err, jc.ErrorIsNil) 42 c.Check(out, gc.Equals, in) 43 } 44 45 type stubWorker struct { 46 worker.Worker 47 } 48 49 type stubFlagWorker struct { 50 util.Flag 51 worker.Worker 52 }