Test JsonGenerator
				
					
				
			This commit is contained in:
		
							parent
							
								
									85775f930a
								
							
						
					
					
						commit
						ab5c09a958
					
				| @ -1,5 +1,6 @@ | |||||||
| package com.baeldung.json | package com.baeldung.json | ||||||
| 
 | 
 | ||||||
|  | import groovy.json.JsonGenerator | ||||||
| import spock.lang.Specification | import spock.lang.Specification | ||||||
| 
 | 
 | ||||||
| import java.text.SimpleDateFormat | import java.text.SimpleDateFormat | ||||||
| @ -8,20 +9,42 @@ class JsonParserTest extends Specification { | |||||||
| 
 | 
 | ||||||
|     JsonParser jsonParser |     JsonParser jsonParser | ||||||
| 
 | 
 | ||||||
|     void setup () { |     void setup() { | ||||||
|         jsonParser = new JsonParser() |         jsonParser = new JsonParser() | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     def 'Should parse to Account given Json String' () { |     def 'Should parse to Account given Json String'() { | ||||||
|         given: |         given: | ||||||
|             def json = '{"id":"1234","value":15.6}' |         def json = '{"id":"1234","value":15.6}' | ||||||
|  | 
 | ||||||
|         when: |         when: | ||||||
|             def account = jsonParser.toObject(json) |         def account = jsonParser.toObject(json) | ||||||
|  | 
 | ||||||
|         then: |         then: | ||||||
|             account |         account | ||||||
|             account instanceof Account |         account instanceof Account | ||||||
|             account.id == '1234' |         account.id == '1234' | ||||||
|             account.value == 15.6 |         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' () { |     /*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"}' |             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: |         given: | ||||||
|             String json = '{"value":15.6,"createdAt":"01/01/2018","id":"123456"}' |         String json = '{"value":15.6,"createdAt":"01/01/2018","id":"123456"}' | ||||||
|  | 
 | ||||||
|         when: |         when: | ||||||
|             def jsonPretty = jsonParser.prettyfy(json) |         def jsonPretty = jsonParser.prettyfy(json) | ||||||
|  | 
 | ||||||
|         then: |         then: | ||||||
|             jsonPretty |         jsonPretty | ||||||
|             jsonPretty == '{\n    "value": 15.6,\n    "createdAt": "01/01/2018",\n    "id": "123456"\n}' |         jsonPretty == '''\ | ||||||
|  | { | ||||||
|  |     "value": 15.6, | ||||||
|  |     "createdAt": "01/01/2018", | ||||||
|  |     "id": "123456" | ||||||
|  | }''' | ||||||
|     } |     } | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user