Skip to content

Commit

Permalink
Merge pull request #40 from swagger-api/issue-39
Browse files Browse the repository at this point in the history
fix for #39
  • Loading branch information
fehguy committed Aug 26, 2015
2 parents e4587c6 + 63a1a87 commit e059921
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ public Response apply(ContainerRequestContext ctx) {
String key = kv[0];
String value = kv[1];
if (parameter.getName().equals(key)) {
JavaType jt = parameterClasses[i + 1];
JavaType jt = parameterClasses[i];
Class<?> cls = jt.getRawClass();
try {
o = validator.convertAndValidate(Arrays.asList(value), parameter, cls, definitions);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,14 @@
import javax.ws.rs.core.Response.Status;

public class TestController {
public ResponseContext formTest(RequestContext request, String user) {
System.out.println("found it! " + user);
return new ResponseContext()
.status(Status.OK)
.contentType(MediaType.APPLICATION_JSON_TYPE)
.entity(user);
}

public ResponseContext postFormData(RequestContext request, Long id, String name) {
// show a sample response
return new ResponseContext()
Expand Down
26 changes: 25 additions & 1 deletion src/test/java/io/swagger/test/integration/RequestTestIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
package io.swagger.test.integration;

import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.testng.annotations.Test;

import io.swagger.test.client.ApiClient;
Expand All @@ -26,6 +25,10 @@
import java.util.HashMap;
import java.util.Map;

import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.MultivaluedMap;

import static org.testng.Assert.*;

public class RequestTestIT {
Expand All @@ -51,4 +54,25 @@ public void verifyModelMappingFromExtensions() throws Exception {
String str = client.invokeAPI(path, "POST", new HashMap<String, String>(), null, new HashMap<String, String>(), null, "application/json", null, new String[0]);
assertEquals(str, "ok");
}

@Test
public void verifyPostFormData() throws Exception {
String path = "/formTest";

MultivaluedMap<String, String> formData = new MultivaluedHashMap<String, String>();
formData.add("user", "tony");

String str = client.invokeAPI(
path, // path
"POST", // method
new HashMap<String, String>(), // query
null, // body
new HashMap<String, String>(), // header
Entity.form(formData), // form
"application/json", // accept
"x-www-form-urlencoded", // contentType
new String[0]);

assertEquals(str, "tony");
}
}
16 changes: 16 additions & 0 deletions src/test/swagger/sample1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,22 @@ info:
basePath: /api

paths:
/formTest:
post:
operationId: formTest
x-swagger-router-controller: TestController
tags:
- formTest
consumes:
- x-www-form-urlencoded
parameters:
- name: user
in: formData
required: true
type: string
responses:
'200':
description: 'success!'
/mockResponses:
get:
tags:
Expand Down

0 comments on commit e059921

Please sign in to comment.