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  }