Reputation: 7788
I'm trying to create a restful service and I'm trying to consume my JSON response and convert it back to an Object.
Controller method
def mergeVendors(String region) {
def report = new VendorReport();
//do something with report
response.status = 201
response ([vendorReport: report]) as JSON
}
Test Method
void "Test Merge Vendors"() {
when:
controller.request.method = 'POST'
controller.request.json = '[{id:1, zip:"14224"}]'
controller.mergeVendors("Florida")
def response = controller.response
then:
response.zip == "14224"
}
The code above is what I'm trying to use and I get the following exception. How do I cast the response back to a VendorReport obj?
groovy.lang.MissingMethodException: No signature of method: org.healthresearch.VendorController.response() is applicable for argument types: (java.util.LinkedHashMap) values: [[vendorReport:org.vendor.VendorReport@1b0dbdf1]] Possible solutions: respond(java.lang.Object), getResponse(), respond(java.lang.Object, java.util.Map), respond(java.util.Map, java.lang.Object), respondsTo(java.lang.String), respondsTo(java.lang.String, [Ljava.lang.Object;)
Upvotes: 0
Views: 746
Reputation: 415
response ([vendorReport: report]) as JSON
change to
render ([vendorReport: report]) as JSON
Upvotes: 3