/** * Set a Json Body to this request. * The <tt>Content-Type</tt> header of the request is set to <tt>application/json</tt>. * The method is set to <tt>POST</tt>. * @param node the Json Node * @return the Fake Request */ @SuppressWarnings(value = "unchecked") public FakeRequest withJsonBody(JsonNode node) { return withJsonBody(play.api.libs.json.Json.parse(node.toString())); }
/** * Set a Json Body to this request. * The <tt>Content-Type</tt> header of the request is set to <tt>application/json</tt>. * * @param json the JsValue * @return the modified builder */ public RequestBuilder bodyJson(JsValue json) { return bodyJson(Json.parse(play.api.libs.json.Json.stringify(json))); }
@Override public DynamicForm bind(Lang lang, TypedMap attrs, JsonNode data, String... allowedFields) { return bind(lang, attrs, play.libs.Scala.asJava( play.api.data.FormUtils.fromJson("", play.api.libs.json.Json.parse( play.libs.Json.stringify(data) ) ) ), allowedFields ); }
/** * Set a Json Body to this request. * The <tt>Content-Type</tt> header of the request is set to <tt>application/json</tt>. * * @param json the JsValue * @return the modified builder */ public RequestBuilder bodyJson(JsValue json) { return bodyJson(Json.parse(play.api.libs.json.Json.stringify(json))); }
@Override public DynamicForm bind(Lang lang, TypedMap attrs, JsonNode data, String... allowedFields) { return bind(lang, attrs, play.libs.Scala.asJava( play.api.data.FormUtils.fromJson("", play.api.libs.json.Json.parse( play.libs.Json.stringify(data) ) ) ), allowedFields ); }
/** * Set a Json Body to this request. * The <tt>Content-Type</tt> header of the request is set to <tt>application/json</tt>. * * @param json the JsValue * @return the modified builder */ public RequestBuilder bodyJson(JsValue json) { return bodyJson(Json.parse(play.api.libs.json.Json.stringify(json))); }
@Override public DynamicForm bind(Lang lang, TypedMap attrs, JsonNode data, String... allowedFields) { return bind(lang, attrs, play.libs.Scala.asJava( play.api.data.FormUtils.fromJson("", play.api.libs.json.Json.parse( play.libs.Json.stringify(data) ) ) ), allowedFields ); }
/** * Binds Json data to this form - that is, handles form submission. * * @param data data to submit * @return a copy of this form filled with the new data */ public Form<T> bind(com.fasterxml.jackson.databind.JsonNode data, String... allowedFields) { return bind( play.libs.Scala.asJava( play.api.data.FormUtils.fromJson("", play.api.libs.json.Json.parse( play.libs.Json.stringify(data) ) ) ), allowedFields ); }
/** * Binds Json data to this form - that is, handles form submission. * * @param data data to submit * @return a copy of this form filled with the new data */ public Form<T> bind(org.codehaus.jackson.JsonNode data, String... allowedFields) { return bind( play.libs.Scala.asJava( play.api.data.FormUtils.fromJson("", play.api.libs.json.Json.parse( play.libs.Json.stringify(data) ) ) ), allowedFields ); }
/** * Binds Json data to this form - that is, handles form submission. * * @param lang used for validators and formatters during binding and is part of {@link ValidationPayload}. * Later also used for formatting when retrieving a field (via {@link #field(String)} or {@link #apply(String)}) * and for translations in {@link #errorsAsJson()}. For these methods the lang can be change via {@link #withLang(Lang)}. * @param attrs will be passed to validators via {@link ValidationPayload} * @param data data to submit * @param allowedFields the fields that should be bound to the form, all fields if not specified. * @return a copy of this form filled with the new data */ public Form<T> bind(Lang lang, TypedMap attrs, JsonNode data, String... allowedFields) { return bind(lang, attrs, play.libs.Scala.asJava( play.api.data.FormUtils.fromJson("", play.api.libs.json.Json.parse( play.libs.Json.stringify(data) ) ) ), allowedFields ); }
@Test void deserializeShouldThrowWhenNoFlags() { assertThatThrownBy(() -> DTO_JSON_SERIALIZE.messageMetaDataReads().reads(Json.parse("{" + " \"uid\": 123456," + " \"modSeq\": 35," + " \"size\": 45, " + " \"internalDate\": \"2018-12-14T09:41:51.541Z\"," + " \"messageId\": \"42\"" + "}")) .get()) .isInstanceOf(NoSuchElementException.class); }
@Test void deserializeShouldThrowWhenNoSize() { assertThatThrownBy(() -> DTO_JSON_SERIALIZE.messageMetaDataReads().reads(Json.parse("{" + " \"uid\": 123456," + " \"modSeq\": 35," + " \"flags\": {" + " \"systemFlags\":[\"Answered\",\"Draft\"], " + " \"userFlags\":[\"User Custom Flag\"]}," + " \"internalDate\": \"2018-12-14T09:41:51.541Z\"," + " \"messageId\": \"42\"" + "}")) .get()) .isInstanceOf(NoSuchElementException.class); }
@Test void deserializeShouldThrowWhenNoInternalDate() { assertThatThrownBy(() -> DTO_JSON_SERIALIZE.messageMetaDataReads().reads(Json.parse("{" + " \"uid\": 123456," + " \"modSeq\": 35," + " \"flags\": {" + " \"systemFlags\":[\"Answered\",\"Draft\"], " + " \"userFlags\":[\"User Custom Flag\"]}," + " \"size\": 45, " + " \"messageId\": \"42\"" + "}")) .get()) .isInstanceOf(NoSuchElementException.class); }
@Test void deserializeShouldThrowWhenNoUid() { assertThatThrownBy(() -> DTO_JSON_SERIALIZE.messageMetaDataReads().reads(Json.parse("{" + " \"modSeq\": 35," + " \"flags\": {" + " \"systemFlags\":[\"Answered\",\"Draft\"], " + " \"userFlags\":[\"User Custom Flag\"]}," + " \"size\": 45, " + " \"internalDate\": \"2018-12-14T09:41:51.541Z\"," + " \"messageId\": \"42\"" + "}")) .get()) .isInstanceOf(NoSuchElementException.class); }
@Test void deSerializeShouldThrowWhenInternalDateContainsOnlyDate() { assertThatThrownBy(() -> DTO_JSON_SERIALIZE.messageMetaDataReads().reads(Json.parse("{" + " \"uid\": 123456," + " \"size\": 42," + " \"flags\": {" + " \"systemFlags\":[\"Answered\",\"Draft\"], " + " \"userFlags\":[\"User Custom Flag\"]}," + " \"modSeq\": 45, " + " \"internalDate\": \"2018-12-14\"," + " \"messageId\": \"42\"" + "}")) .get()) .isInstanceOf(NoSuchElementException.class); }
@Test void deSerializeShouldThrowWhenInternalDateIsMissingHourPart() { assertThatThrownBy(() -> DTO_JSON_SERIALIZE.messageMetaDataReads().reads(Json.parse("{" + " \"uid\": 123456," + " \"size\": 42," + " \"flags\": {" + " \"systemFlags\":[\"Answered\",\"Draft\"], " + " \"userFlags\":[\"User Custom Flag\"]}," + " \"modSeq\": 45, " + " \"internalDate\": \"2018-12-14TZ\"," + " \"messageId\": \"42\"" + "}")) .get()) .isInstanceOf(NoSuchElementException.class); }
@Test void deSerializeShouldThrowWhenInternalDateIsNull() { assertThatThrownBy(() -> DTO_JSON_SERIALIZE.messageMetaDataReads().reads(Json.parse("{" + " \"uid\": 123456," + " \"size\": 42," + " \"flags\": {" + " \"systemFlags\":[\"Answered\",\"Draft\"], " + " \"userFlags\":[\"User Custom Flag\"]}," + " \"modSeq\": 45, " + " \"internalDate\": null," + " \"messageId\": \"42\"" + "}")) .get()) .isInstanceOf(NoSuchElementException.class); }
@Test void deserializeShouldThrowWhenNoMessageId() { assertThatThrownBy(() -> DTO_JSON_SERIALIZE.messageMetaDataReads().reads(Json.parse("{" + " \"uid\": 123456," + " \"modSeq\": 35," + " \"flags\": {" + " \"systemFlags\":[\"Answered\",\"Draft\"], " + " \"userFlags\":[\"User Custom Flag\"]}," + " \"size\": 45, " + " \"internalDate\": \"2018-12-14T09:41:51.541Z\"" + "}")) .get()) .isInstanceOf(NoSuchElementException.class); } }
@Test void deSerializeShouldThrowWhenInternalDateIsNotInISOFormatBecauseOfMissingTWord() { assertThatThrownBy(() -> DTO_JSON_SERIALIZE.messageMetaDataReads().reads(Json.parse("{" + " \"uid\": 123456," + " \"size\": 42," + " \"flags\": {" + " \"systemFlags\":[\"Answered\",\"Draft\"], " + " \"userFlags\":[\"User Custom Flag\"]}," + " \"modSeq\": 45, " + " \"internalDate\": \"2018-12-14 12:52:36+07:00\"," + " \"messageId\": \"42\"" + "}")) .get()) .isInstanceOf(NoSuchElementException.class); }
@Test void deserializeShouldThrowWhenNoModSeq() { assertThatThrownBy(() -> DTO_JSON_SERIALIZE.messageMetaDataReads().reads(Json.parse("{" + " \"uid\": 123456," + " \"flags\": {" + " \"systemFlags\":[\"Answered\",\"Draft\"], " + " \"userFlags\":[\"User Custom Flag\"]}," + " \"size\": 45, " + " \"internalDate\": \"2018-12-14T09:41:51.541Z\"," + " \"messageId\": \"42\"" + "}")) .get()) .isInstanceOf(NoSuchElementException.class); }