-
-
Notifications
You must be signed in to change notification settings - Fork 47
CreateJsonObject
Andrei Ciobanu edited this page Jan 10, 2019
·
4 revisions
Important Note: The library the documentation has moved to www.mockneat.com. The information found on this wiki is quite outdated. Please check the new site.
The following example covers the generation of random JSON in a given format. This might prove useful if you are planning to mock a REST API.
By default MockNeat doesn't support json
transformation at MockUnit interface level. The solution is to work with one of the existing libraries.
In our case we will work with gson.
Example:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Profile {
Integer profileId;
Date profileAdded;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserProfile {
String name;
String userName;
String email;
List<Profile> profiles;
}
MockNeat mockNeat = MockNeat.threadLocal();
Gson gson = new GsonBuilder()
.setPrettyPrinting()
.create();
String json = mockNeat
.reflect(UserProfile.class)
.field("name", mockNeat.names().full())
.field("userName", mockNeat.users())
.field("email", mockNeat.emails())
.field("profiles",
mockNeat.reflect(Profile.class)
.field("profileId", mockNeat.ints().range(100, 1000))
.field("profileAdded", mockNeat.localDates().toUtilDate())
.list(2))
.map(gson::toJson) /* Transforms the UserProfile class into a 'pretty' json. */
.val();
System.out.println(json);
Possible Output:
{
"name": "Cecila Starbird",
"userName": "moistben",
"email": "[email protected]",
"profiles": [
{
"profileId": 964,
"profileAdded": "Mar 19, 1973 12:00:00 AM"
},
{
"profileId": 854,
"profileAdded": "Jun 3, 1978 12:00:00 AM"
}
]
}
Using the library:
Real World Examples: