github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/api/backups/package_test.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package backups_test 5 6 import ( 7 "runtime" 8 "testing" 9 "time" 10 11 gc "gopkg.in/check.v1" 12 13 "github.com/juju/juju/api/backups" 14 httptesting "github.com/juju/juju/api/http/testing" 15 apiserverbackups "github.com/juju/juju/apiserver/backups" 16 "github.com/juju/juju/apiserver/params" 17 jujutesting "github.com/juju/juju/juju/testing" 18 stbackups "github.com/juju/juju/state/backups" 19 backupstesting "github.com/juju/juju/state/backups/testing" 20 coretesting "github.com/juju/juju/testing" 21 ) 22 23 func TestAll(t *testing.T) { 24 // TODO(bogdanteleaga): Fix these tests on windows 25 if runtime.GOOS == "windows" { 26 t.Skip("bug 1403084: Skipping this on windows for now") 27 } 28 coretesting.MgoTestPackage(t) 29 } 30 31 type baseSuite struct { 32 jujutesting.JujuConnSuite 33 backupstesting.BaseSuite 34 client *backups.Client 35 } 36 37 func (s *baseSuite) SetUpTest(c *gc.C) { 38 s.BaseSuite.SetUpTest(c) 39 s.JujuConnSuite.SetUpTest(c) 40 s.client = backups.NewClient(s.APIState) 41 } 42 43 func (s *baseSuite) metadataResult() *params.BackupsMetadataResult { 44 result := apiserverbackups.ResultFromMetadata(s.Meta) 45 return &result 46 } 47 48 func (s *baseSuite) checkMetadataResult(c *gc.C, result *params.BackupsMetadataResult, meta *stbackups.Metadata) { 49 var finished, stored time.Time 50 if meta.Finished != nil { 51 finished = *meta.Finished 52 } 53 if meta.Stored() != nil { 54 stored = *(meta.Stored()) 55 } 56 57 c.Check(result.ID, gc.Equals, meta.ID()) 58 c.Check(result.Started, gc.Equals, meta.Started) 59 c.Check(result.Finished, gc.Equals, finished) 60 c.Check(result.Checksum, gc.Equals, meta.Checksum()) 61 c.Check(result.ChecksumFormat, gc.Equals, meta.ChecksumFormat()) 62 c.Check(result.Size, gc.Equals, meta.Size()) 63 c.Check(result.Stored, gc.Equals, stored) 64 c.Check(result.Notes, gc.Equals, meta.Notes) 65 66 c.Check(result.Environment, gc.Equals, meta.Origin.Environment) 67 c.Check(result.Machine, gc.Equals, meta.Origin.Machine) 68 c.Check(result.Hostname, gc.Equals, meta.Origin.Hostname) 69 c.Check(result.Version, gc.Equals, meta.Origin.Version) 70 } 71 72 type httpSuite struct { 73 baseSuite 74 httptesting.APIHTTPClientSuite 75 } 76 77 func (s *httpSuite) SetUpSuite(c *gc.C) { 78 s.baseSuite.SetUpSuite(c) 79 s.APIHTTPClientSuite.SetUpSuite(c) 80 } 81 82 func (s *httpSuite) TearDownSuite(c *gc.C) { 83 s.APIHTTPClientSuite.TearDownSuite(c) 84 s.baseSuite.TearDownSuite(c) 85 } 86 87 func (s *httpSuite) SetUpTest(c *gc.C) { 88 s.baseSuite.SetUpTest(c) 89 s.APIHTTPClientSuite.SetUpTest(c) 90 } 91 92 func (s *httpSuite) TearDownTest(c *gc.C) { 93 s.APIHTTPClientSuite.TearDownTest(c) 94 s.baseSuite.TearDownTest(c) 95 } 96 97 func (s *httpSuite) setResponse(c *gc.C, status int, data []byte, ctype string) { 98 s.APIHTTPClientSuite.SetResponse(c, status, data, ctype) 99 backups.SetHTTP(s.client, &s.FakeClient) 100 } 101 102 func (s *httpSuite) setJSONSuccess(c *gc.C, result interface{}) { 103 s.APIHTTPClientSuite.SetJSONSuccess(c, result) 104 backups.SetHTTP(s.client, &s.FakeClient) 105 } 106 107 func (s *httpSuite) setFailure(c *gc.C, msg string, status int) { 108 s.APIHTTPClientSuite.SetFailure(c, msg, status) 109 backups.SetHTTP(s.client, &s.FakeClient) 110 } 111 112 func (s *httpSuite) setError(c *gc.C, msg string, status int) { 113 s.APIHTTPClientSuite.SetError(c, msg, status) 114 backups.SetHTTP(s.client, &s.FakeClient) 115 }