14287: Merge branch 'master'
[arvados.git] / sdk / go / arvadostest / api.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: Apache-2.0
4
5 package arvadostest
6
7 import (
8         "context"
9         "errors"
10         "sync"
11
12         "git.curoverse.com/arvados.git/sdk/go/arvados"
13 )
14
15 var ErrStubUnimplemented = errors.New("stub unimplemented")
16
17 type APIStub struct {
18         // The error to return from every stubbed API method.
19         Error error
20         calls []APIStubCall
21         mtx   sync.Mutex
22 }
23
24 func (as *APIStub) CollectionCreate(ctx context.Context, options arvados.CreateOptions) (arvados.Collection, error) {
25         as.appendCall(as.CollectionCreate, ctx, options)
26         return arvados.Collection{}, as.Error
27 }
28 func (as *APIStub) CollectionUpdate(ctx context.Context, options arvados.UpdateOptions) (arvados.Collection, error) {
29         as.appendCall(as.CollectionUpdate, ctx, options)
30         return arvados.Collection{}, as.Error
31 }
32 func (as *APIStub) CollectionGet(ctx context.Context, options arvados.GetOptions) (arvados.Collection, error) {
33         as.appendCall(as.CollectionGet, ctx, options)
34         return arvados.Collection{}, as.Error
35 }
36 func (as *APIStub) CollectionList(ctx context.Context, options arvados.ListOptions) (arvados.CollectionList, error) {
37         as.appendCall(as.CollectionList, ctx, options)
38         return arvados.CollectionList{}, as.Error
39 }
40 func (as *APIStub) CollectionProvenance(ctx context.Context, options arvados.GetOptions) (map[string]interface{}, error) {
41         as.appendCall(as.CollectionProvenance, ctx, options)
42         return nil, as.Error
43 }
44 func (as *APIStub) CollectionUsedBy(ctx context.Context, options arvados.GetOptions) (map[string]interface{}, error) {
45         as.appendCall(as.CollectionUsedBy, ctx, options)
46         return nil, as.Error
47 }
48 func (as *APIStub) CollectionDelete(ctx context.Context, options arvados.DeleteOptions) (arvados.Collection, error) {
49         as.appendCall(as.CollectionDelete, ctx, options)
50         return arvados.Collection{}, as.Error
51 }
52 func (as *APIStub) CollectionTrash(ctx context.Context, options arvados.DeleteOptions) (arvados.Collection, error) {
53         as.appendCall(as.CollectionTrash, ctx, options)
54         return arvados.Collection{}, as.Error
55 }
56 func (as *APIStub) CollectionUntrash(ctx context.Context, options arvados.UntrashOptions) (arvados.Collection, error) {
57         as.appendCall(as.CollectionUntrash, ctx, options)
58         return arvados.Collection{}, as.Error
59 }
60 func (as *APIStub) ContainerCreate(ctx context.Context, options arvados.CreateOptions) (arvados.Container, error) {
61         as.appendCall(as.ContainerCreate, ctx, options)
62         return arvados.Container{}, as.Error
63 }
64 func (as *APIStub) ContainerUpdate(ctx context.Context, options arvados.UpdateOptions) (arvados.Container, error) {
65         as.appendCall(as.ContainerUpdate, ctx, options)
66         return arvados.Container{}, as.Error
67 }
68 func (as *APIStub) ContainerGet(ctx context.Context, options arvados.GetOptions) (arvados.Container, error) {
69         as.appendCall(as.ContainerGet, ctx, options)
70         return arvados.Container{}, as.Error
71 }
72 func (as *APIStub) ContainerList(ctx context.Context, options arvados.ListOptions) (arvados.ContainerList, error) {
73         as.appendCall(as.ContainerList, ctx, options)
74         return arvados.ContainerList{}, as.Error
75 }
76 func (as *APIStub) ContainerDelete(ctx context.Context, options arvados.DeleteOptions) (arvados.Container, error) {
77         as.appendCall(as.ContainerDelete, ctx, options)
78         return arvados.Container{}, as.Error
79 }
80 func (as *APIStub) ContainerLock(ctx context.Context, options arvados.GetOptions) (arvados.Container, error) {
81         as.appendCall(as.ContainerLock, ctx, options)
82         return arvados.Container{}, as.Error
83 }
84 func (as *APIStub) ContainerUnlock(ctx context.Context, options arvados.GetOptions) (arvados.Container, error) {
85         as.appendCall(as.ContainerUnlock, ctx, options)
86         return arvados.Container{}, as.Error
87 }
88 func (as *APIStub) SpecimenCreate(ctx context.Context, options arvados.CreateOptions) (arvados.Specimen, error) {
89         as.appendCall(as.SpecimenCreate, ctx, options)
90         return arvados.Specimen{}, as.Error
91 }
92 func (as *APIStub) SpecimenUpdate(ctx context.Context, options arvados.UpdateOptions) (arvados.Specimen, error) {
93         as.appendCall(as.SpecimenUpdate, ctx, options)
94         return arvados.Specimen{}, as.Error
95 }
96 func (as *APIStub) SpecimenGet(ctx context.Context, options arvados.GetOptions) (arvados.Specimen, error) {
97         as.appendCall(as.SpecimenGet, ctx, options)
98         return arvados.Specimen{}, as.Error
99 }
100 func (as *APIStub) SpecimenList(ctx context.Context, options arvados.ListOptions) (arvados.SpecimenList, error) {
101         as.appendCall(as.SpecimenList, ctx, options)
102         return arvados.SpecimenList{}, as.Error
103 }
104 func (as *APIStub) SpecimenDelete(ctx context.Context, options arvados.DeleteOptions) (arvados.Specimen, error) {
105         as.appendCall(as.SpecimenDelete, ctx, options)
106         return arvados.Specimen{}, as.Error
107 }
108 func (as *APIStub) APIClientAuthorizationCurrent(ctx context.Context, options arvados.GetOptions) (arvados.APIClientAuthorization, error) {
109         as.appendCall(as.APIClientAuthorizationCurrent, ctx, options)
110         return arvados.APIClientAuthorization{}, as.Error
111 }
112
113 func (as *APIStub) appendCall(method interface{}, ctx context.Context, options interface{}) {
114         as.mtx.Lock()
115         defer as.mtx.Unlock()
116         as.calls = append(as.calls, APIStubCall{method, ctx, options})
117 }
118
119 func (as *APIStub) Calls(method interface{}) []APIStubCall {
120         as.mtx.Lock()
121         defer as.mtx.Unlock()
122         var calls []APIStubCall
123         for _, call := range as.calls {
124                 if method == nil || call.Method == method {
125                         calls = append(calls, call)
126                 }
127         }
128         return calls
129 }
130
131 type APIStubCall struct {
132         Method  interface{}
133         Context context.Context
134         Options interface{}
135 }