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