func (s *apiclientSuite) TestOpenWithRedirect(c *gc.C) { redirectToHosts := []string{"0.1.2.3:1234", "0.1.2.4:1235"} redirectToCACert := "fake CA cert" srv := apiservertesting.NewAPIServer(func(modelUUID string) interface{} { return &redirectAPI{ modelUUID: modelUUID, redirectToHosts: redirectToHosts, redirectToCACert: redirectToCACert, } }) defer srv.Close() _, err := api.Open(&api.Info{ Addrs: srv.Addrs, CACert: jtesting.CACert, ModelTag: names.NewModelTag("beef1beef1-0000-0000-000011112222"), }, api.DialOpts{}) c.Assert(err, gc.ErrorMatches, `redirection to alternative server required`) hps, _ := network.ParseHostPorts(redirectToHosts...) c.Assert(errors.Cause(err), jc.DeepEquals, &api.RedirectError{ Servers: [][]network.HostPort{hps}, CACert: redirectToCACert, }) }
func (*fakeAPISuite) TestFakeAPI(c *gc.C) { var r root srv := apiservertesting.NewAPIServer(func(modelUUID string) interface{} { c.Check(modelUUID, gc.Equals, fakeUUID) return &r }) defer srv.Close() info := &api.Info{ Addrs: srv.Addrs, CACert: jtesting.CACert, ModelTag: names.NewModelTag(fakeUUID), } _, err := api.Open(info, api.DialOpts{}) c.Assert(err, jc.ErrorIsNil) c.Assert(r.calledMethods, jc.DeepEquals, []string{"Login"}) }