Воспроизвести метод контроллера рамки, который принимает POST - PullRequest
2 голосов
/ 05 февраля 2012

Я не нашел пример, детализирующий формат метода, который принимает пост-запрос и соответствующий функциональный тест для того же самого. Ниже то, что я делаю. Метод контроллера получает нулевое значение строки json. Я посмотрел на вариант с переплетом, но я чувствую, что приведенный ниже подход прост и пытается сделать эту работу. Я что-то упускаю из виду?

play v 1.2.4

маршруты

  /v1/xyzs                  Application.createXyz(format:'json')

Контроллер

public static void createXyz(String xyzJson)
{
    Xyz xyz = new Gson().fromJson(xyzJson, Xyz.class);
    Xyz savedXyz = xyz.save();

    render();
}

Функциональный тест

@Test
public void createXyzTest()
{
    Xyz xyz = new Xyz("id", 12345, "Summary", "Main");
    String body = new Gson().toJson(xyz);

    Response response = POST("/v1/xyzs", "application/json", body);

    assertStatus(201, response);
}

UPDATE: Ниже код в функциональном тесте работал.

Xyz xyz = new Xyz("id", 12345, "Summary", "Main");
String body = new Gson().toJson(xyz);

Map<String,String> params = new HashMap<String,String>();
params.put("xyzJson", body);
Response response = POST("/v1/xyzs",params);

1 Ответ

1 голос
/ 05 февраля 2012

Что, если String body = String.format("{\"xyzJson\": %s}", new Gson().toJson(xyz));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...