forked from knative/pkg
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mock_storage.go
71 lines (58 loc) · 1.47 KB
/
mock_storage.go
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
/*
Copyright 2020 The Knative Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package mock
import (
"path/filepath"
)
// more friendly type casts for better readability of what some strings are
type project string
type bucket string
type Method string
// mockpath contains the bucket path to an object and the object name
type mockpath struct {
dir string
obj string
}
func newMockPath(dir, obj string) mockpath {
return mockpath{
dir: dir,
obj: obj,
}
}
// toString stringify mockpath
func (m mockpath) toString() string {
return filepath.Join(m.dir, m.obj)
}
// Fake GCS objects
type object struct {
name mockpath
//NOTE: current ObjectAttrs supported:
// Size
// Bucket
// Name
bkt string
content []byte
}
// bucket of objects - structure is flat
type objects struct {
obj map[mockpath]*object
}
// project with buckets
type buckets struct {
bkt map[bucket]*objects
}
// ReturnError is a custom error for specific methods
type ReturnError struct {
NumCall uint8
Err error
}