github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/apiserver/hostkeyreporter/facade_test.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package hostkeyreporter_test 5 6 import ( 7 jujutesting "github.com/juju/testing" 8 jc "github.com/juju/testing/checkers" 9 gc "gopkg.in/check.v1" 10 "gopkg.in/juju/names.v2" 11 12 "github.com/juju/juju/apiserver/hostkeyreporter" 13 "github.com/juju/juju/apiserver/params" 14 apiservertesting "github.com/juju/juju/apiserver/testing" 15 "github.com/juju/juju/state" 16 "github.com/juju/juju/testing" 17 ) 18 19 type facadeSuite struct { 20 testing.BaseSuite 21 backend *mockBackend 22 authorizer *apiservertesting.FakeAuthorizer 23 facade *hostkeyreporter.Facade 24 } 25 26 var _ = gc.Suite(&facadeSuite{}) 27 28 func (s *facadeSuite) SetUpTest(c *gc.C) { 29 s.backend = new(mockBackend) 30 s.authorizer = new(apiservertesting.FakeAuthorizer) 31 facade, err := hostkeyreporter.New(s.backend, nil, s.authorizer) 32 c.Assert(err, jc.ErrorIsNil) 33 s.facade = facade 34 } 35 36 func (s *facadeSuite) TestReportKeys(c *gc.C) { 37 s.authorizer.Tag = names.NewMachineTag("1") 38 39 args := params.SSHHostKeySet{ 40 EntityKeys: []params.SSHHostKeys{ 41 { 42 Tag: names.NewMachineTag("0").String(), 43 PublicKeys: []string{"rsa0", "dsa0"}, 44 }, { 45 Tag: names.NewMachineTag("1").String(), 46 PublicKeys: []string{"rsa1", "dsa1"}, 47 }, 48 }, 49 } 50 result, err := s.facade.ReportKeys(args) 51 c.Assert(err, jc.ErrorIsNil) 52 53 c.Assert(result, gc.DeepEquals, params.ErrorResults{ 54 Results: []params.ErrorResult{ 55 {Error: apiservertesting.ErrUnauthorized}, 56 {nil}, 57 }, 58 }) 59 s.backend.stub.CheckCalls(c, []jujutesting.StubCall{{ 60 "SetSSHHostKeys", 61 []interface{}{ 62 names.NewMachineTag("1"), 63 state.SSHHostKeys{"rsa1", "dsa1"}, 64 }, 65 }}) 66 } 67 68 type mockBackend struct { 69 stub jujutesting.Stub 70 } 71 72 func (backend *mockBackend) SetSSHHostKeys(tag names.MachineTag, keys state.SSHHostKeys) error { 73 backend.stub.AddCall("SetSSHHostKeys", tag, keys) 74 return nil 75 }