forked from Harwayne/knative-gcp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbucket.go
67 lines (54 loc) · 1.93 KB
/
bucket.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
/*
Copyright 2019 Google LLC
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 testing
import (
"context"
. "cloud.google.com/go/storage"
"github.com/google/knative-gcp/pkg/gclient/storage"
)
// testBucket is a test Storage bucket.
type testBucket struct {
data TestBucketData
}
// TestBucketData is the data used to configure the test Bucket.
type TestBucketData struct {
Notifications map[string]*Notification
AddNotificationID string
NotificationsErr error
AddNotificationErr error
DeleteErr error
Attrs *BucketAttrs
AttrsError error
}
// Verify that it satisfies the storage.Bucket interface.
var _ storage.Bucket = &testBucket{}
// AddNotification implements bucket.AddNotification
func (b *testBucket) AddNotification(ctx context.Context, n *Notification) (*Notification, error) {
if b.data.AddNotificationErr != nil {
return nil, b.data.AddNotificationErr
}
n.ID = b.data.AddNotificationID
return n, nil
}
// Notifications implements bucket.Notifications
func (b *testBucket) Notifications(ctx context.Context) (map[string]*Notification, error) {
return b.data.Notifications, b.data.NotificationsErr
}
// DeleteNotification implements bucket.DeleteNotification
func (b *testBucket) DeleteNotification(ctx context.Context, id string) error {
return b.data.DeleteErr
}
// Attrs implements bucket.Attrs
func (b *testBucket) Attrs(ctx context.Context) (*BucketAttrs, error) {
return b.data.Attrs, b.data.AttrsError
}