From ab5c09a958eb9174556f8be8cb8152580e649dac Mon Sep 17 00:00:00 2001 From: Alex Golub Date: Sat, 14 Jan 2023 18:11:19 +0200 Subject: [PATCH] Test `JsonGenerator` --- .../com/baeldung/json/JsonParserTest.groovy | 58 ++++++++++++++----- 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/json/JsonParserTest.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/json/JsonParserTest.groovy index e65550a3be..fa7b2fd3c8 100644 --- a/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/json/JsonParserTest.groovy +++ b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/json/JsonParserTest.groovy @@ -1,5 +1,6 @@ package com.baeldung.json +import groovy.json.JsonGenerator import spock.lang.Specification import java.text.SimpleDateFormat @@ -8,20 +9,42 @@ class JsonParserTest extends Specification { JsonParser jsonParser - void setup () { + void setup() { jsonParser = new JsonParser() } - def 'Should parse to Account given Json String' () { + def 'Should parse to Account given Json String'() { given: - def json = '{"id":"1234","value":15.6}' + def json = '{"id":"1234","value":15.6}' + when: - def account = jsonParser.toObject(json) + def account = jsonParser.toObject(json) + then: - account - account instanceof Account - account.id == '1234' - account.value == 15.6 + account + account instanceof Account + account.id == '1234' + account.value == 15.6 + } + + def 'Should format date and exclude value field'() { + given: + def account = new Account( + id: '123', + value: 15.6, + createdAt: new SimpleDateFormat('MM/dd/yyyy').parse('14/01/2023') + ) + + def jsonGenerator = new JsonGenerator.Options() + .dateFormat('MM/dd/yyyy') + .excludeFieldsByName('value') + .build() + + when: + def accountToJson = jsonGenerator.toJson(account) + + then: + accountToJson == '{"createdAt":"01/31/2024","id":"123"}' } /*def 'Should parse to Account given Json String with date property' () { @@ -52,15 +75,20 @@ class JsonParserTest extends Specification { json == '{"value":15.6,"createdAt":"2018-01-01T00:00:00+0000","id":"123"}' }*/ - def 'Should prettify given a json string' () { + def 'Should prettify given a json string'() { given: - String json = '{"value":15.6,"createdAt":"01/01/2018","id":"123456"}' + String json = '{"value":15.6,"createdAt":"01/01/2018","id":"123456"}' + when: - def jsonPretty = jsonParser.prettyfy(json) + def jsonPretty = jsonParser.prettyfy(json) + then: - jsonPretty - jsonPretty == '{\n "value": 15.6,\n "createdAt": "01/01/2018",\n "id": "123456"\n}' + jsonPretty + jsonPretty == '''\ +{ + "value": 15.6, + "createdAt": "01/01/2018", + "id": "123456" +}''' } - - }