1+ package api .longpoll .bots .adapters .deserializers ;
2+
3+ import com .google .gson .Gson ;
4+ import com .google .gson .JsonElement ;
5+ import com .google .gson .JsonObject ;
6+ import com .google .gson .JsonPrimitive ;
7+ import com .google .gson .annotations .JsonAdapter ;
8+ import org .junit .jupiter .api .Test ;
9+
10+ import static org .junit .jupiter .api .Assertions .assertEquals ;
11+ import static org .junit .jupiter .api .Assertions .assertTrue ;
12+
13+ class PayloadDeserializerTest {
14+ Gson gson = new Gson ();
15+
16+ @ Test
17+ void parseBooleanTest () {
18+ String json = "{\" payload\" :true}" ;
19+
20+ JsonElement payload = gson .fromJson (json , PayloadHolder .class ).payload ;
21+ assertTrue (payload .isJsonPrimitive ());
22+
23+ JsonPrimitive jsonPrimitive = payload .getAsJsonPrimitive ();
24+ assertTrue (jsonPrimitive .isBoolean ());
25+ assertTrue (jsonPrimitive .getAsBoolean ());
26+ }
27+
28+ @ Test
29+ void parseStringTest () {
30+ String json = "{\" payload\" :\" Hello World!\" }" ;
31+
32+ JsonElement payload = gson .fromJson (json , PayloadHolder .class ).payload ;
33+ assertTrue (payload .isJsonPrimitive ());
34+
35+ JsonPrimitive jsonPrimitive = payload .getAsJsonPrimitive ();
36+ assertTrue (jsonPrimitive .isString ());
37+ assertEquals ("Hello World!" , jsonPrimitive .getAsString ());
38+ }
39+
40+ @ Test
41+ void parseJsonTest () {
42+ String json = "{\" payload\" :{\" foo\" :\" bar\" }}" ;
43+
44+ JsonElement payload = gson .fromJson (json , PayloadHolder .class ).payload ;
45+ assertTrue (payload .isJsonObject ());
46+
47+ JsonObject jsonObject = payload .getAsJsonObject ();
48+ assertTrue (jsonObject .has ("foo" ));
49+
50+ JsonElement foo = jsonObject .get ("foo" );
51+ assertTrue (foo .isJsonPrimitive ());
52+
53+ JsonPrimitive jsonPrimitive = foo .getAsJsonPrimitive ();
54+ assertTrue (jsonPrimitive .isString ());
55+ assertEquals ("bar" , jsonPrimitive .getAsString ());
56+ }
57+
58+ @ Test
59+ void parseStringJsonTest () {
60+ String json = "{\" payload\" :\" {\\ \" foo\\ \" :\\ \" bar\\ \" }\" }" ;
61+
62+ JsonElement payload = gson .fromJson (json , PayloadHolder .class ).payload ;
63+ assertTrue (payload .isJsonObject ());
64+
65+ JsonObject jsonObject = payload .getAsJsonObject ();
66+ assertTrue (jsonObject .has ("foo" ));
67+
68+ JsonElement foo = jsonObject .get ("foo" );
69+ assertTrue (foo .isJsonPrimitive ());
70+
71+ JsonPrimitive jsonPrimitive = foo .getAsJsonPrimitive ();
72+ assertTrue (jsonPrimitive .isString ());
73+ assertEquals ("bar" , jsonPrimitive .getAsString ());
74+ }
75+
76+ static class PayloadHolder {
77+ @ JsonAdapter (PayloadDeserializer .class )
78+ JsonElement payload ;
79+ }
80+ }
0 commit comments