~juju-qa/ubuntu/xenial/juju/xenial-2.0-beta3

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/cmd/juju/model/share_test.go

  • Committer: Martin Packman
  • Date: 2016-03-30 19:31:08 UTC
  • mfrom: (1.1.41)
  • Revision ID: martin.packman@canonical.com-20160330193108-h9iz3ak334uk0z5r
Merge new upstream source 2.0~beta3

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Copyright 2015 Canonical Ltd.
2
 
// Licensed under the AGPLv3, see LICENCE file for details.
3
 
 
4
 
package model_test
5
 
 
6
 
import (
7
 
        "github.com/juju/cmd"
8
 
        "github.com/juju/names"
9
 
        jc "github.com/juju/testing/checkers"
10
 
        gc "gopkg.in/check.v1"
11
 
 
12
 
        "github.com/juju/juju/apiserver/params"
13
 
        "github.com/juju/juju/cmd/juju/model"
14
 
        "github.com/juju/juju/testing"
15
 
)
16
 
 
17
 
type shareSuite struct {
18
 
        fakeEnvSuite
19
 
}
20
 
 
21
 
var _ = gc.Suite(&shareSuite{})
22
 
 
23
 
func (s *shareSuite) run(c *gc.C, args ...string) (*cmd.Context, error) {
24
 
        command, _ := model.NewShareCommandForTest(s.fake)
25
 
        return testing.RunCommand(c, command, args...)
26
 
}
27
 
 
28
 
func (s *shareSuite) TestInit(c *gc.C) {
29
 
        wrappedCmd, shareCmd := model.NewShareCommandForTest(s.fake)
30
 
        err := testing.InitCommand(wrappedCmd, []string{})
31
 
        c.Assert(err, gc.ErrorMatches, "no users specified")
32
 
 
33
 
        err = testing.InitCommand(wrappedCmd, []string{"bob@local", "sam"})
34
 
        c.Assert(err, jc.ErrorIsNil)
35
 
 
36
 
        c.Assert(shareCmd.Users[0], gc.Equals, names.NewUserTag("bob@local"))
37
 
        c.Assert(shareCmd.Users[1], gc.Equals, names.NewUserTag("sam"))
38
 
 
39
 
        err = testing.InitCommand(wrappedCmd, []string{"not valid/0"})
40
 
        c.Assert(err, gc.ErrorMatches, `invalid username: "not valid/0"`)
41
 
}
42
 
 
43
 
func (s *shareSuite) TestPassesValues(c *gc.C) {
44
 
        sam := names.NewUserTag("sam")
45
 
        ralph := names.NewUserTag("ralph")
46
 
 
47
 
        _, err := s.run(c, "sam", "ralph")
48
 
        c.Assert(err, jc.ErrorIsNil)
49
 
        c.Assert(s.fake.addUsers, jc.DeepEquals, []names.UserTag{sam, ralph})
50
 
}
51
 
 
52
 
func (s *shareSuite) TestBlockShare(c *gc.C) {
53
 
        s.fake.err = &params.Error{Code: params.CodeOperationBlocked}
54
 
        _, err := s.run(c, "sam")
55
 
        c.Assert(err, gc.Equals, cmd.ErrSilent)
56
 
        c.Check(c.GetTestLog(), jc.Contains, "To unblock changes")
57
 
}