forked from kubeflow/pipelines
-
Notifications
You must be signed in to change notification settings - Fork 0
/
experiment_client_fake.go
90 lines (76 loc) · 2.5 KB
/
experiment_client_fake.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package api_server
import (
"fmt"
"github.com/go-openapi/strfmt"
experimentparams "github.com/kubeflow/pipelines/backend/api/go_http_client/experiment_client/experiment_service"
experimentmodel "github.com/kubeflow/pipelines/backend/api/go_http_client/experiment_model"
)
const (
ExperimentForDefaultTest = "EXPERIMENT_DEFAULT"
ExperimentForClientErrorTest = "EXPERIMENT_CLIENT_ERROR"
)
func getDefaultExperiment(id string, name string) *experimentmodel.APIExperiment {
return &experimentmodel.APIExperiment{
CreatedAt: strfmt.NewDateTime(),
Description: "EXPERIMENT_DESCRIPTION",
ID: id,
Name: name,
}
}
type ExperimentClientFake struct{}
func NewExperimentClientFake() *ExperimentClientFake {
return &ExperimentClientFake{}
}
func (c *ExperimentClientFake) Create(params *experimentparams.CreateExperimentParams) (
*experimentmodel.APIExperiment, error) {
switch params.Body.Name {
case ExperimentForClientErrorTest:
return nil, fmt.Errorf(ClientErrorString)
default:
return getDefaultExperiment("500", params.Body.Name), nil
}
}
func (c *ExperimentClientFake) Get(params *experimentparams.GetExperimentParams) (
*experimentmodel.APIExperiment, error) {
switch params.ID {
case ExperimentForClientErrorTest:
return nil, fmt.Errorf(ClientErrorString)
default:
return getDefaultExperiment(params.ID, "EXPERIMENT_NAME"), nil
}
}
func (c *ExperimentClientFake) List(params *experimentparams.ListExperimentParams) (
[]*experimentmodel.APIExperiment, int, string, error) {
const (
FirstToken = ""
SecondToken = "SECOND_TOKEN"
FinalToken = ""
)
token := ""
if params.PageToken != nil {
token = *params.PageToken
}
switch token {
case FirstToken:
return []*experimentmodel.APIExperiment{
getDefaultExperiment("100", "MY_FIRST_EXPERIMENT"),
getDefaultExperiment("101", "MY_SECOND_EXPERIMENT"),
}, 2, SecondToken, nil
case SecondToken:
return []*experimentmodel.APIExperiment{
getDefaultExperiment("102", "MY_THIRD_EXPERIMENT"),
}, 1, FinalToken, nil
default:
return nil, 0, "", fmt.Errorf(InvalidFakeRequest, token)
}
}
func (c *ExperimentClientFake) ListAll(params *experimentparams.ListExperimentParams,
maxResultSize int) ([]*experimentmodel.APIExperiment, error) {
return listAllForExperiment(c, params, maxResultSize)
}
func (c *ExperimentClientFake) Archive(params *experimentparams.ArchiveExperimentParams) error {
return nil
}
func (c *ExperimentClientFake) Unarchive(params *experimentparams.UnarchiveExperimentParams) error {
return nil
}