Expect(serviceRepo.UpdateArgsForCall(0).Params).To(Equal(map[string]interface{}{"foo": "bar"})) Expect(serviceRepo.UpdateArgsForCall(0).SysLogDrainUrl).To(Equal("syslog://example.com")) }) }) It("accepts service parameters interactively", func() { ui.Inputs = []string{"foo value", "bar value", "baz value"} runCommand("-p", "foo, bar, baz", "my-custom-service") Expect(ui.Prompts).To(ContainSubstrings( []string{"foo"}, []string{"bar"}, []string{"baz"}, )) Expect(serviceRepo.UpdateCallCount()).To(Equal(1)) serviceInstanceFields := serviceRepo.UpdateArgsForCall(0) Expect(serviceInstanceFields.Params).To(Equal(map[string]interface{}{ "foo": "foo value", "bar": "bar value", "baz": "baz value", })) }) It("accepts service parameters as a file containing JSON without prompting", func() { tempfile, err := ioutil.TempFile("", "update-user-provided-service-test") Expect(err).NotTo(HaveOccurred()) ioutil.WriteFile(tempfile.Name(), []byte(`{"foo": "bar"}`), os.ModePerm) runCommand("-p", fmt.Sprintf("@%s", tempfile.Name()), "my-custom-service")