1
1
package memory
2
2
3
3
import (
4
+ "io"
4
5
"testing"
5
6
6
7
. "gopkg.in/check.v1"
@@ -9,46 +10,147 @@ import (
9
10
10
11
func Test (t * testing.T ) { TestingT (t ) }
11
12
12
- type ObjectStorageSuite struct {}
13
+ type StorageSuite struct {}
13
14
14
- var _ = Suite (& ObjectStorageSuite {})
15
+ var _ = Suite (& StorageSuite {})
15
16
16
- func (s * ObjectStorageSuite ) TestSet (c * C ) {
17
+ func (s * StorageSuite ) TestStorageObjectStorage (c * C ) {
18
+ storage := NewStorage ()
19
+ o := storage .ObjectStorage ()
20
+ e := storage .ObjectStorage ()
21
+
22
+ c .Assert (o == e , Equals , true )
23
+ }
24
+
25
+ func (s * StorageSuite ) TestStorageReferenceStorage (c * C ) {
26
+ storage := NewStorage ()
27
+ o := storage .ReferenceStorage ()
28
+ e := storage .ReferenceStorage ()
29
+
30
+ c .Assert (o == e , Equals , true )
31
+ }
32
+
33
+ func (s * StorageSuite ) TestObjectStorageSetAndGet (c * C ) {
17
34
os := NewObjectStorage ()
18
35
19
- o := & core.MemoryObject {}
20
- o .SetType (core .CommitObject )
21
- o .SetSize (3 )
36
+ commit := & core.MemoryObject {}
37
+ commit .SetType (core .CommitObject )
22
38
23
- writer , err := o . Writer ( )
39
+ h , err := os . Set ( commit )
24
40
c .Assert (err , IsNil )
25
- defer func () { c .Assert (writer .Close (), IsNil ) }()
41
+ c .Assert (h .String (), Equals , "dcf5b16e76cce7425d0beaef62d79a7d10fce1f5" )
42
+
43
+ e , err := os .Get (h )
44
+ c .Assert (commit == e , Equals , true )
45
+
46
+ tree := & core.MemoryObject {}
47
+ tree .SetType (core .TreeObject )
48
+
49
+ h , err = os .Set (tree )
50
+ c .Assert (err , IsNil )
51
+ c .Assert (h .String (), Equals , "4b825dc642cb6eb9a060e54bf8d69288fbee4904" )
52
+
53
+ e , err = os .Get (h )
54
+ c .Assert (tree == e , Equals , true )
26
55
27
- writer .Write ([]byte ("foo" ))
56
+ blob := & core.MemoryObject {}
57
+ blob .SetType (core .BlobObject )
28
58
29
- h , err : = os .Set (o )
59
+ h , err = os .Set (blob )
30
60
c .Assert (err , IsNil )
31
- c .Assert (h .String (), Equals , "bc9968d75e48de59f0870ffb71f5e160bbbdcf52" )
61
+ c .Assert (h .String (), Equals , "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391" )
62
+
63
+ e , err = os .Get (h )
64
+ c .Assert (blob == e , Equals , true )
65
+
66
+ tag := & core.MemoryObject {}
67
+ tag .SetType (core .TagObject )
68
+
69
+ h , err = os .Set (tag )
70
+ c .Assert (err , IsNil )
71
+ c .Assert (h .String (), Equals , "d994c6bb648123a17e8f70a966857c546b2a6f94" )
72
+
73
+ e , err = os .Get (h )
74
+ c .Assert (tag == e , Equals , true )
32
75
}
33
76
34
- func (s * ObjectStorageSuite ) TestGet (c * C ) {
77
+ func (s * StorageSuite ) TestObjectStorageIter (c * C ) {
78
+ commit := & core.MemoryObject {}
79
+ commit .SetType (core .CommitObject )
80
+ tree := & core.MemoryObject {}
81
+ tree .SetType (core .TreeObject )
82
+ blob := & core.MemoryObject {}
83
+ blob .SetType (core .BlobObject )
84
+ tag := & core.MemoryObject {}
85
+ tag .SetType (core .TagObject )
86
+
35
87
os := NewObjectStorage ()
88
+ os .Set (commit )
89
+ os .Set (tree )
90
+ os .Set (blob )
91
+ os .Set (tag )
92
+
93
+ i , err := os .Iter (core .CommitObject )
94
+ c .Assert (err , IsNil )
95
+
96
+ e , err := i .Next ()
97
+ c .Assert (err , IsNil )
98
+ c .Assert (commit == e , Equals , true )
36
99
37
- o := & core.MemoryObject {}
38
- o .SetType (core .CommitObject )
39
- o .SetSize (3 )
100
+ i , err = os .Iter (core .TreeObject )
101
+ c .Assert (err , IsNil )
102
+
103
+ e , err = i .Next ()
104
+ c .Assert (err , IsNil )
105
+ c .Assert (tree == e , Equals , true )
40
106
41
- writer , err := o . Writer ( )
107
+ i , err = os . Iter ( core . BlobObject )
42
108
c .Assert (err , IsNil )
43
- defer func () { c .Assert (writer .Close (), IsNil ) }()
44
109
45
- writer .Write ([]byte ("foo" ))
110
+ e , err = i .Next ()
111
+ c .Assert (err , IsNil )
112
+ c .Assert (blob == e , Equals , true )
113
+
114
+ i , err = os .Iter (core .TagObject )
115
+ c .Assert (err , IsNil )
116
+
117
+ e , err = i .Next ()
118
+ c .Assert (err , IsNil )
119
+ c .Assert (tag == e , Equals , true )
120
+
121
+ e , err = i .Next ()
122
+ c .Assert (e , IsNil )
123
+ c .Assert (err , Equals , io .EOF )
124
+ }
125
+
126
+ func (s * StorageSuite ) TestReferenceStorageSetAndGet (c * C ) {
127
+ rs := NewReferenceStorage ()
128
+
129
+ err := rs .Set (core .NewReferenceFromStrings ("foo" , "bc9968d75e48de59f0870ffb71f5e160bbbdcf52" ))
130
+ c .Assert (err , IsNil )
131
+
132
+ err = rs .Set (core .NewReferenceFromStrings ("bar" , "482e0eada5de4039e6f216b45b3c9b683b83bfa" ))
133
+ c .Assert (err , IsNil )
134
+
135
+ e , err := rs .Get (core .ReferenceName ("foo" ))
136
+ c .Assert (err , IsNil )
137
+ c .Assert (e .Hash ().String (), Equals , "bc9968d75e48de59f0870ffb71f5e160bbbdcf52" )
138
+ }
139
+
140
+ func (s * StorageSuite ) TestReferenceStorageIter (c * C ) {
141
+ rs := NewReferenceStorage ()
142
+
143
+ err := rs .Set (core .NewReferenceFromStrings ("foo" , "bc9968d75e48de59f0870ffb71f5e160bbbdcf52" ))
144
+ c .Assert (err , IsNil )
46
145
47
- h , err := os . Set ( o )
146
+ i , err := rs . Iter ( )
48
147
c .Assert (err , IsNil )
49
148
50
- ro , err := os . Get ( h )
149
+ e , err := i . Next ( )
51
150
c .Assert (err , IsNil )
151
+ c .Assert (e .Hash ().String (), Equals , "bc9968d75e48de59f0870ffb71f5e160bbbdcf52" )
52
152
53
- c .Assert (ro , DeepEquals , o )
153
+ e , err = i .Next ()
154
+ c .Assert (e , IsNil )
155
+ c .Assert (err , Equals , io .EOF )
54
156
}
0 commit comments