provisioningContext.InstanceId = "some-instance-id"
		})

		Context("when all goes ok", func() {
			BeforeEach(func() {
				instance := repository.Instance{
					ID:             "some-instance-id",
					ServiceID:      "service-1",
					PlanID:         "plan-1",
					OrganizationID: "org-1",
					SpaceID:        "space-1",
				}

				state.InstanceReturns(&instance, nil)

				provisioningContext.ServiceId = "service-2"
				provisioningContext.PlanId = "plan-2"
				err := provisioningController.Update(provisioningContext)
				Expect(err).ToNot(HaveOccurred())
			})

			It("responds with 200", func() {
				Expect(goaContext.ResponseStatus()).To(Equal(200))
			})

			It("sends the correct message to the state", func() {
				recordedInstance := state.UpdateInstanceArgsForCall(0)
				Expect(recordedInstance.ID).To(Equal("some-instance-id"))
				Expect(recordedInstance.OrganizationID).To(Equal("org-1"))
				Expect(recordedInstance.SpaceID).To(Equal("space-1"))
				Expect(recordedInstance.ServiceID).To(Equal("service-2"))