// TestSetActionFailed ensures SetActionFailed works properly. func (s *InterfaceSuite) TestSetActionFailed(c *gc.C) { hctx := runner.GetStubActionContext(nil) err := hctx.SetActionFailed() c.Assert(err, jc.ErrorIsNil) actionData, err := hctx.ActionData() c.Assert(err, jc.ErrorIsNil) c.Check(actionData.ActionFailed, jc.IsTrue) }
// TestSetActionMessage ensures SetActionMessage works properly. func (s *InterfaceSuite) TestSetActionMessage(c *gc.C) { hctx := runner.GetStubActionContext(nil) err := hctx.SetActionMessage("because reasons") c.Assert(err, jc.ErrorIsNil) actionData, err := hctx.ActionData() c.Check(err, jc.ErrorIsNil) c.Check(actionData.ResultsMessage, gc.Equals, "because reasons") }
// TestUpdateActionResults demonstrates that UpdateActionResults functions // as expected. func (s *InterfaceSuite) TestUpdateActionResults(c *gc.C) { tests := []struct { initial map[string]interface{} keys []string value string expected map[string]interface{} }{{ initial: map[string]interface{}{}, keys: []string{"foo"}, value: "bar", expected: map[string]interface{}{ "foo": "bar", }, }, { initial: map[string]interface{}{ "foo": "bar", }, keys: []string{"foo", "bar"}, value: "baz", expected: map[string]interface{}{ "foo": map[string]interface{}{ "bar": "baz", }, }, }, { initial: map[string]interface{}{ "foo": map[string]interface{}{ "bar": "baz", }, }, keys: []string{"foo"}, value: "bar", expected: map[string]interface{}{ "foo": "bar", }, }} for i, t := range tests { c.Logf("UpdateActionResults test %d: %#v: %#v", i, t.keys, t.value) hctx := runner.GetStubActionContext(t.initial) err := hctx.UpdateActionResults(t.keys, t.value) c.Assert(err, jc.ErrorIsNil) actionData, err := hctx.ActionData() c.Assert(err, jc.ErrorIsNil) c.Assert(actionData.ResultsMap, jc.DeepEquals, t.expected) } }