response := makeBindingRequest(uniqueInstanceID(), uniqueBindingID(), details) Expect(response.StatusCode).To(Equal(201)) }) Context("when no bind details are being passed", func() { It("returns a 422", func() { response := makeBindingRequest(uniqueInstanceID(), uniqueBindingID(), nil) Expect(response.StatusCode).To(Equal(422)) }) }) Context("when there are arbitrary params", func() { BeforeEach(func() { details.Parameters = map[string]interface{}{ "string": "some-string", "number": 1, "object": struct{ Name string }{"some-name"}, "array": []interface{}{"a", "b", "c"}, } }) It("calls Bind on the service broker with all params", func() { makeBindingRequest(instanceID, bindingID, details) Expect(fakeServiceBroker.BoundBindingDetails.Parameters["string"]).To(Equal("some-string")) Expect(fakeServiceBroker.BoundBindingDetails.Parameters["number"]).To(Equal(1.0)) Expect(fakeServiceBroker.BoundBindingDetails.Parameters["array"]).To(Equal([]interface{}{"a", "b", "c"})) actual, _ := fakeServiceBroker.BoundBindingDetails.Parameters["object"].(map[string]interface{}) Expect(actual["Name"]).To(Equal("some-name")) }) }) })