1
// Swift double testing service - internal direct API tests
11
type SwiftServiceSuite struct {
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
20
var _ = gc.Suite(&SwiftServiceSuite{})
22
func (s *SwiftServiceSuite) SetUpSuite(c *gc.C) {
23
s.service = New(hostname, versionPath, tenantId, region, nil, nil)
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)
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)
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))
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/%s/%s/test/obj", hostname, versionPath, tenantId))
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)
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)
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)