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 }