gopkg.in/goose.v2@v2.0.1/testservices/swiftservice/service_test.go (about)

     1  // Swift double testing service - internal direct API tests
     2  
     3  package swiftservice
     4  
     5  import (
     6  	"fmt"
     7  
     8  	gc "gopkg.in/check.v1"
     9  )
    10  
    11  type SwiftServiceSuite struct {
    12  	service *Swift
    13  }
    14  
    15  var region = "region"             // not really used here
    16  var hostname = "http://localhost" // not really used here
    17  var versionPath = "v2"            // not really used here
    18  var tenantId = "tenant"           // not really used here
    19  
    20  var _ = gc.Suite(&SwiftServiceSuite{})
    21  
    22  func (s *SwiftServiceSuite) SetUpSuite(c *gc.C) {
    23  	s.service = New(hostname, versionPath, tenantId, region, nil, nil)
    24  }
    25  
    26  func (s *SwiftServiceSuite) TestAddHasRemoveContainer(c *gc.C) {
    27  	ok := s.service.HasContainer("test")
    28  	c.Assert(ok, gc.Equals, false)
    29  	err := s.service.AddContainer("test")
    30  	c.Assert(err, gc.IsNil)
    31  	ok = s.service.HasContainer("test")
    32  	c.Assert(ok, gc.Equals, true)
    33  	err = s.service.RemoveContainer("test")
    34  	c.Assert(err, gc.IsNil)
    35  	ok = s.service.HasContainer("test")
    36  	c.Assert(ok, gc.Equals, false)
    37  }
    38  
    39  func (s *SwiftServiceSuite) TestAddGetRemoveObject(c *gc.C) {
    40  	_, err := s.service.GetObject("test", "obj")
    41  	c.Assert(err, gc.Not(gc.IsNil))
    42  	err = s.service.AddContainer("test")
    43  	c.Assert(err, gc.IsNil)
    44  	ok := s.service.HasContainer("test")
    45  	c.Assert(ok, gc.Equals, true)
    46  	data := []byte("test data")
    47  	err = s.service.AddObject("test", "obj", data)
    48  	c.Assert(err, gc.IsNil)
    49  	objdata, err := s.service.GetObject("test", "obj")
    50  	c.Assert(err, gc.IsNil)
    51  	c.Assert(objdata, gc.DeepEquals, data)
    52  	err = s.service.RemoveObject("test", "obj")
    53  	c.Assert(err, gc.IsNil)
    54  	_, err = s.service.GetObject("test", "obj")
    55  	c.Assert(err, gc.Not(gc.IsNil))
    56  	err = s.service.RemoveContainer("test")
    57  	c.Assert(err, gc.IsNil)
    58  	ok = s.service.HasContainer("test")
    59  	c.Assert(ok, gc.Equals, false)
    60  }
    61  
    62  func (s *SwiftServiceSuite) TestRemoveContainerWithObjects(c *gc.C) {
    63  	ok := s.service.HasContainer("test")
    64  	c.Assert(ok, gc.Equals, false)
    65  	err := s.service.AddObject("test", "obj", []byte("test data"))
    66  	c.Assert(err, gc.IsNil)
    67  	err = s.service.RemoveContainer("test")
    68  	c.Assert(err, gc.IsNil)
    69  	_, err = s.service.GetObject("test", "obj")
    70  	c.Assert(err, gc.Not(gc.IsNil))
    71  }
    72  
    73  func (s *SwiftServiceSuite) TestGetURL(c *gc.C) {
    74  	ok := s.service.HasContainer("test")
    75  	c.Assert(ok, gc.Equals, false)
    76  	err := s.service.AddContainer("test")
    77  	c.Assert(err, gc.IsNil)
    78  	data := []byte("test data")
    79  	err = s.service.AddObject("test", "obj", data)
    80  	c.Assert(err, gc.IsNil)
    81  	url, err := s.service.GetURL("test", "obj")
    82  	c.Assert(err, gc.IsNil)
    83  	c.Assert(url, gc.Equals, fmt.Sprintf("%s/swift/%s/test/obj", hostname, versionPath))
    84  	err = s.service.RemoveContainer("test")
    85  	c.Assert(err, gc.IsNil)
    86  	ok = s.service.HasContainer("test")
    87  	c.Assert(ok, gc.Equals, false)
    88  }
    89  
    90  func (s *SwiftServiceSuite) TestListContainer(c *gc.C) {
    91  	err := s.service.AddContainer("test")
    92  	c.Assert(err, gc.IsNil)
    93  	data := []byte("test data")
    94  	err = s.service.AddObject("test", "obj", data)
    95  	c.Assert(err, gc.IsNil)
    96  	containerData, err := s.service.ListContainer("test", nil)
    97  	c.Assert(err, gc.IsNil)
    98  	c.Assert(len(containerData), gc.Equals, 1)
    99  	c.Assert(containerData[0].Name, gc.Equals, "obj")
   100  	err = s.service.RemoveContainer("test")
   101  	c.Assert(err, gc.IsNil)
   102  }
   103  
   104  func (s *SwiftServiceSuite) TestListContainerWithPrefix(c *gc.C) {
   105  	err := s.service.AddContainer("test")
   106  	c.Assert(err, gc.IsNil)
   107  	data := []byte("test data")
   108  	err = s.service.AddObject("test", "foo", data)
   109  	c.Assert(err, gc.IsNil)
   110  	err = s.service.AddObject("test", "foobar", data)
   111  	c.Assert(err, gc.IsNil)
   112  	containerData, err := s.service.ListContainer("test", map[string]string{"prefix": "foob"})
   113  	c.Assert(err, gc.IsNil)
   114  	c.Assert(len(containerData), gc.Equals, 1)
   115  	c.Assert(containerData[0].Name, gc.Equals, "foobar")
   116  	err = s.service.RemoveContainer("test")
   117  	c.Assert(err, gc.IsNil)
   118  }