99 "github.com/juju/errors"
1010 "github.com/juju/testing"
1111 jc "github.com/juju/testing/checkers"
12+ "go.uber.org/mock/gomock"
1213 gc "gopkg.in/check.v1"
1314
1415 "github.com/juju/juju/apiserver/common"
@@ -26,12 +27,21 @@ type CleanerSuite struct {
2627 coretesting.BaseSuite
2728
2829 st * mockState
29- api * cleaner.CleanerAPI
3030 authoriser apiservertesting.FakeAuthorizer
31+
32+ domainServices * MockDomainServices
3133}
3234
3335var _ = gc .Suite (& CleanerSuite {})
3436
37+ func (s * CleanerSuite ) setupMocks (c * gc.C ) * gomock.Controller {
38+ ctrl := gomock .NewController (c )
39+ s .domainServices = NewMockDomainServices (ctrl )
40+ s .domainServices .EXPECT ().Application ()
41+ s .domainServices .EXPECT ().Machine ()
42+ return ctrl
43+ }
44+
3545func (s * CleanerSuite ) SetUpTest (c * gc.C ) {
3646 s .BaseSuite .SetUpTest (c )
3747
@@ -40,16 +50,6 @@ func (s *CleanerSuite) SetUpTest(c *gc.C) {
4050 }
4151 s .st = & mockState {& testing.Stub {}, false }
4252 cleaner .PatchState (s , s .st )
43-
44- res := common .NewResources ()
45-
46- var err error
47- s .api , err = cleaner .NewCleanerAPI (facadetest.ModelContext {
48- Resources_ : res ,
49- Auth_ : s .authoriser ,
50- })
51- c .Assert (err , jc .ErrorIsNil )
52- c .Assert (s .api , gc .NotNil )
5353}
5454
5555func (s * CleanerSuite ) TestNewCleanerAPIRequiresController (c * gc.C ) {
@@ -64,30 +64,69 @@ func (s *CleanerSuite) TestNewCleanerAPIRequiresController(c *gc.C) {
6464}
6565
6666func (s * CleanerSuite ) TestWatchCleanupsSuccess (c * gc.C ) {
67- _ , err := s .api .WatchCleanups (context .Background ())
67+ ctrl := s .setupMocks (c )
68+ defer ctrl .Finish ()
69+
70+ api , err := cleaner .NewCleanerAPI (facadetest.ModelContext {
71+ Resources_ : common .NewResources (),
72+ Auth_ : s .authoriser ,
73+ DomainServices_ : s .domainServices ,
74+ })
75+ c .Assert (err , jc .ErrorIsNil )
76+
77+ _ , err = api .WatchCleanups (context .Background ())
6878 c .Assert (err , jc .ErrorIsNil )
6979 s .st .CheckCallNames (c , "WatchCleanups" )
7080}
7181
7282func (s * CleanerSuite ) TestWatchCleanupsFailure (c * gc.C ) {
83+ ctrl := s .setupMocks (c )
84+ defer ctrl .Finish ()
85+
86+ api , err := cleaner .NewCleanerAPI (facadetest.ModelContext {
87+ Resources_ : common .NewResources (),
88+ Auth_ : s .authoriser ,
89+ DomainServices_ : s .domainServices ,
90+ })
91+ c .Assert (err , jc .ErrorIsNil )
7392 s .st .SetErrors (errors .New ("boom!" ))
7493 s .st .watchCleanupsFails = true
7594
76- result , err := s . api .WatchCleanups (context .Background ())
95+ result , err := api .WatchCleanups (context .Background ())
7796 c .Assert (err , jc .ErrorIsNil )
7897 c .Assert (result .Error .Error (), gc .Equals , "boom!" )
7998 s .st .CheckCallNames (c , "WatchCleanups" )
8099}
81100
82101func (s * CleanerSuite ) TestCleanupSuccess (c * gc.C ) {
83- err := s .api .Cleanup (context .Background ())
102+ ctrl := s .setupMocks (c )
103+ defer ctrl .Finish ()
104+
105+ api , err := cleaner .NewCleanerAPI (facadetest.ModelContext {
106+ Resources_ : common .NewResources (),
107+ Auth_ : s .authoriser ,
108+ DomainServices_ : s .domainServices ,
109+ })
110+ c .Assert (err , jc .ErrorIsNil )
111+
112+ err = api .Cleanup (context .Background ())
84113 c .Assert (err , jc .ErrorIsNil )
85114 s .st .CheckCallNames (c , "Cleanup" )
86115}
87116
88117func (s * CleanerSuite ) TestCleanupFailure (c * gc.C ) {
118+ ctrl := s .setupMocks (c )
119+ defer ctrl .Finish ()
120+
121+ api , err := cleaner .NewCleanerAPI (facadetest.ModelContext {
122+ Resources_ : common .NewResources (),
123+ Auth_ : s .authoriser ,
124+ DomainServices_ : s .domainServices ,
125+ })
126+ c .Assert (err , jc .ErrorIsNil )
127+
89128 s .st .SetErrors (errors .New ("Boom!" ))
90- err := s . api .Cleanup (context .Background ())
129+ err = api .Cleanup (context .Background ())
91130 c .Assert (err , gc .ErrorMatches , "Boom!" )
92131 s .st .CheckCallNames (c , "Cleanup" )
93132}
0 commit comments