/
mock_imagestreamtag.go
61 lines (53 loc) · 1.68 KB
/
mock_imagestreamtag.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
package test
import (
"context"
"fmt"
imagev1 "github.com/openshift/api/image/v1"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
type MockImageStreamTag struct {
Tags map[string]*imagev1.ImageStreamTag
}
func (mock *MockImageStreamTag) Create(ctx context.Context, tag *imagev1.ImageStreamTag, options meta_v1.CreateOptions) (*imagev1.ImageStreamTag, error) {
if mock.Tags == nil {
mock.Tags = make(map[string]*imagev1.ImageStreamTag)
}
name := fmt.Sprintf("%s/%s", tag.ObjectMeta.Namespace, tag.ObjectMeta.Name)
mock.Tags[name] = tag
return tag, nil
}
func (mock *MockImageStreamTag) Update(ctx context.Context, tag *imagev1.ImageStreamTag, options meta_v1.UpdateOptions) (*imagev1.ImageStreamTag, error) {
if mock.Tags == nil {
mock.Tags = make(map[string]*imagev1.ImageStreamTag)
}
name := fmt.Sprintf("%s/%s", tag.ObjectMeta.Namespace, tag.ObjectMeta.Name)
old := mock.Tags[name]
mock.Tags[name] = tag
return old, nil
}
func (mock *MockImageStreamTag) Delete(ctx context.Context, name string, options meta_v1.DeleteOptions) error {
if mock.Tags == nil {
return nil
}
delete(mock.Tags, name)
return nil
}
func (mock *MockImageStreamTag) Get(ctx context.Context, name string, options meta_v1.GetOptions) (*imagev1.ImageStreamTag, error) {
if mock.Tags == nil {
return nil, nil
}
return mock.Tags[name], nil
}
func (mock *MockImageStreamTag) List(ctx context.Context, opts meta_v1.ListOptions) (*imagev1.ImageStreamTagList, error) {
if mock.Tags == nil {
return nil, nil
}
items := make([]imagev1.ImageStreamTag, 0, len(mock.Tags))
for _, val := range mock.Tags {
items = append(items, *val)
}
list := &imagev1.ImageStreamTagList{
Items: items,
}
return list, nil
}