本文整理汇总了Golang中github.com/juju/juju/api/base/testing.APICallerFunc函数的典型用法代码示例。如果您正苦于以下问题:Golang APICallerFunc函数的具体用法?Golang APICallerFunc怎么用?Golang APICallerFunc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了APICallerFunc函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestActionFinishSuccess
func (s *ClientSuite) TestActionFinishSuccess(c *gc.C) {
tag := names.NewActionTag(utils.MustNewUUID().String())
status := "stubstatus"
actionResults := map[string]interface{}{"stub": "stub"}
message := "stubmsg"
expectedCalls := []jujutesting.StubCall{{
"MachineActions.FinishActions",
[]interface{}{"", params.ActionExecutionResults{
Results: []params.ActionExecutionResult{{
ActionTag: tag.String(),
Status: status,
Results: actionResults,
Message: message,
}},
}},
}}
var stub jujutesting.Stub
apiCaller := apitesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
stub.AddCall(objType+"."+request, id, arg)
c.Check(result, gc.FitsTypeOf, ¶ms.ErrorResults{})
*(result.(*params.ErrorResults)) = params.ErrorResults{
Results: []params.ErrorResult{{}},
}
return nil
})
client := machineactions.NewClient(apiCaller)
err := client.ActionFinish(tag, status, actionResults, message)
c.Assert(err, jc.ErrorIsNil)
stub.CheckCalls(c, expectedCalls)
}
示例2: mockAPICaller
func mockAPICaller(c *gc.C, callNumber *int32, apiCalls ...apiCall) apitesting.APICallerFunc {
apiCaller := apitesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
switch objType {
case "NotifyWatcher":
return nil
case "Uniter":
index := int(atomic.AddInt32(callNumber, 1)) - 1
c.Check(index < len(apiCalls), jc.IsTrue)
call := apiCalls[index]
c.Logf("request %d, %s", index, request)
c.Check(version, gc.Equals, 4)
c.Check(id, gc.Equals, "")
c.Check(request, gc.Equals, call.request)
c.Check(arg, jc.DeepEquals, call.args)
if call.err != nil {
return common.ServerError(call.err)
}
testing.PatchValue(result, call.result)
default:
c.Fail()
}
return nil
})
return apiCaller
}
示例3: TestListVolumesEmptyFilter
func (s *storageMockSuite) TestListVolumesEmptyFilter(c *gc.C) {
var called bool
tag := "ok"
apiCaller := basetesting.APICallerFunc(
func(objType string,
version int,
id, request string,
a, result interface{},
) error {
called = true
c.Check(objType, gc.Equals, "Storage")
c.Check(id, gc.Equals, "")
c.Check(request, gc.Equals, "ListVolumes")
c.Assert(a, gc.FitsTypeOf, params.VolumeFilter{})
args := a.(params.VolumeFilter)
c.Assert(args.IsEmpty(), jc.IsTrue)
c.Assert(result, gc.FitsTypeOf, ¶ms.VolumeDetailsResults{})
results := result.(*params.VolumeDetailsResults)
results.Results = []params.VolumeDetailsResult{
{LegacyVolume: ¶ms.LegacyVolumeDetails{VolumeTag: tag}},
}
return nil
})
storageClient := storage.NewClient(apiCaller)
found, err := storageClient.ListVolumes(nil)
c.Assert(called, jc.IsTrue)
c.Assert(err, jc.ErrorIsNil)
c.Assert(found, gc.HasLen, 1)
c.Assert(found[0].LegacyVolume.VolumeTag, gc.Equals, tag)
}
示例4: TestGetMetrics
func (s *metricsdebugSuiteMock) TestGetMetrics(c *gc.C) {
var called bool
now := time.Now()
apiCaller := basetesting.APICallerFunc(
func(objType string,
version int,
id, request string,
a, response interface{},
) error {
c.Assert(request, gc.Equals, "GetMetrics")
result := response.(*params.MetricResults)
result.Results = []params.EntityMetrics{{
Metrics: []params.MetricResult{{
Key: "pings",
Value: "5",
Time: now,
}},
Error: nil,
}}
called = true
return nil
})
client := metricsdebug.NewClient(apiCaller)
metrics, err := client.GetMetrics("unit-wordpress/0")
c.Assert(err, jc.ErrorIsNil)
c.Assert(called, jc.IsTrue)
c.Assert(metrics, gc.HasLen, 1)
c.Assert(metrics[0].Key, gc.Equals, "pings")
c.Assert(metrics[0].Value, gc.Equals, "5")
c.Assert(metrics[0].Time, gc.Equals, now)
}
示例5: TestAddUnitStorageError
func (s *unitStorageSuite) TestAddUnitStorageError(c *gc.C) {
count := uint64(1)
args := map[string][]params.StorageConstraints{
"data": []params.StorageConstraints{params.StorageConstraints{Count: &count}},
}
expected := params.StoragesAddParams{
Storages: []params.StorageAddParams{
{"unit-mysql-0", "data", params.StorageConstraints{Count: &count}},
},
}
var called bool
msg := "yoink"
apiCaller := basetesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
c.Assert(objType, gc.Equals, "Uniter")
c.Assert(version, gc.Equals, 3)
c.Assert(id, gc.Equals, "")
c.Assert(request, gc.Equals, "AddUnitStorage")
c.Assert(arg, gc.DeepEquals, expected)
called = true
c.Assert(result, gc.FitsTypeOf, ¶ms.ErrorResults{})
return errors.New(msg)
})
u := s.createTestUnit(c, "mysql/0", apiCaller)
err := u.AddStorage(args)
c.Assert(err, gc.ErrorMatches, msg)
c.Assert(called, jc.IsTrue)
}
示例6: checkNotStateServer
func (s *ServingInfoSetterSuite) checkNotStateServer(c *gc.C, job multiwatcher.MachineJob) {
a := &mockAgent{}
apiCaller := basetesting.APICallerFunc(
func(objType string, version int, id, request string, args, response interface{}) error {
c.Assert(objType, gc.Equals, "Agent")
switch request {
case "GetEntities":
c.Assert(args.(params.Entities).Entities, gc.HasLen, 1)
result := response.(*params.AgentGetEntitiesResults)
result.Entities = []params.AgentGetEntitiesResult{{
Jobs: []multiwatcher.MachineJob{job},
}}
default:
c.Fatalf("not sure how to handle: %q", request)
}
return nil
},
)
w, err := s.manifold.Start(dt.StubGetResource(dt.StubResources{
"agent": dt.StubResource{Output: a},
"api-caller": dt.StubResource{Output: apiCaller},
}))
c.Assert(w, gc.IsNil)
c.Assert(err, gc.Equals, dependency.ErrUninstall)
// State serving info shouldn't have been set for this job type.
c.Assert(a.conf.ssiSet, jc.IsFalse)
}
示例7: TestGetMeterStatusResultError
func (s *meterStatusSuite) TestGetMeterStatusResultError(c *gc.C) {
tag := names.NewUnitTag("wp/1")
var called bool
apiCaller := testing.APICallerFunc(func(objType string, version int, id, request string, arg, response interface{}) error {
c.Check(objType, gc.Equals, "MeterStatus")
c.Check(version, gc.Equals, 0)
c.Check(id, gc.Equals, "")
c.Check(request, gc.Equals, "GetMeterStatus")
c.Check(arg, gc.DeepEquals, params.Entities{
Entities: []params.Entity{{Tag: tag.String()}},
})
c.Assert(response, gc.FitsTypeOf, ¶ms.MeterStatusResults{})
result := response.(*params.MeterStatusResults)
result.Results = []params.MeterStatusResult{{
Error: ¶ms.Error{
Message: "An error in the meter status.",
Code: params.CodeNotAssigned,
},
}}
called = true
return nil
})
status := meterstatus.NewClient(apiCaller, tag)
c.Assert(status, gc.NotNil)
statusCode, statusInfo, err := status.MeterStatus()
c.Assert(called, jc.IsTrue)
c.Assert(err, gc.ErrorMatches, "An error in the meter status.")
c.Assert(statusCode, gc.Equals, "")
c.Assert(statusInfo, gc.Equals, "")
}
示例8: TestWatchResultError
func (s *ClientSuite) TestWatchResultError(c *gc.C) {
tag := names.NewMachineTag("2")
expectErr := ¶ms.Error{
Message: "rigged",
Code: params.CodeNotAssigned,
}
expectedCalls := []jujutesting.StubCall{{
"MachineActions.WatchActionNotifications",
[]interface{}{"", params.Entities{
Entities: []params.Entity{{Tag: tag.String()}},
}},
}}
var stub jujutesting.Stub
apiCaller := apitesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
stub.AddCall(objType+"."+request, id, arg)
c.Check(result, gc.FitsTypeOf, ¶ms.StringsWatchResults{})
res := result.(*params.StringsWatchResults)
res.Results = make([]params.StringsWatchResult, 1)
res.Results[0].Error = expectErr
return nil
})
client := machineactions.NewClient(apiCaller)
w, err := client.WatchActionNotifications(tag)
c.Assert(errors.Cause(err), gc.Equals, expectErr)
c.Assert(w, gc.IsNil)
stub.CheckCalls(c, expectedCalls)
}
示例9: TestWatchStorageAttachments
func (s *storageSuite) TestWatchStorageAttachments(c *gc.C) {
var called bool
apiCaller := testing.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
c.Check(objType, gc.Equals, "Uniter")
c.Check(version, gc.Equals, 2)
c.Check(id, gc.Equals, "")
c.Check(request, gc.Equals, "WatchStorageAttachments")
c.Check(arg, gc.DeepEquals, params.StorageAttachmentIds{
Ids: []params.StorageAttachmentId{{
StorageTag: "storage-data-0",
UnitTag: "unit-mysql-0",
}},
})
c.Assert(result, gc.FitsTypeOf, ¶ms.NotifyWatchResults{})
*(result.(*params.NotifyWatchResults)) = params.NotifyWatchResults{
Results: []params.NotifyWatchResult{{
Error: ¶ms.Error{Message: "FAIL"},
}},
}
called = true
return nil
})
st := uniter.NewState(apiCaller, names.NewUnitTag("mysql/0"))
_, err := st.WatchStorageAttachment(names.NewStorageTag("data/0"), names.NewUnitTag("mysql/0"))
c.Check(err, gc.ErrorMatches, "FAIL")
c.Check(called, jc.IsTrue)
}
示例10: TestRunningActionSuccess
func (s *ClientSuite) TestRunningActionSuccess(c *gc.C) {
tag := names.NewMachineTag(utils.MustNewUUID().String())
expectedCalls := []jujutesting.StubCall{{
"MachineActions.RunningActions",
[]interface{}{"", params.Entities{
Entities: []params.Entity{{Tag: tag.String()}},
}},
}}
actionsList := []params.ActionResult{
{Action: ¶ms.Action{Name: "foo"}},
{Action: ¶ms.Action{Name: "baz"}},
}
var stub jujutesting.Stub
apiCaller := apitesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
stub.AddCall(objType+"."+request, id, arg)
c.Check(result, gc.FitsTypeOf, ¶ms.ActionsByReceivers{})
*(result.(*params.ActionsByReceivers)) = params.ActionsByReceivers{
Actions: []params.ActionsByReceiver{{
Actions: actionsList,
}},
}
return nil
})
client := machineactions.NewClient(apiCaller)
actions, err := client.RunningActions(tag)
c.Assert(err, jc.ErrorIsNil)
c.Assert(actions, jc.DeepEquals, actionsList)
stub.CheckCalls(c, expectedCalls)
}
示例11: TestRunningActionsResultError
func (s *ClientSuite) TestRunningActionsResultError(c *gc.C) {
tag := names.NewMachineTag(utils.MustNewUUID().String())
expectedCalls := []jujutesting.StubCall{{
"MachineActions.RunningActions",
[]interface{}{"", params.Entities{
Entities: []params.Entity{{Tag: tag.String()}},
}},
}}
expectedErr := ¶ms.Error{
Message: "rigged",
Code: params.CodeNotAssigned,
}
var stub jujutesting.Stub
apiCaller := apitesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
stub.AddCall(objType+"."+request, id, arg)
c.Check(result, gc.FitsTypeOf, ¶ms.ActionsByReceivers{})
*(result.(*params.ActionsByReceivers)) = params.ActionsByReceivers{
Actions: []params.ActionsByReceiver{{
Error: expectedErr,
}},
}
return nil
})
client := machineactions.NewClient(apiCaller)
action, err := client.RunningActions(tag)
c.Assert(errors.Cause(err), gc.Equals, expectedErr)
c.Assert(action, gc.IsNil)
stub.CheckCalls(c, expectedCalls)
}
示例12: TestGetActionSuccess
func (s *ClientSuite) TestGetActionSuccess(c *gc.C) {
tag := names.NewActionTag(utils.MustNewUUID().String())
expectedCalls := []jujutesting.StubCall{{
"MachineActions.Actions",
[]interface{}{"", params.Entities{
Entities: []params.Entity{{Tag: tag.String()}},
}},
}}
expectedName := "ack"
expectedParams := map[string]interface{}{"floob": "zgloob"}
var stub jujutesting.Stub
apiCaller := apitesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
stub.AddCall(objType+"."+request, id, arg)
c.Check(result, gc.FitsTypeOf, ¶ms.ActionResults{})
*(result.(*params.ActionResults)) = params.ActionResults{
Results: []params.ActionResult{{
Action: ¶ms.Action{
Name: expectedName,
Parameters: expectedParams,
},
}},
}
return nil
})
client := machineactions.NewClient(apiCaller)
action, err := client.Action(tag)
c.Assert(err, jc.ErrorIsNil)
c.Assert(action.Name(), gc.Equals, expectedName)
c.Assert(action.Params(), gc.DeepEquals, expectedParams)
stub.CheckCalls(c, expectedCalls)
}
示例13: TestActionFinishTooManyResults
func (s *ClientSuite) TestActionFinishTooManyResults(c *gc.C) {
tag := names.NewActionTag(utils.MustNewUUID().String())
expectedCalls := []jujutesting.StubCall{{
"MachineActions.FinishActions",
[]interface{}{"", params.ActionExecutionResults{
Results: []params.ActionExecutionResult{{
ActionTag: tag.String(),
Status: "",
Results: nil,
Message: "",
}},
}},
}}
var stub jujutesting.Stub
apiCaller := apitesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
stub.AddCall(objType+"."+request, id, arg)
c.Check(result, gc.FitsTypeOf, ¶ms.ErrorResults{})
res := result.(*params.ErrorResults)
res.Results = make([]params.ErrorResult, 2)
return nil
})
client := machineactions.NewClient(apiCaller)
err := client.ActionFinish(tag, "", nil, "")
c.Assert(err, gc.ErrorMatches, "expected 1 result, got 2")
stub.CheckCalls(c, expectedCalls)
}
示例14: TestActionFinishResultError
func (s *ClientSuite) TestActionFinishResultError(c *gc.C) {
tag := names.NewActionTag(utils.MustNewUUID().String())
expectedCalls := []jujutesting.StubCall{{
"MachineActions.FinishActions",
[]interface{}{"", params.ActionExecutionResults{
Results: []params.ActionExecutionResult{{
ActionTag: tag.String(),
Status: "",
Results: nil,
Message: "",
}},
}},
}}
expectedErr := ¶ms.Error{
Message: "rigged",
Code: params.CodeNotAssigned,
}
var stub jujutesting.Stub
apiCaller := apitesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
stub.AddCall(objType+"."+request, id, arg)
c.Check(result, gc.FitsTypeOf, ¶ms.ErrorResults{})
*(result.(*params.ErrorResults)) = params.ErrorResults{
Results: []params.ErrorResult{{expectedErr}},
}
return nil
})
client := machineactions.NewClient(apiCaller)
err := client.ActionFinish(tag, "", nil, "")
c.Assert(errors.Cause(err), gc.Equals, expectedErr)
stub.CheckCalls(c, expectedCalls)
}
示例15: TestWatchRetryStrategyResultError
func (s *retryStrategySuite) TestWatchRetryStrategyResultError(c *gc.C) {
tag := names.NewUnitTag("wp/1")
var called bool
apiCaller := testing.APICallerFunc(func(objType string, version int, id, request string, arg, response interface{}) error {
called = true
c.Check(objType, gc.Equals, "RetryStrategy")
c.Check(version, gc.Equals, 0)
c.Check(id, gc.Equals, "")
c.Check(request, gc.Equals, "WatchRetryStrategy")
c.Check(arg, gc.DeepEquals, params.Entities{
Entities: []params.Entity{{Tag: tag.String()}},
})
c.Assert(response, gc.FitsTypeOf, ¶ms.NotifyWatchResults{})
result := response.(*params.NotifyWatchResults)
result.Results = []params.NotifyWatchResult{{
Error: ¶ms.Error{
Message: "rigged",
Code: params.CodeNotAssigned,
},
}}
return nil
})
client := retrystrategy.NewClient(apiCaller)
c.Assert(client, gc.NotNil)
w, err := client.WatchRetryStrategy(tag)
c.Assert(called, jc.IsTrue)
c.Assert(err, gc.ErrorMatches, "rigged")
c.Assert(w, gc.IsNil)
}