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")