From 15e5924815e521dd811edc3f49e1d3a0cd5b47ad Mon Sep 17 00:00:00 2001 From: jcarranzan Date: Mon, 15 Jul 2024 12:42:15 +0200 Subject: [PATCH] Add JsonPayload coverage tests --- .../http/advanced/reactive/FootballTeam.java | 79 + .../reactive/FootballTeamResource.java | 80 + .../ts/http/advanced/reactive/Person.java | 261 +++ .../advanced/reactive/PersonResource.java | 67 + .../advanced/reactive/JsonBPayloadIT.java | 16 + .../reactive/JsonJacksonPayloadIT.java | 31 + .../http/advanced/reactive/JsonPayloadIT.java | 189 ++ .../advanced/reactive/NonJsonPayLoadIT.java | 2 +- .../reactive/OpenShiftJsonPayloadIT.java | 18 + .../src/test/resources/big_sample.json | 1757 +++++++++++++++++ .../test/resources/football-empty-teams.json | 47 + .../src/test/resources/football-teams.json | 210 ++ .../resources/football-teams_invalid.json | 48 + ...json.properties => oidcdisable.properties} | 0 14 files changed, 2804 insertions(+), 1 deletion(-) create mode 100644 http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/FootballTeam.java create mode 100644 http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/FootballTeamResource.java create mode 100644 http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Person.java create mode 100644 http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/PersonResource.java create mode 100644 http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/JsonBPayloadIT.java create mode 100644 http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/JsonJacksonPayloadIT.java create mode 100644 http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/JsonPayloadIT.java create mode 100644 http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/OpenShiftJsonPayloadIT.java create mode 100644 http/http-advanced-reactive/src/test/resources/big_sample.json create mode 100644 http/http-advanced-reactive/src/test/resources/football-empty-teams.json create mode 100644 http/http-advanced-reactive/src/test/resources/football-teams.json create mode 100644 http/http-advanced-reactive/src/test/resources/football-teams_invalid.json rename http/http-advanced-reactive/src/test/resources/{nonjson.properties => oidcdisable.properties} (100%) diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/FootballTeam.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/FootballTeam.java new file mode 100644 index 0000000000..33e84cfaf1 --- /dev/null +++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/FootballTeam.java @@ -0,0 +1,79 @@ +package io.quarkus.ts.http.advanced.reactive; + +import java.util.Date; +import java.util.List; + +import io.quarkus.runtime.annotations.RegisterForReflection; + +@RegisterForReflection +public class FootballTeam { + + private String name; + private String colorTShirt; + private int euroCups; + private Date foundationDate; + private String stadium; + private List keyPlayers; + + public FootballTeam() { + } + + public FootballTeam(String name, String colorTShirt, int euroCups, Date foundationDate, String stadium, + List keyPlayers) { + this.name = name; + this.colorTShirt = colorTShirt; + this.euroCups = euroCups; + this.foundationDate = foundationDate; + this.stadium = stadium; + this.keyPlayers = keyPlayers; + } + + public Date getFoundationDate() { + return foundationDate; + } + + public void setFoundationDate(Date foundationDate) { + this.foundationDate = foundationDate; + } + + public String getStadium() { + return stadium; + } + + public void setStadium(String stadium) { + this.stadium = stadium; + } + + public List getKeyPlayers() { + return keyPlayers; + } + + public void setKeyPlayers(List keyPlayers) { + this.keyPlayers = keyPlayers; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getColorTShirt() { + return colorTShirt; + } + + public void setColorTShirt(String colorTShirt) { + this.colorTShirt = colorTShirt; + } + + public int getEuroCups() { + return euroCups; + } + + public void setEuroCups(int euroCups) { + this.euroCups = euroCups; + } + +} diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/FootballTeamResource.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/FootballTeamResource.java new file mode 100644 index 0000000000..67754fa4d7 --- /dev/null +++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/FootballTeamResource.java @@ -0,0 +1,80 @@ +package io.quarkus.ts.http.advanced.reactive; + +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Set; + +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.DELETE; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; + +import org.jboss.logging.Logger; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.smallrye.mutiny.Uni; + +/** + * + * When a JSON extension is installed such as quarkus-rest-jackson or quarkus-rest-jsonb + * Quarkus will use the application/json media type by default for most return values + */ +@Path("/football") +public class FootballTeamResource { + + private static final Logger LOG = Logger.getLogger(FootballTeamResource.class); + + private Set footballTeamSet = Collections.synchronizedSet(new LinkedHashSet<>()); + + @POST + @Path("/upload-football-json") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Uni uploadFootballJson(String data) { + try { + ObjectMapper objectMapper = new ObjectMapper(); + Set teamSet = objectMapper.readValue(data, new TypeReference>() { + }); + for (FootballTeam footballTeam : teamSet) { + if (footballTeam == null || footballTeam.getName().isEmpty()) { + return Uni.createFrom().item(Response.status(400).entity("Some fields are empty or null").build()); + } else { + footballTeamSet.add(footballTeam); + } + } + return Uni.createFrom() + .item(() -> { + Map responseMap = new HashMap<>(); + responseMap.put("teams", footballTeamSet); + responseMap.put("message", "Teams added successfully"); + return Response.status(201).entity(responseMap).build(); + }); + } catch (JsonMappingException ex) { + LOG.error(ex.getMessage()); + return Uni.createFrom() + .item(Response.status(400).entity("JsonMappingException : " + ex.getMessage()).build()); + } catch (JsonProcessingException e) { + LOG.error(e.getMessage()); + return Uni.createFrom().item( + Response.status(400).entity("Invalid JSON - JsonProcessingException : " + e.getOriginalMessage()).build()); + } + + } + + @DELETE + @Path("/clear") + public Response clearTeams() { + footballTeamSet.clear(); + return Response.ok().build(); + } + +} diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Person.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Person.java new file mode 100644 index 0000000000..cef0e47c4d --- /dev/null +++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Person.java @@ -0,0 +1,261 @@ +package io.quarkus.ts.http.advanced.reactive; + +import java.util.List; + +import io.quarkus.runtime.annotations.RegisterForReflection; + +@RegisterForReflection +public class Person { + + private String _id; + private int index; + private String guid; + private boolean isActive; + private String balance; + private String picture; + private int age; + private String eyeColor; + private String name; + private String gender; + private String company; + private String email; + private String phone; + private String address; + private String about; + private String registered; + private double latitude; + private double longitude; + private List tags; + private List friends; + private String greeting; + private String favoriteFruit; + + public Person() { + } + + public Person(String _id, int index, String guid, boolean isActive, String balance, String picture, int age, + String eyeColor, String name, String gender, String company, String email, String phone, String address, + String about, String registered, double latitude, double longitude, List tags, List friends, + String greeting, String favoriteFruit) { + this._id = _id; + this.index = index; + this.guid = guid; + this.isActive = isActive; + this.balance = balance; + this.picture = picture; + this.age = age; + this.eyeColor = eyeColor; + this.name = name; + this.gender = gender; + this.company = company; + this.email = email; + this.phone = phone; + this.address = address; + this.about = about; + this.registered = registered; + this.latitude = latitude; + this.longitude = longitude; + this.tags = tags; + this.friends = friends; + this.greeting = greeting; + this.favoriteFruit = favoriteFruit; + } + + public String get_id() { + return _id; + } + + public void set_id(String _id) { + this._id = _id; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public boolean isActive() { + return isActive; + } + + public void setActive(boolean active) { + isActive = active; + } + + public String getGuid() { + return guid; + } + + public void setGuid(String guid) { + this.guid = guid; + } + + public String getBalance() { + return balance; + } + + public void setBalance(String balance) { + this.balance = balance; + } + + public String getPicture() { + return picture; + } + + public void setPicture(String picture) { + this.picture = picture; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public String getEyeColor() { + return eyeColor; + } + + public void setEyeColor(String eyeColor) { + this.eyeColor = eyeColor; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getGender() { + return gender; + } + + public void setGender(String gender) { + this.gender = gender; + } + + public String getCompany() { + return company; + } + + public void setCompany(String company) { + this.company = company; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getAbout() { + return about; + } + + public void setAbout(String about) { + this.about = about; + } + + public String getRegistered() { + return registered; + } + + public void setRegistered(String registered) { + this.registered = registered; + } + + public double getLatitude() { + return latitude; + } + + public void setLatitude(double latitude) { + this.latitude = latitude; + } + + public double getLongitude() { + return longitude; + } + + public void setLongitude(double longitude) { + this.longitude = longitude; + } + + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + public List getFriends() { + return friends; + } + + public void setFriends(List friends) { + this.friends = friends; + } + + public String getGreeting() { + return greeting; + } + + public void setGreeting(String greeting) { + this.greeting = greeting; + } + + public String getFavoriteFruit() { + return favoriteFruit; + } + + public void setFavoriteFruit(String favoriteFruit) { + this.favoriteFruit = favoriteFruit; + } + + public static class Friend { + private int id; + private String name; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + } +} diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/PersonResource.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/PersonResource.java new file mode 100644 index 0000000000..48284b7810 --- /dev/null +++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/PersonResource.java @@ -0,0 +1,67 @@ +package io.quarkus.ts.http.advanced.reactive; + +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.Set; + +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.smallrye.mutiny.Uni; + +@Path("/persons") +public class PersonResource { + + private final Set personSet = Collections.synchronizedSet(new LinkedHashSet<>()); + + @Path("/process-json") + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Uni processJson(String jsonData) { + try { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + + Set persons = objectMapper.readValue(jsonData, new TypeReference>() { + }); + for (Person person : persons) { + if (person == null || person.getName().isEmpty()) { + return Uni.createFrom().item(Response.status(400).entity("Some fields are empty or null").build()); + } else { + personSet.add(person); + } + } + return Uni.createFrom().item(() -> Response.status(201).entity(personSet).build()); + + } catch (JsonMappingException ex) { + return Uni.createFrom() + .item(Response.status(400).entity("JsonMappingException : " + ex.getMessage()).build()); + } catch (JsonProcessingException e) { + return Uni.createFrom().item( + Response.status(400).entity("Invalid JSON - JsonProcessingException : " + e.getOriginalMessage()).build()); + } + + } + + @GET + @Produces(MediaType.APPLICATION_JSON) + public Uni getAllPersons() { + if (personSet.isEmpty()) { + return Uni.createFrom().item(Response.status(Response.Status.NOT_FOUND).build()); + } else { + return Uni.createFrom().item(Response.ok(personSet).build()); + } + } +} diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/JsonBPayloadIT.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/JsonBPayloadIT.java new file mode 100644 index 0000000000..5d8df383e6 --- /dev/null +++ b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/JsonBPayloadIT.java @@ -0,0 +1,16 @@ +package io.quarkus.ts.http.advanced.reactive; + +import io.quarkus.test.bootstrap.RestService; +import io.quarkus.test.services.QuarkusApplication; + +public class JsonBPayloadIT extends JsonPayloadIT { + + @QuarkusApplication(classes = { FootballTeamResource.class, FootballTeam.class, + Person.class, PersonResource.class }, properties = "oidcdisable.properties") + static RestService app = new RestService(); + + @Override + protected RestService getApp() { + return app; + } +} diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/JsonJacksonPayloadIT.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/JsonJacksonPayloadIT.java new file mode 100644 index 0000000000..249e9cab4a --- /dev/null +++ b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/JsonJacksonPayloadIT.java @@ -0,0 +1,31 @@ +package io.quarkus.ts.http.advanced.reactive; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +import io.quarkus.test.bootstrap.RestService; +import io.quarkus.test.scenarios.QuarkusScenario; +import io.quarkus.test.services.Dependency; +import io.quarkus.test.services.QuarkusApplication; + +@QuarkusScenario +public class JsonJacksonPayloadIT extends JsonPayloadIT { + + private static final String REST_JACKSON = "rest-jackson"; + + @QuarkusApplication(classes = { FootballTeamResource.class, FootballTeam.class, + Person.class, PersonResource.class }, properties = "oidcdisable.properties", dependencies = @Dependency(artifactId = "quarkus-" + + REST_JACKSON)) + static RestService app = new RestService(); + + @Override + protected RestService getApp() { + return app; + } + + @Test + public void shouldPickJackson() { + assertTrue(app.logs().forQuarkus().installedFeatures().contains(REST_JACKSON)); + } +} diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/JsonPayloadIT.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/JsonPayloadIT.java new file mode 100644 index 0000000000..d87151e994 --- /dev/null +++ b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/JsonPayloadIT.java @@ -0,0 +1,189 @@ +package io.quarkus.ts.http.advanced.reactive; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.is; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Paths; +import java.util.Arrays; +import java.util.Date; + +import org.apache.commons.io.FileUtils; +import org.apache.http.HttpStatus; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.quarkus.test.bootstrap.RestService; +import io.quarkus.test.scenarios.QuarkusScenario; +import io.restassured.http.ContentType; +import io.restassured.response.Response; + +@QuarkusScenario +public abstract class JsonPayloadIT { + + protected abstract RestService getApp(); + + private static final int CREATION_STATUS_CODE = HttpStatus.SC_CREATED; + private static final int BAD_REQUEST_STATUS_CODE = HttpStatus.SC_BAD_REQUEST; + private static final int OK_STATUS_CODE = HttpStatus.SC_OK; + private static final int UNSUPPORTED_MEDIA_TYPE_STATUS_CODE = HttpStatus.SC_UNSUPPORTED_MEDIA_TYPE; + + @BeforeEach + public void setup() { + getApp().given() + .when() + .delete("/football/clear") + .then() + .statusCode(OK_STATUS_CODE); + } + + @Test + public void sendSuccessfulJSONPayloadFromAFile() throws IOException { + + String jsonPayload = readJSONFile("football-teams.json"); + + Response response = getApp().given() + .contentType(ContentType.JSON) + .body(jsonPayload) + .when() + .post("/football/upload-football-json") + .then() + .statusCode(CREATION_STATUS_CODE) + .body("teams.size()", is(26)) + .extract().response(); + + assertThat(response.body().asString(), containsString("Teams added successfully")); + + } + + @Test + public void sendLargeComplexJSONPayload() throws IOException { + String jsonPayload = readJSONFile("big_sample.json"); + + getApp().given() + .contentType(ContentType.JSON) + .body(jsonPayload) + .when() + .post("/persons/process-json") + .then() + .statusCode(CREATION_STATUS_CODE) + .body(containsString("619 Rockaway Parkway, Hillsboro, California, 7507")); + + getApp().given() + .get("/persons") + .then() + .statusCode(OK_STATUS_CODE) + .body(containsString("Hello, Singleton Middleton! You have 4 unread messages.")); + + } + + @Test + public void sendJSONWithEmptyFieldsPayload() throws IOException { + String jsonPayload = readJSONFile("football-empty-teams.json"); + + getApp().given() + .contentType(ContentType.JSON) + .body(jsonPayload) + .when() + .post("/football/upload-football-json") + .then() + .statusCode(BAD_REQUEST_STATUS_CODE) + .body(containsString("Some fields are empty or null")); + } + + @Test + public void sendInvalidJSONPayload() throws IOException { + String jsonPayload = readJSONFile("football-teams_invalid.json"); + + getApp().given() + .contentType(ContentType.JSON) + .body(jsonPayload) + .when() + .post("/football/upload-football-json") + .then() + .statusCode(BAD_REQUEST_STATUS_CODE) + .body(containsString( + "Invalid JSON - JsonProcessingException : Unexpected character ('{' (code 123)): was expecting comma to separate Array entries")); + } + + @Test + public void sendASingleJSONObject() throws JsonProcessingException { + FootballTeam teamX = new FootballTeam( + "Single Team", + "Pink", + 3, + new Date(1900, 1, 1), + "A", + Arrays.asList("You", "You")); + ObjectMapper objectMapper = new ObjectMapper(); + String jsonPayload = objectMapper.writeValueAsString(teamX); + + getApp().given() + .contentType(ContentType.JSON) + .body(jsonPayload) + .when() + .post("/football/upload-football-json") + .then() + .statusCode(BAD_REQUEST_STATUS_CODE) + .body(containsString( + "JsonMappingException : Cannot deserialize value of type `java.util.HashSet`")); + + } + + @Test + public void sendIncorrectContentType() throws IOException { + String jsonPayload = readJSONFile("football-empty-teams.json"); + + getApp().given() + .contentType(ContentType.TEXT) + .body(jsonPayload) + .when() + .post("/football/upload-football-json") + .then() + .statusCode(UNSUPPORTED_MEDIA_TYPE_STATUS_CODE); + + } + + @Test + public void sendSpecialCharactersJSONPayload() throws Exception { + FootballTeam team1 = new FootballTeam( + "Føøbåll™ Tëâm", + "Rëd&Blüé", + 3, + new Date(1900, 1, 1), + "Städiümß©", + Arrays.asList("لاعب Ône", "Pläÿér Twø´ñ")); + + FootballTeam team2 = new FootballTeam( + "Tëâm 2", + "Grëèn&Yëllöw", + 2, + new Date(2010, 1, 15), + "New Städiüm©", + Arrays.asList("Pläÿér プレイ", "Pläÿér Fòur")); + + ObjectMapper objectMapper = new ObjectMapper(); + String jsonPayload = objectMapper.writeValueAsString(Arrays.asList(team1, team2)); + + getApp().given() + .contentType(ContentType.JSON) + .body(jsonPayload) + .when() + .post("/football/upload-football-json") + .then() + .statusCode(CREATION_STATUS_CODE) + .body(containsString("Teams added successfully")); + + } + + private String readJSONFile(String jsonFile) throws IOException { + return FileUtils.readFileToString( + Paths.get("src", "test", "resources", jsonFile).toFile(), + StandardCharsets.UTF_8); + } +} diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/NonJsonPayLoadIT.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/NonJsonPayLoadIT.java index 93469910b3..5e79a2b4be 100644 --- a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/NonJsonPayLoadIT.java +++ b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/NonJsonPayLoadIT.java @@ -42,7 +42,7 @@ public class NonJsonPayLoadIT { @QuarkusApplication(classes = { YamlProvider.class, CityResource.class, City.class, CityListDTO.class, CityListWrapper.class, CityListWrapperSerializer.class, - }, properties = "nonjson.properties") + }, properties = "oidcdisable.properties") static RestService app = new RestService(); private static File imageFile; diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/OpenShiftJsonPayloadIT.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/OpenShiftJsonPayloadIT.java new file mode 100644 index 0000000000..cfaa990a6c --- /dev/null +++ b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/OpenShiftJsonPayloadIT.java @@ -0,0 +1,18 @@ +package io.quarkus.ts.http.advanced.reactive; + +import io.quarkus.test.bootstrap.RestService; +import io.quarkus.test.scenarios.OpenShiftScenario; +import io.quarkus.test.services.QuarkusApplication; + +@OpenShiftScenario +public class OpenShiftJsonPayloadIT extends JsonPayloadIT { + + @QuarkusApplication(classes = { FootballTeamResource.class, FootballTeam.class, + Person.class, PersonResource.class }, properties = "oidcdisable.properties") + static RestService app = new RestService(); + + @Override + protected RestService getApp() { + return app; + } +} diff --git a/http/http-advanced-reactive/src/test/resources/big_sample.json b/http/http-advanced-reactive/src/test/resources/big_sample.json new file mode 100644 index 0000000000..028f4d17d6 --- /dev/null +++ b/http/http-advanced-reactive/src/test/resources/big_sample.json @@ -0,0 +1,1757 @@ +[ + { + "_id": "668e63358c976c2b14e7d953", + "index": 0, + "guid": "45485c08-cfb7-4c2d-ae2b-89a97be28b3c", + "isActive": false, + "balance": "$3,654.57", + "picture": "http://placehold.it/32x32", + "age": 27, + "eyeColor": "green", + "name": "Mckenzie Hansen", + "gender": "male", + "company": "EARBANG", + "email": "mckenziehansen@earbang.com", + "phone": "+1 (947) 560-3274", + "address": "680 President Street, Foscoe, Connecticut, 4288", + "about": "Anim minim dolor cillum veniam dolore elit ea dolore et aliqua amet aliquip. Deserunt exercitation nisi exercitation officia dolor nulla. Commodo magna sunt excepteur sint quis sit duis ex excepteur elit dolor quis. Magna occaecat tempor occaecat magna. Pariatur pariatur pariatur aute duis ut ipsum ea tempor elit commodo incididunt. In reprehenderit duis eiusmod consectetur consequat excepteur est cillum pariatur esse amet.\r\n", + "registered": "2014-03-03T01:06:05 -01:00", + "latitude": 39.175093, + "longitude": -79.416006, + "tags": [ + "voluptate", + "anim", + "deserunt", + "velit", + "aute", + "laboris", + "culpa" + ], + "friends": [ + { + "id": 0, + "name": "Green Perkins" + }, + { + "id": 1, + "name": "Monica Callahan" + }, + { + "id": 2, + "name": "Pace Keith" + } + ], + "greeting": "Hello, Mckenzie Hansen! You have 4 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "668e633568e66f4e129fbf5f", + "index": 1, + "guid": "2bb05b0e-8ae1-4a4e-a7c3-bc2de62a9fed", + "isActive": true, + "balance": "$3,082.49", + "picture": "http://placehold.it/32x32", + "age": 28, + "eyeColor": "blue", + "name": "Shelia Johns", + "gender": "female", + "company": "ONTALITY", + "email": "sheliajohns@ontality.com", + "phone": "+1 (863) 487-2515", + "address": "619 Rockaway Parkway, Hillsboro, California, 7507", + "about": "Incididunt magna laborum non dolore labore labore et. Laborum in cillum non mollit dolore ipsum sunt in qui ea dolor culpa non anim. Ad nulla quis incididunt velit mollit. Aliquip Lorem fugiat sit excepteur ipsum officia minim culpa ut. Duis esse cupidatat enim aute proident cupidatat ad reprehenderit et. Ullamco exercitation enim fugiat incididunt nisi nulla duis voluptate nisi.\r\n", + "registered": "2016-08-19T10:57:25 -02:00", + "latitude": 66.159415, + "longitude": 37.355104, + "tags": [ + "ex", + "est", + "incididunt", + "nisi", + "ea", + "officia", + "est" + ], + "friends": [ + { + "id": 0, + "name": "Susana Hahn" + }, + { + "id": 1, + "name": "Mcleod Noble" + }, + { + "id": 2, + "name": "Christian Carney" + } + ], + "greeting": "Hello, Shelia Johns! You have 7 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "668e633594402efe460000fe", + "index": 2, + "guid": "7d93ecbc-7284-4565-abf1-09ff91fef6f0", + "isActive": false, + "balance": "$1,525.86", + "picture": "http://placehold.it/32x32", + "age": 27, + "eyeColor": "green", + "name": "Higgins Robertson", + "gender": "male", + "company": "XINWARE", + "email": "higginsrobertson@xinware.com", + "phone": "+1 (891) 485-2571", + "address": "149 Anna Court, Alderpoint, Colorado, 8396", + "about": "Commodo ut ea deserunt ad exercitation do fugiat id nostrud id ex. Non consectetur elit ea aliquip aliqua voluptate. Reprehenderit qui amet commodo Lorem deserunt exercitation laborum aliqua incididunt excepteur. Dolor veniam est quis id.\r\n", + "registered": "2024-07-10T06:50:09 -02:00", + "latitude": 82.501241, + "longitude": -107.515031, + "tags": [ + "aliquip", + "dolore", + "consectetur", + "adipisicing", + "ad", + "incididunt", + "et" + ], + "friends": [ + { + "id": 0, + "name": "Elvia Flynn" + }, + { + "id": 1, + "name": "Mckinney Chen" + }, + { + "id": 2, + "name": "Carolina Palmer" + } + ], + "greeting": "Hello, Higgins Robertson! You have 6 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e63350c05f52872b422b2", + "index": 3, + "guid": "e2d3c4d4-6455-4a6f-a323-273278b35bb2", + "isActive": true, + "balance": "$1,749.32", + "picture": "http://placehold.it/32x32", + "age": 28, + "eyeColor": "brown", + "name": "Kramer Buck", + "gender": "male", + "company": "TURNABOUT", + "email": "kramerbuck@turnabout.com", + "phone": "+1 (828) 576-2040", + "address": "792 Nautilus Avenue, Belvoir, Guam, 8087", + "about": "Do cillum nostrud labore aute deserunt ut duis et sint quis excepteur sit cillum. Dolore qui excepteur nisi sint fugiat. Veniam officia nulla in sunt. Eu occaecat velit ea culpa anim consequat velit ut mollit pariatur qui. Esse consequat sunt exercitation sunt eiusmod irure tempor commodo quis minim laborum cupidatat ipsum esse. Anim laboris non voluptate reprehenderit veniam nisi aliquip commodo.\r\n", + "registered": "2016-02-09T12:20:02 -01:00", + "latitude": -40.668355, + "longitude": 83.943778, + "tags": [ + "laboris", + "adipisicing", + "ex", + "irure", + "mollit", + "enim", + "dolore" + ], + "friends": [ + { + "id": 0, + "name": "Nash Everett" + }, + { + "id": 1, + "name": "Hays Tucker" + }, + { + "id": 2, + "name": "Mari Lane" + } + ], + "greeting": "Hello, Kramer Buck! You have 4 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e6335c0e7dbf548fbcc4d", + "index": 4, + "guid": "439605bb-648b-4322-90b4-543a9b428fe9", + "isActive": true, + "balance": "$2,295.63", + "picture": "http://placehold.it/32x32", + "age": 37, + "eyeColor": "green", + "name": "Blanchard Best", + "gender": "male", + "company": "DANCITY", + "email": "blanchardbest@dancity.com", + "phone": "+1 (852) 428-3499", + "address": "943 Krier Place, Oretta, Florida, 9479", + "about": "Nostrud laborum proident deserunt id tempor do ad veniam officia. Adipisicing nostrud cupidatat excepteur voluptate magna exercitation adipisicing velit. Laboris irure nisi Lorem anim laboris deserunt ad do est sint est. Pariatur veniam non deserunt proident magna. Qui veniam velit do culpa enim esse adipisicing dolore duis ad. Tempor deserunt proident do ut pariatur eu culpa officia deserunt aliqua.\r\n", + "registered": "2017-10-12T03:02:15 -02:00", + "latitude": 46.828678, + "longitude": -131.236938, + "tags": [ + "excepteur", + "nisi", + "aute", + "incididunt", + "laboris", + "in", + "irure" + ], + "friends": [ + { + "id": 0, + "name": "Serena Hoover" + }, + { + "id": 1, + "name": "Charlotte Livingston" + }, + { + "id": 2, + "name": "Long Valenzuela" + } + ], + "greeting": "Hello, Blanchard Best! You have 10 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e6335359fc5859a381b01", + "index": 5, + "guid": "9bd68752-08e2-4b46-895c-704d16f6e262", + "isActive": false, + "balance": "$1,589.89", + "picture": "http://placehold.it/32x32", + "age": 30, + "eyeColor": "green", + "name": "Strickland Caldwell", + "gender": "male", + "company": "GENMEX", + "email": "stricklandcaldwell@genmex.com", + "phone": "+1 (821) 548-3082", + "address": "564 Mill Road, Sparkill, Washington, 2184", + "about": "Nostrud pariatur do aliquip irure veniam et deserunt excepteur id est. Consectetur excepteur ut incididunt est elit mollit commodo incididunt aliqua aute exercitation esse. Labore enim duis proident in aute ullamco amet laboris ex et. Culpa Lorem minim dolor ex non esse enim pariatur consequat aliquip Lorem veniam consequat. Sit irure incididunt sunt ipsum culpa aliqua. Incididunt excepteur qui incididunt nisi eu.\r\n", + "registered": "2016-10-05T04:07:17 -02:00", + "latitude": 31.935765, + "longitude": 155.57838, + "tags": [ + "incididunt", + "amet", + "aliquip", + "amet", + "amet", + "labore", + "ipsum" + ], + "friends": [ + { + "id": 0, + "name": "Carey Rojas" + }, + { + "id": 1, + "name": "Rosario Parks" + }, + { + "id": 2, + "name": "Janette Patel" + } + ], + "greeting": "Hello, Strickland Caldwell! You have 7 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e6335e0202f028c61702a", + "index": 6, + "guid": "e2d31521-8652-470f-8b56-bbfe60429380", + "isActive": true, + "balance": "$3,354.04", + "picture": "http://placehold.it/32x32", + "age": 26, + "eyeColor": "brown", + "name": "Jenifer Kim", + "gender": "female", + "company": "ZILLA", + "email": "jeniferkim@zilla.com", + "phone": "+1 (850) 559-3160", + "address": "976 Quentin Road, Ebro, Hawaii, 3712", + "about": "Lorem consectetur amet anim voluptate. Culpa sint tempor tempor fugiat veniam ullamco. Ex ea cupidatat ex eu enim commodo exercitation sint dolore officia. Sit sit nulla reprehenderit quis aliquip cupidatat esse irure officia quis consequat aliqua velit.\r\n", + "registered": "2014-05-28T08:43:24 -02:00", + "latitude": 89.749697, + "longitude": 48.792615, + "tags": [ + "cupidatat", + "id", + "dolore", + "do", + "eu", + "reprehenderit", + "eu" + ], + "friends": [ + { + "id": 0, + "name": "Laverne Browning" + }, + { + "id": 1, + "name": "Miles Knapp" + }, + { + "id": 2, + "name": "Shepherd Fuentes" + } + ], + "greeting": "Hello, Jenifer Kim! You have 6 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e63355d6444cd4e26c40a", + "index": 7, + "guid": "0e84495f-725e-403e-9895-4d6fa2a4bfa3", + "isActive": false, + "balance": "$2,642.93", + "picture": "http://placehold.it/32x32", + "age": 36, + "eyeColor": "green", + "name": "Joy Dorsey", + "gender": "female", + "company": "BUGSALL", + "email": "joydorsey@bugsall.com", + "phone": "+1 (996) 507-2675", + "address": "887 Murdock Court, Brandermill, Federated States Of Micronesia, 9628", + "about": "Tempor labore aliquip ex adipisicing nostrud in irure. Ex et et tempor sunt aliquip ea et aliquip laboris cillum proident dolor excepteur. Tempor ipsum eu eiusmod amet sint esse Lorem sint ipsum nisi exercitation. Ut ut veniam nulla aliquip ex et laborum sit ullamco minim. Sint magna ullamco consequat fugiat. Et esse nisi aliqua ea culpa consequat nostrud eu laboris eu aliquip. Consectetur qui culpa officia amet ipsum consequat duis.\r\n", + "registered": "2022-05-30T01:59:01 -02:00", + "latitude": 24.738253, + "longitude": 17.238016, + "tags": [ + "aliquip", + "excepteur", + "deserunt", + "do", + "est", + "aliqua", + "eiusmod" + ], + "friends": [ + { + "id": 0, + "name": "Anastasia Duke" + }, + { + "id": 1, + "name": "Wade Snow" + }, + { + "id": 2, + "name": "Woodward Love" + } + ], + "greeting": "Hello, Joy Dorsey! You have 7 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e633562436ac138cbf30a", + "index": 8, + "guid": "d2491edb-7421-4146-9e2b-d10723641f6f", + "isActive": true, + "balance": "$2,912.66", + "picture": "http://placehold.it/32x32", + "age": 39, + "eyeColor": "blue", + "name": "Owen Guthrie", + "gender": "male", + "company": "DIGINETIC", + "email": "owenguthrie@diginetic.com", + "phone": "+1 (939) 554-2201", + "address": "376 Lloyd Street, Hardyville, Missouri, 6579", + "about": "Minim ut est amet velit proident minim mollit quis fugiat. Nostrud dolor esse sunt dolor cillum anim irure eiusmod ipsum veniam amet deserunt ex culpa. Elit ullamco in commodo id. Ut pariatur cupidatat laborum ea. Incididunt magna labore ea laborum irure exercitation consectetur do dolor fugiat.\r\n", + "registered": "2023-10-30T03:15:24 -01:00", + "latitude": 2.685772, + "longitude": 132.967559, + "tags": [ + "duis", + "eiusmod", + "in", + "enim", + "nostrud", + "ad", + "nisi" + ], + "friends": [ + { + "id": 0, + "name": "Galloway Hobbs" + }, + { + "id": 1, + "name": "Fleming Winters" + }, + { + "id": 2, + "name": "Melissa Guy" + } + ], + "greeting": "Hello, Owen Guthrie! You have 9 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e63350ea4cc847844aef8", + "index": 9, + "guid": "0c2e0b41-5d17-4042-8ba8-db779bbf5fe0", + "isActive": true, + "balance": "$1,626.56", + "picture": "http://placehold.it/32x32", + "age": 33, + "eyeColor": "brown", + "name": "Kerry Tillman", + "gender": "female", + "company": "AFFLUEX", + "email": "kerrytillman@affluex.com", + "phone": "+1 (906) 540-2386", + "address": "362 Florence Avenue, Shelby, New York, 6934", + "about": "Ad fugiat cillum eiusmod amet voluptate minim Lorem consequat est. Minim labore occaecat aliquip cillum ex quis nisi eu culpa consectetur amet culpa incididunt. Ea cupidatat incididunt commodo fugiat minim minim adipisicing.\r\n", + "registered": "2014-10-13T06:51:23 -02:00", + "latitude": -20.944245, + "longitude": 112.890728, + "tags": [ + "est", + "dolor", + "tempor", + "minim", + "in", + "nisi", + "voluptate" + ], + "friends": [ + { + "id": 0, + "name": "Pollard Chavez" + }, + { + "id": 1, + "name": "Greer Anthony" + }, + { + "id": 2, + "name": "Claudine Mayo" + } + ], + "greeting": "Hello, Kerry Tillman! You have 6 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e63353a41139a46600091", + "index": 10, + "guid": "b020ff09-1100-45f4-8f13-61085a791668", + "isActive": true, + "balance": "$1,371.01", + "picture": "http://placehold.it/32x32", + "age": 32, + "eyeColor": "blue", + "name": "Simon Mays", + "gender": "male", + "company": "ROOFORIA", + "email": "simonmays@rooforia.com", + "phone": "+1 (978) 588-2680", + "address": "459 Howard Avenue, Joppa, Mississippi, 9587", + "about": "Ipsum est voluptate aliquip nisi do ex ullamco magna veniam amet consequat dolor. Irure magna cillum ea velit deserunt nisi et. Proident ipsum in aliqua consectetur tempor occaecat adipisicing consequat commodo. Minim ex et quis labore voluptate proident dolor mollit cupidatat ipsum.\r\n", + "registered": "2016-07-24T07:46:00 -02:00", + "latitude": 54.273844, + "longitude": 168.548385, + "tags": [ + "laboris", + "ad", + "Lorem", + "laborum", + "duis", + "aute", + "enim" + ], + "friends": [ + { + "id": 0, + "name": "Evans Valdez" + }, + { + "id": 1, + "name": "Murphy Koch" + }, + { + "id": 2, + "name": "Hilary Daniel" + } + ], + "greeting": "Hello, Simon Mays! You have 6 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e6335fa056b7b05351d56", + "index": 11, + "guid": "717aabdf-be9d-4fef-b5f3-c44442a2a55c", + "isActive": true, + "balance": "$3,591.49", + "picture": "http://placehold.it/32x32", + "age": 28, + "eyeColor": "green", + "name": "Richards Mejia", + "gender": "male", + "company": "TERAPRENE", + "email": "richardsmejia@teraprene.com", + "phone": "+1 (874) 549-3217", + "address": "467 Ovington Avenue, Sandston, West Virginia, 916", + "about": "Dolore pariatur consequat Lorem quis occaecat voluptate mollit irure sint cupidatat. Nulla sint in irure ex in veniam esse eu mollit. Ex velit irure mollit commodo labore incididunt. Dolor nisi dolor ullamco in nisi culpa cillum eu dolor in excepteur reprehenderit veniam velit. Sunt Lorem occaecat cupidatat magna ea adipisicing eu.\r\n", + "registered": "2023-05-21T04:59:49 -02:00", + "latitude": -42.068308, + "longitude": 110.804176, + "tags": [ + "laboris", + "commodo", + "incididunt", + "incididunt", + "laboris", + "incididunt", + "nulla" + ], + "friends": [ + { + "id": 0, + "name": "Wooten Guzman" + }, + { + "id": 1, + "name": "Liza Haney" + }, + { + "id": 2, + "name": "Nell Spence" + } + ], + "greeting": "Hello, Richards Mejia! You have 6 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "668e6335b3044fd230048ba0", + "index": 12, + "guid": "87f4fd3a-cb14-4ce1-ac84-e23e5a2672c6", + "isActive": true, + "balance": "$2,972.68", + "picture": "http://placehold.it/32x32", + "age": 28, + "eyeColor": "blue", + "name": "Claire Downs", + "gender": "female", + "company": "ZENTIX", + "email": "clairedowns@zentix.com", + "phone": "+1 (980) 583-3285", + "address": "101 Boerum Street, Saranap, Arizona, 3148", + "about": "Esse enim elit Lorem labore reprehenderit aliquip. Labore et veniam consequat velit dolor do laboris nisi dolor ipsum. Sunt Lorem culpa sit proident officia exercitation eiusmod dolor nisi magna dolor fugiat. Anim eiusmod ad in occaecat. Anim sint cupidatat Lorem excepteur officia. Eiusmod tempor pariatur commodo nostrud officia excepteur ex commodo anim. Laboris excepteur reprehenderit quis esse irure exercitation magna anim aliqua incididunt proident Lorem labore.\r\n", + "registered": "2016-01-22T09:23:26 -01:00", + "latitude": 86.875792, + "longitude": -5.345935, + "tags": [ + "officia", + "exercitation", + "exercitation", + "cupidatat", + "ullamco", + "id", + "veniam" + ], + "friends": [ + { + "id": 0, + "name": "Baker Beach" + }, + { + "id": 1, + "name": "Angelina Carey" + }, + { + "id": 2, + "name": "Munoz Williamson" + } + ], + "greeting": "Hello, Claire Downs! You have 4 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e6335b8ba4cbaf638e09a", + "index": 13, + "guid": "68f33f2b-4c50-4521-9c39-3f6e54236884", + "isActive": true, + "balance": "$2,933.01", + "picture": "http://placehold.it/32x32", + "age": 34, + "eyeColor": "brown", + "name": "Leach Logan", + "gender": "male", + "company": "ORBOID", + "email": "leachlogan@orboid.com", + "phone": "+1 (922) 421-3918", + "address": "501 Osborn Street, Matheny, Arkansas, 9404", + "about": "Dolor aliquip voluptate adipisicing id mollit ad cupidatat excepteur eiusmod aute tempor nulla culpa. Sit fugiat reprehenderit in occaecat consequat dolore aute. Consequat id qui veniam dolore ipsum veniam deserunt anim adipisicing veniam nisi non dolore enim. Laborum duis mollit magna cillum. Culpa do nulla nostrud sit ullamco ad dolor exercitation sunt incididunt veniam enim amet.\r\n", + "registered": "2020-12-28T05:36:34 -01:00", + "latitude": 6.835989, + "longitude": -45.258888, + "tags": [ + "qui", + "dolor", + "dolore", + "commodo", + "ea", + "qui", + "ex" + ], + "friends": [ + { + "id": 0, + "name": "Banks Rasmussen" + }, + { + "id": 1, + "name": "Stout Dominguez" + }, + { + "id": 2, + "name": "Hollie Lott" + } + ], + "greeting": "Hello, Leach Logan! You have 7 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e6335534c9351113b0142", + "index": 14, + "guid": "5151080b-0168-4aff-8963-e4f88fa8c301", + "isActive": true, + "balance": "$2,302.99", + "picture": "http://placehold.it/32x32", + "age": 20, + "eyeColor": "blue", + "name": "Kelly Finley", + "gender": "male", + "company": "ENERFORCE", + "email": "kellyfinley@enerforce.com", + "phone": "+1 (833) 587-2950", + "address": "738 Elliott Place, Rushford, Utah, 756", + "about": "Minim ipsum consequat ipsum irure aute duis pariatur consequat officia aliquip duis. Duis minim excepteur cillum et anim esse eiusmod nostrud minim sunt consectetur labore. Ea id aute qui ad sunt nisi qui ad culpa. Tempor in officia esse adipisicing sint tempor reprehenderit laboris exercitation elit occaecat. Ad reprehenderit aliquip minim aute in aliqua proident nostrud nostrud sint.\r\n", + "registered": "2015-12-16T01:30:54 -01:00", + "latitude": 19.665987, + "longitude": -74.738618, + "tags": [ + "velit", + "dolore", + "laboris", + "minim", + "minim", + "ipsum", + "cillum" + ], + "friends": [ + { + "id": 0, + "name": "Mcguire Walsh" + }, + { + "id": 1, + "name": "Concepcion Osborne" + }, + { + "id": 2, + "name": "Payne Vincent" + } + ], + "greeting": "Hello, Kelly Finley! You have 1 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "668e6335885278bef5647dee", + "index": 15, + "guid": "444cfa53-d5b4-4bdd-9377-29befec49772", + "isActive": false, + "balance": "$3,626.26", + "picture": "http://placehold.it/32x32", + "age": 35, + "eyeColor": "blue", + "name": "Mcknight Freeman", + "gender": "male", + "company": "KYAGORO", + "email": "mcknightfreeman@kyagoro.com", + "phone": "+1 (852) 548-2252", + "address": "165 Lincoln Road, Winfred, North Dakota, 4715", + "about": "Eiusmod quis cillum officia anim non. Adipisicing aliqua consectetur magna ut est dolore veniam laboris aliqua nostrud incididunt elit in. Laborum commodo laborum amet excepteur commodo labore pariatur et commodo reprehenderit anim proident nulla veniam. Officia sint eu aute ut nostrud. Mollit ipsum dolore mollit esse id id qui id incididunt est officia. Sunt qui non do deserunt exercitation dolor sint sint voluptate labore ullamco magna.\r\n", + "registered": "2021-07-29T07:02:51 -02:00", + "latitude": -88.419062, + "longitude": 152.635911, + "tags": [ + "et", + "fugiat", + "mollit", + "ea", + "qui", + "veniam", + "anim" + ], + "friends": [ + { + "id": 0, + "name": "Valencia Wilder" + }, + { + "id": 1, + "name": "Cantrell Bonner" + }, + { + "id": 2, + "name": "Lott Gentry" + } + ], + "greeting": "Hello, Mcknight Freeman! You have 4 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e63359c335fb2e1ed4162", + "index": 16, + "guid": "2fc1b02a-364a-4405-b8e7-cf1a60fc3515", + "isActive": false, + "balance": "$1,719.61", + "picture": "http://placehold.it/32x32", + "age": 29, + "eyeColor": "blue", + "name": "Doris Hendrix", + "gender": "female", + "company": "GORGANIC", + "email": "dorishendrix@gorganic.com", + "phone": "+1 (852) 569-2496", + "address": "259 Hendrickson Place, Deercroft, Minnesota, 9770", + "about": "Ullamco in pariatur consectetur sunt aliquip anim aute non irure ut. Quis id ea veniam ad proident ad consectetur veniam id duis. Nulla fugiat sunt nostrud anim ullamco laboris ullamco eiusmod ipsum consectetur do consectetur mollit deserunt. Lorem exercitation est commodo veniam cupidatat ex amet nisi consequat pariatur deserunt nisi enim. Pariatur ad occaecat esse anim labore occaecat sint incididunt excepteur non magna. Cupidatat ipsum laboris reprehenderit commodo veniam in incididunt. Ullamco cupidatat enim consectetur qui non sunt est ea laborum.\r\n", + "registered": "2018-01-11T06:45:50 -01:00", + "latitude": 86.869004, + "longitude": -124.03188, + "tags": [ + "nulla", + "nulla", + "amet", + "laboris", + "enim", + "ex", + "veniam" + ], + "friends": [ + { + "id": 0, + "name": "Jerry Walls" + }, + { + "id": 1, + "name": "Ashlee Suarez" + }, + { + "id": 2, + "name": "Edna Summers" + } + ], + "greeting": "Hello, Doris Hendrix! You have 10 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e6335f3824e6090854c8e", + "index": 17, + "guid": "46dc2f98-27ec-4d56-a204-72e15968ff56", + "isActive": false, + "balance": "$3,963.37", + "picture": "http://placehold.it/32x32", + "age": 26, + "eyeColor": "blue", + "name": "Christine Beasley", + "gender": "female", + "company": "JUNIPOOR", + "email": "christinebeasley@junipoor.com", + "phone": "+1 (889) 417-2530", + "address": "726 Times Placez, Yonah, Iowa, 387", + "about": "Aliquip pariatur eu ut irure. Est commodo deserunt velit ut minim sit ullamco. Cupidatat ad laboris mollit tempor esse in. Elit occaecat Lorem aute incididunt proident laboris. Reprehenderit minim cupidatat ad non ipsum cupidatat qui excepteur enim cillum.\r\n", + "registered": "2021-07-16T12:35:43 -02:00", + "latitude": 75.288647, + "longitude": 119.457931, + "tags": [ + "laborum", + "nulla", + "ut", + "tempor", + "proident", + "elit", + "ullamco" + ], + "friends": [ + { + "id": 0, + "name": "Marina Trujillo" + }, + { + "id": 1, + "name": "Reba Travis" + }, + { + "id": 2, + "name": "Sheena Cline" + } + ], + "greeting": "Hello, Christine Beasley! You have 8 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e63356e8f05a660b17128", + "index": 18, + "guid": "5d0a080e-42f5-45fe-abee-a9e6c9291758", + "isActive": true, + "balance": "$2,025.65", + "picture": "http://placehold.it/32x32", + "age": 40, + "eyeColor": "green", + "name": "Peck Hoffman", + "gender": "male", + "company": "METROZ", + "email": "peckhoffman@metroz.com", + "phone": "+1 (867) 591-2152", + "address": "324 Girard Street, Statenville, Idaho, 2913", + "about": "Sit quis excepteur ipsum nisi. Nulla sunt est sit sunt consectetur. Aliquip qui aute voluptate Lorem ut.\r\n", + "registered": "2016-12-28T04:33:03 -01:00", + "latitude": 46.011739, + "longitude": -37.936997, + "tags": [ + "enim", + "id", + "sit", + "et", + "officia", + "nisi", + "cillum" + ], + "friends": [ + { + "id": 0, + "name": "Crosby Kinney" + }, + { + "id": 1, + "name": "Franco Clayton" + }, + { + "id": 2, + "name": "Frazier Church" + } + ], + "greeting": "Hello, Peck Hoffman! You have 10 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "668e6335eab48b783d9f7052", + "index": 19, + "guid": "52882a92-ab05-4780-8adc-a1f35c16092e", + "isActive": false, + "balance": "$3,289.57", + "picture": "http://placehold.it/32x32", + "age": 20, + "eyeColor": "blue", + "name": "Robbins Waller", + "gender": "male", + "company": "KNEEDLES", + "email": "robbinswaller@kneedles.com", + "phone": "+1 (860) 600-2172", + "address": "554 Georgia Avenue, Camas, North Carolina, 9616", + "about": "Amet occaecat aliquip mollit reprehenderit est ullamco officia dolore tempor. Et in ullamco quis tempor. Incididunt enim qui pariatur amet velit officia exercitation aliqua laboris enim. Deserunt ea qui proident officia pariatur Lorem dolor sit aute nostrud pariatur. Consectetur nostrud do adipisicing mollit.\r\n", + "registered": "2018-01-13T07:48:41 -01:00", + "latitude": -25.105357, + "longitude": 33.204917, + "tags": [ + "ea", + "laboris", + "excepteur", + "cupidatat", + "fugiat", + "pariatur", + "ea" + ], + "friends": [ + { + "id": 0, + "name": "Bright Hyde" + }, + { + "id": 1, + "name": "Mclaughlin Mckinney" + }, + { + "id": 2, + "name": "Lorrie Bradley" + } + ], + "greeting": "Hello, Robbins Waller! You have 4 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e6335a85f56867db1ff52", + "index": 20, + "guid": "df3766fe-8ef7-466f-985e-ea6349aa4e22", + "isActive": true, + "balance": "$2,033.57", + "picture": "http://placehold.it/32x32", + "age": 36, + "eyeColor": "blue", + "name": "Ivy Powers", + "gender": "female", + "company": "NUTRALAB", + "email": "ivypowers@nutralab.com", + "phone": "+1 (845) 405-3182", + "address": "678 Dahl Court, Drummond, Kansas, 370", + "about": "Amet sit cupidatat qui culpa voluptate sit pariatur duis. Reprehenderit labore voluptate velit duis et mollit et. Ea consectetur cillum ipsum adipisicing non ea ullamco mollit cupidatat amet do consequat laboris. Quis occaecat voluptate ex adipisicing excepteur et voluptate. Dolore occaecat aliquip aliqua do.\r\n", + "registered": "2018-10-27T12:11:33 -02:00", + "latitude": -42.302856, + "longitude": -118.830009, + "tags": [ + "anim", + "Lorem", + "et", + "tempor", + "Lorem", + "non", + "occaecat" + ], + "friends": [ + { + "id": 0, + "name": "Anita Ball" + }, + { + "id": 1, + "name": "Shannon Wilkins" + }, + { + "id": 2, + "name": "Briggs Wolfe" + } + ], + "greeting": "Hello, Ivy Powers! You have 7 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "668e6335875b3c6fec40d9c9", + "index": 21, + "guid": "546b56f9-213c-47ee-867b-4057358aeef6", + "isActive": false, + "balance": "$2,226.29", + "picture": "http://placehold.it/32x32", + "age": 24, + "eyeColor": "green", + "name": "Mcconnell Collins", + "gender": "male", + "company": "EPLOSION", + "email": "mcconnellcollins@eplosion.com", + "phone": "+1 (940) 405-2507", + "address": "883 Micieli Place, Dana, Montana, 2743", + "about": "Amet dolor amet et ipsum incididunt labore minim sit sunt qui veniam irure. Ipsum reprehenderit non do eiusmod irure eiusmod cillum sunt cupidatat laboris excepteur. Irure nostrud ipsum laborum ut velit ex do elit id aute. Laboris proident reprehenderit laborum est aliqua commodo. Irure veniam sint est excepteur pariatur officia amet fugiat commodo irure. Dolor in qui non dolore ipsum id reprehenderit ullamco Lorem ex ad.\r\n", + "registered": "2018-12-22T11:08:33 -01:00", + "latitude": 58.12108, + "longitude": 65.473881, + "tags": [ + "nisi", + "mollit", + "sint", + "ex", + "tempor", + "eiusmod", + "nisi" + ], + "friends": [ + { + "id": 0, + "name": "Lou Lee" + }, + { + "id": 1, + "name": "Evangelina Morin" + }, + { + "id": 2, + "name": "Kendra Horne" + } + ], + "greeting": "Hello, Mcconnell Collins! You have 4 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "668e6335251abe07538d74bb", + "index": 22, + "guid": "b840453e-e275-4dcd-9b77-98256d7d26bd", + "isActive": false, + "balance": "$2,786.59", + "picture": "http://placehold.it/32x32", + "age": 20, + "eyeColor": "green", + "name": "Cherie Brock", + "gender": "female", + "company": "OVOLO", + "email": "cheriebrock@ovolo.com", + "phone": "+1 (836) 469-3444", + "address": "367 Vanderveer Place, Nettie, Wisconsin, 189", + "about": "Lorem ipsum nisi dolor aliqua adipisicing do commodo non dolor cupidatat dolore. Velit sit eu duis aliqua. Sunt mollit Lorem consectetur quis non aute laboris eiusmod. Excepteur pariatur irure ad veniam Lorem est culpa. Aliquip dolor quis non dolor qui voluptate nostrud quis enim. Ullamco Lorem ipsum non deserunt eu ullamco sint dolore officia.\r\n", + "registered": "2021-06-06T06:42:12 -02:00", + "latitude": 57.464497, + "longitude": 23.827198, + "tags": [ + "consectetur", + "enim", + "exercitation", + "amet", + "commodo", + "eiusmod", + "in" + ], + "friends": [ + { + "id": 0, + "name": "Dionne Randall" + }, + { + "id": 1, + "name": "Levy Burch" + }, + { + "id": 2, + "name": "Stephens Camacho" + } + ], + "greeting": "Hello, Cherie Brock! You have 8 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e63356726dfd8070951c6", + "index": 23, + "guid": "3ce831ed-ca4c-4817-a0ee-765630ace6f3", + "isActive": false, + "balance": "$2,373.51", + "picture": "http://placehold.it/32x32", + "age": 29, + "eyeColor": "blue", + "name": "Corrine Rivera", + "gender": "female", + "company": "SEALOUD", + "email": "corrinerivera@sealoud.com", + "phone": "+1 (875) 506-3538", + "address": "375 Johnson Avenue, Waterview, Oregon, 9204", + "about": "Sint sit id magna eiusmod proident dolor ullamco reprehenderit et reprehenderit ullamco. Minim cillum in nulla esse in. Laboris sint proident elit quis ea sit et aute. Pariatur incididunt anim mollit dolor nulla culpa esse sint irure do ipsum anim. Tempor irure do veniam ut reprehenderit ullamco cupidatat. Lorem nulla fugiat veniam amet Lorem aliqua veniam ea consectetur labore sit do.\r\n", + "registered": "2023-01-22T02:06:12 -01:00", + "latitude": -71.637556, + "longitude": -155.27429, + "tags": [ + "fugiat", + "culpa", + "do", + "commodo", + "veniam", + "commodo", + "labore" + ], + "friends": [ + { + "id": 0, + "name": "Irwin Vang" + }, + { + "id": 1, + "name": "Cleo Hudson" + }, + { + "id": 2, + "name": "Luella Doyle" + } + ], + "greeting": "Hello, Corrine Rivera! You have 3 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "668e63350bc0e8df72e6c9fe", + "index": 24, + "guid": "0b243ea1-72d5-4ed8-9a6b-1ca7ec08e36b", + "isActive": true, + "balance": "$2,745.67", + "picture": "http://placehold.it/32x32", + "age": 39, + "eyeColor": "green", + "name": "Lucas Battle", + "gender": "male", + "company": "SENSATE", + "email": "lucasbattle@sensate.com", + "phone": "+1 (905) 420-2542", + "address": "534 Waldane Court, Bowmansville, Puerto Rico, 7544", + "about": "Ex sit consectetur id exercitation cupidatat anim culpa cupidatat. Enim do pariatur pariatur irure exercitation aliquip ullamco veniam quis ex ad magna ipsum labore. In deserunt ad proident aute deserunt labore culpa aliquip. Tempor do deserunt ut elit veniam eu aute minim aliqua officia consectetur ipsum nostrud.\r\n", + "registered": "2018-03-30T09:50:58 -02:00", + "latitude": 6.897382, + "longitude": -35.816738, + "tags": [ + "veniam", + "Lorem", + "reprehenderit", + "elit", + "tempor", + "veniam", + "eu" + ], + "friends": [ + { + "id": 0, + "name": "Sheppard Noel" + }, + { + "id": 1, + "name": "Sadie Pittman" + }, + { + "id": 2, + "name": "Holly Johnston" + } + ], + "greeting": "Hello, Lucas Battle! You have 1 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e6335b98805a5fee7178e", + "index": 25, + "guid": "11f0f451-938b-487a-ae50-10c43bf6ed7d", + "isActive": false, + "balance": "$1,624.40", + "picture": "http://placehold.it/32x32", + "age": 27, + "eyeColor": "brown", + "name": "Lynda Levy", + "gender": "female", + "company": "NIMON", + "email": "lyndalevy@nimon.com", + "phone": "+1 (872) 520-2338", + "address": "780 Veronica Place, Shaft, Massachusetts, 3396", + "about": "Laboris sit incididunt ex irure proident minim in commodo esse amet veniam qui. Elit aliquip deserunt minim consectetur eiusmod ad adipisicing incididunt anim voluptate elit aute et exercitation. Laboris proident est sint voluptate commodo occaecat enim duis. Proident excepteur laborum enim in deserunt amet dolor eiusmod duis et aute. Pariatur et nulla magna cillum nisi deserunt adipisicing ad excepteur. Irure nulla magna reprehenderit dolore adipisicing incididunt duis. Irure consequat ea ullamco eu quis eu esse officia est nisi.\r\n", + "registered": "2017-01-22T03:32:21 -01:00", + "latitude": -14.578009, + "longitude": -114.23704, + "tags": [ + "exercitation", + "aliquip", + "ullamco", + "et", + "sit", + "labore", + "pariatur" + ], + "friends": [ + { + "id": 0, + "name": "Tamika Dennis" + }, + { + "id": 1, + "name": "Colette Solomon" + }, + { + "id": 2, + "name": "Reilly Ellison" + } + ], + "greeting": "Hello, Lynda Levy! You have 4 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e6335bb13940903a8f801", + "index": 26, + "guid": "b4f156d7-73db-462b-94bf-bd687032cec3", + "isActive": false, + "balance": "$1,795.27", + "picture": "http://placehold.it/32x32", + "age": 35, + "eyeColor": "brown", + "name": "Davenport Sanford", + "gender": "male", + "company": "PLASMOSIS", + "email": "davenportsanford@plasmosis.com", + "phone": "+1 (834) 500-2510", + "address": "258 Stratford Road, Muir, Nevada, 2127", + "about": "Enim aliqua quis duis consectetur elit et ullamco et qui. Deserunt ea pariatur sint labore cillum aliquip velit tempor laborum quis. Occaecat sunt velit incididunt commodo consequat reprehenderit sunt ut consectetur eiusmod deserunt aute. Nostrud eu magna cillum ex esse ullamco aliqua nostrud ullamco elit.\r\n", + "registered": "2019-02-25T08:33:44 -01:00", + "latitude": 32.834755, + "longitude": -122.334439, + "tags": [ + "fugiat", + "velit", + "eu", + "amet", + "qui", + "ex", + "sint" + ], + "friends": [ + { + "id": 0, + "name": "Trevino Hampton" + }, + { + "id": 1, + "name": "Ollie Cherry" + }, + { + "id": 2, + "name": "Hinton Beck" + } + ], + "greeting": "Hello, Davenport Sanford! You have 3 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e6335d55879a029714cc5", + "index": 27, + "guid": "c92ea480-f346-44c0-99ea-d0f99b76cc32", + "isActive": true, + "balance": "$1,539.30", + "picture": "http://placehold.it/32x32", + "age": 36, + "eyeColor": "green", + "name": "Billie Justice", + "gender": "female", + "company": "CODACT", + "email": "billiejustice@codact.com", + "phone": "+1 (819) 435-3470", + "address": "257 Stillwell Avenue, Camptown, Nebraska, 8472", + "about": "Laboris excepteur consequat laboris dolore. Cupidatat duis sunt dolore amet excepteur id eiusmod laboris do nisi. Magna irure excepteur consequat fugiat quis magna. Dolor commodo dolore laboris et qui culpa nisi tempor. Elit laboris nulla dolore cillum ad do nulla voluptate quis. Magna occaecat magna non consequat exercitation Lorem eiusmod consectetur magna ad. Ex ex consectetur in ad cupidatat irure.\r\n", + "registered": "2015-05-09T03:25:49 -02:00", + "latitude": 41.873254, + "longitude": 60.280832, + "tags": [ + "ea", + "consectetur", + "ullamco", + "irure", + "sit", + "tempor", + "ea" + ], + "friends": [ + { + "id": 0, + "name": "Macdonald Santana" + }, + { + "id": 1, + "name": "Dennis Nolan" + }, + { + "id": 2, + "name": "Lea Parrish" + } + ], + "greeting": "Hello, Billie Justice! You have 4 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e6335f5bcd2c9c15c99af", + "index": 28, + "guid": "7017b8df-1d04-421a-af95-1135e8d2ca29", + "isActive": true, + "balance": "$1,217.16", + "picture": "http://placehold.it/32x32", + "age": 37, + "eyeColor": "brown", + "name": "Neal Jacobs", + "gender": "male", + "company": "CANDECOR", + "email": "nealjacobs@candecor.com", + "phone": "+1 (840) 431-2365", + "address": "416 Powers Street, Grazierville, Illinois, 4711", + "about": "Sunt anim aliquip deserunt tempor nulla reprehenderit dolor dolor nulla. Eiusmod commodo anim officia pariatur non tempor exercitation cupidatat. Proident magna cupidatat nostrud amet sint duis do do officia reprehenderit veniam qui. Adipisicing culpa sunt sint ex dolor consequat nostrud aute aliquip officia anim ea pariatur. Magna voluptate nulla esse officia occaecat quis reprehenderit pariatur voluptate non laboris incididunt cupidatat. Tempor laborum cillum ea deserunt cillum labore do ut ut incididunt. Nisi eu adipisicing id reprehenderit deserunt laboris deserunt adipisicing exercitation dolor.\r\n", + "registered": "2021-05-22T12:57:22 -02:00", + "latitude": 71.38603, + "longitude": 130.55923, + "tags": [ + "nisi", + "laboris", + "veniam", + "occaecat", + "duis", + "duis", + "ut" + ], + "friends": [ + { + "id": 0, + "name": "Deleon Cain" + }, + { + "id": 1, + "name": "Jami Stanton" + }, + { + "id": 2, + "name": "Callie Wolf" + } + ], + "greeting": "Hello, Neal Jacobs! You have 4 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e633579dbc4062a93ecc8", + "index": 29, + "guid": "786b33b7-6082-4562-8baf-fa6bfc3d8628", + "isActive": true, + "balance": "$1,345.33", + "picture": "http://placehold.it/32x32", + "age": 26, + "eyeColor": "green", + "name": "Gallagher Bailey", + "gender": "male", + "company": "RONELON", + "email": "gallagherbailey@ronelon.com", + "phone": "+1 (939) 562-3471", + "address": "711 Varanda Place, Williamson, Alaska, 3491", + "about": "Eu eiusmod quis tempor sint elit dolor sint cillum excepteur aute. Laborum Lorem amet et aliqua eu culpa. Officia est ad mollit tempor. Sit officia in tempor amet excepteur sunt non ipsum. Aute non dolore pariatur laborum et commodo magna.\r\n", + "registered": "2021-05-27T10:02:18 -02:00", + "latitude": -15.810861, + "longitude": 109.388855, + "tags": [ + "irure", + "cillum", + "aute", + "aliqua", + "dolore", + "aliqua", + "laborum" + ], + "friends": [ + { + "id": 0, + "name": "Mendoza Arnold" + }, + { + "id": 1, + "name": "Foreman Morrison" + }, + { + "id": 2, + "name": "Lydia Holland" + } + ], + "greeting": "Hello, Gallagher Bailey! You have 7 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e633545bd6743fc9a4bf7", + "index": 30, + "guid": "e9b3404d-f767-4bd1-8edf-e734ab163c84", + "isActive": true, + "balance": "$1,396.13", + "picture": "http://placehold.it/32x32", + "age": 21, + "eyeColor": "blue", + "name": "Mccarty Mcpherson", + "gender": "male", + "company": "FUTURITY", + "email": "mccartymcpherson@futurity.com", + "phone": "+1 (877) 481-3412", + "address": "173 Bethel Loop, Deltaville, Maryland, 1446", + "about": "Aliquip elit fugiat ad sint dolor. Duis ullamco commodo proident adipisicing ex exercitation tempor do enim occaecat dolor. Lorem eu qui commodo nisi. Ad velit reprehenderit non incididunt commodo voluptate cupidatat. Consequat exercitation esse ipsum duis culpa ullamco nulla.\r\n", + "registered": "2014-04-01T05:47:04 -02:00", + "latitude": 39.784434, + "longitude": -29.43002, + "tags": [ + "enim", + "adipisicing", + "qui", + "excepteur", + "in", + "occaecat", + "do" + ], + "friends": [ + { + "id": 0, + "name": "Gabrielle Moss" + }, + { + "id": 1, + "name": "Sandoval Lloyd" + }, + { + "id": 2, + "name": "Mia York" + } + ], + "greeting": "Hello, Mccarty Mcpherson! You have 4 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e6335eaaedb2822045479", + "index": 31, + "guid": "e30b5873-f712-405c-91d7-3f2dac7cf2bf", + "isActive": false, + "balance": "$3,714.03", + "picture": "http://placehold.it/32x32", + "age": 36, + "eyeColor": "green", + "name": "Tillman Adkins", + "gender": "male", + "company": "KINETICUT", + "email": "tillmanadkins@kineticut.com", + "phone": "+1 (904) 593-2373", + "address": "302 Mermaid Avenue, Idamay, Indiana, 8530", + "about": "Amet cupidatat sint culpa dolore tempor ullamco irure aliquip anim. In laboris est nisi id elit laborum adipisicing laboris ea. Aute laboris voluptate eiusmod sit mollit aute exercitation nulla minim et aliqua id. Id voluptate do reprehenderit proident consectetur.\r\n", + "registered": "2022-12-08T06:55:07 -01:00", + "latitude": 17.102052, + "longitude": -130.01172, + "tags": [ + "exercitation", + "sunt", + "velit", + "culpa", + "adipisicing", + "occaecat", + "quis" + ], + "friends": [ + { + "id": 0, + "name": "Odonnell Rutledge" + }, + { + "id": 1, + "name": "Juliette Morgan" + }, + { + "id": 2, + "name": "Dillard Bauer" + } + ], + "greeting": "Hello, Tillman Adkins! You have 7 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e6335227dcf24518e5774", + "index": 32, + "guid": "82f7ece2-8bc2-4575-bbfe-7d2af083b736", + "isActive": false, + "balance": "$3,799.75", + "picture": "http://placehold.it/32x32", + "age": 32, + "eyeColor": "green", + "name": "Georgina Weiss", + "gender": "female", + "company": "PURIA", + "email": "georginaweiss@puria.com", + "phone": "+1 (989) 544-2037", + "address": "458 Hart Place, Oberlin, Virginia, 1378", + "about": "Proident in sit exercitation sunt quis minim reprehenderit in. Deserunt labore minim ea magna excepteur ex. Consectetur excepteur amet culpa duis duis. Cupidatat eu duis anim Lorem sint ad enim anim mollit ullamco incididunt est velit adipisicing. Do laboris aute excepteur exercitation laboris amet nostrud irure. Esse do do aute mollit aliqua aliqua labore.\r\n", + "registered": "2016-02-27T03:28:55 -01:00", + "latitude": -22.92394, + "longitude": 156.354827, + "tags": [ + "et", + "et", + "et", + "adipisicing", + "pariatur", + "exercitation", + "consectetur" + ], + "friends": [ + { + "id": 0, + "name": "Jane Howell" + }, + { + "id": 1, + "name": "Bradley Nieves" + }, + { + "id": 2, + "name": "Klein Mercado" + } + ], + "greeting": "Hello, Georgina Weiss! You have 6 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "668e63351ac7fad166beb8bb", + "index": 33, + "guid": "e6ee76bd-6e44-4816-a38c-67902fe16112", + "isActive": false, + "balance": "$3,865.79", + "picture": "http://placehold.it/32x32", + "age": 23, + "eyeColor": "blue", + "name": "Bonita Cardenas", + "gender": "female", + "company": "NEWCUBE", + "email": "bonitacardenas@newcube.com", + "phone": "+1 (811) 450-3757", + "address": "963 Willow Place, Wyano, Wyoming, 7260", + "about": "Aute reprehenderit esse mollit est quis minim magna tempor laboris consectetur quis et. Nisi enim cupidatat esse dolore labore. Amet velit velit mollit deserunt magna deserunt fugiat non duis officia tempor incididunt. Aliquip aliqua ipsum reprehenderit do officia. Nulla reprehenderit non occaecat occaecat nisi id. Id elit excepteur qui exercitation sit aliquip non et consectetur. Nisi id et qui ad laboris ipsum sunt aliquip exercitation officia quis aute.\r\n", + "registered": "2022-10-13T12:00:03 -02:00", + "latitude": -71.344808, + "longitude": 50.786575, + "tags": [ + "in", + "aute", + "occaecat", + "excepteur", + "deserunt", + "esse", + "proident" + ], + "friends": [ + { + "id": 0, + "name": "Blair Randolph" + }, + { + "id": 1, + "name": "Hazel Sears" + }, + { + "id": 2, + "name": "Mae James" + } + ], + "greeting": "Hello, Bonita Cardenas! You have 10 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e6335353861333c8d70d4", + "index": 34, + "guid": "9c28a164-771d-4e57-a6cc-4a5ccfc0bede", + "isActive": false, + "balance": "$2,523.96", + "picture": "http://placehold.it/32x32", + "age": 40, + "eyeColor": "green", + "name": "Marla Cox", + "gender": "female", + "company": "ZIDOX", + "email": "marlacox@zidox.com", + "phone": "+1 (937) 584-2172", + "address": "590 Legion Street, Iberia, New Mexico, 8917", + "about": "Labore ipsum velit eiusmod esse labore laboris eu aute nostrud ullamco pariatur. Sit aliqua nulla irure excepteur deserunt culpa culpa esse dolor ipsum non officia. Amet et deserunt culpa et reprehenderit officia qui dolor qui. Sit ipsum laboris ut ullamco adipisicing cillum aliqua eu cupidatat excepteur duis est eu.\r\n", + "registered": "2024-01-15T11:36:54 -01:00", + "latitude": -28.626493, + "longitude": -84.299474, + "tags": [ + "labore", + "occaecat", + "ea", + "id", + "amet", + "sint", + "adipisicing" + ], + "friends": [ + { + "id": 0, + "name": "Kay Grimes" + }, + { + "id": 1, + "name": "Margret Santiago" + }, + { + "id": 2, + "name": "Dickson Brady" + } + ], + "greeting": "Hello, Marla Cox! You have 10 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e63356564f24d113d340b", + "index": 35, + "guid": "8bd3ed6a-6cad-4681-a580-8319f4e93573", + "isActive": true, + "balance": "$1,846.19", + "picture": "http://placehold.it/32x32", + "age": 31, + "eyeColor": "brown", + "name": "Moon Bright", + "gender": "male", + "company": "GEEKFARM", + "email": "moonbright@geekfarm.com", + "phone": "+1 (833) 468-2767", + "address": "633 Hornell Loop, Lavalette, Kentucky, 4427", + "about": "Nisi est consectetur commodo duis qui Lorem. Et excepteur ipsum minim reprehenderit aliqua culpa. Ipsum est laborum commodo fugiat ut sunt ipsum mollit quis Lorem excepteur cupidatat tempor ad. Lorem Lorem fugiat dolor in cupidatat velit est exercitation consequat deserunt. Et deserunt esse cillum occaecat voluptate esse elit est exercitation nostrud reprehenderit cupidatat Lorem duis. Incididunt id velit exercitation non voluptate esse. Culpa reprehenderit sunt minim aliquip magna commodo do aliquip mollit mollit excepteur minim quis quis.\r\n", + "registered": "2016-06-10T12:24:03 -02:00", + "latitude": -71.4274, + "longitude": -82.632707, + "tags": [ + "laboris", + "eiusmod", + "nostrud", + "exercitation", + "aliquip", + "qui", + "cupidatat" + ], + "friends": [ + { + "id": 0, + "name": "Mejia Petersen" + }, + { + "id": 1, + "name": "Silva Valencia" + }, + { + "id": 2, + "name": "Dalton Meyer" + } + ], + "greeting": "Hello, Moon Bright! You have 3 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "668e6335ea314df2e7a89171", + "index": 36, + "guid": "3c9964f5-6eba-4c64-bea2-88ec2491a684", + "isActive": true, + "balance": "$1,986.31", + "picture": "http://placehold.it/32x32", + "age": 37, + "eyeColor": "brown", + "name": "Baird Glover", + "gender": "male", + "company": "MAZUDA", + "email": "bairdglover@mazuda.com", + "phone": "+1 (949) 595-2524", + "address": "836 Norfolk Street, Elliott, Virgin Islands, 1247", + "about": "Aliqua exercitation nostrud nisi laborum id. Ex eu duis magna eiusmod ad et veniam ea nisi et est voluptate nisi. Ut aliquip est non amet ipsum ipsum nulla dolore commodo laborum et non. Et minim cupidatat esse magna voluptate cupidatat do culpa anim do exercitation. Exercitation pariatur pariatur dolor quis ea aute enim occaecat nostrud ut. Id et amet incididunt consectetur. Et labore ut occaecat ullamco ea nisi magna amet occaecat.\r\n", + "registered": "2016-11-15T12:00:07 -01:00", + "latitude": 55.584797, + "longitude": -107.451752, + "tags": [ + "velit", + "non", + "commodo", + "dolore", + "consectetur", + "est", + "sunt" + ], + "friends": [ + { + "id": 0, + "name": "Yesenia Hopkins" + }, + { + "id": 1, + "name": "Robin Lawrence" + }, + { + "id": 2, + "name": "Nikki Woodward" + } + ], + "greeting": "Hello, Baird Glover! You have 7 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "668e6335084a5505786eb53a", + "index": 37, + "guid": "ea4cb9be-1248-4ccb-a89d-3a631310363a", + "isActive": true, + "balance": "$1,348.16", + "picture": "http://placehold.it/32x32", + "age": 22, + "eyeColor": "green", + "name": "Terry Velasquez", + "gender": "male", + "company": "STOCKPOST", + "email": "terryvelasquez@stockpost.com", + "phone": "+1 (953) 491-2984", + "address": "171 Hull Street, Seymour, Palau, 1314", + "about": "Fugiat tempor elit eiusmod ad amet eu et aute occaecat aute deserunt laboris ullamco. Dolor exercitation commodo sint dolore qui incididunt tempor. Mollit exercitation ad eiusmod ipsum laboris minim officia dolore aute velit magna elit occaecat. Occaecat incididunt officia nisi consectetur nulla ea sit ad laborum.\r\n", + "registered": "2021-08-02T06:32:19 -02:00", + "latitude": -88.098162, + "longitude": 52.015462, + "tags": [ + "ea", + "incididunt", + "Lorem", + "ut", + "sunt", + "anim", + "duis" + ], + "friends": [ + { + "id": 0, + "name": "Riddle Forbes" + }, + { + "id": 1, + "name": "Burt Bates" + }, + { + "id": 2, + "name": "Susanne Wood" + } + ], + "greeting": "Hello, Terry Velasquez! You have 4 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "668e633559f43d8d960a19e2", + "index": 38, + "guid": "4f2c9813-3d4b-4036-9d84-c0191f82b30a", + "isActive": false, + "balance": "$3,152.05", + "picture": "http://placehold.it/32x32", + "age": 33, + "eyeColor": "brown", + "name": "Singleton Middleton", + "gender": "male", + "company": "PHOTOBIN", + "email": "singletonmiddleton@photobin.com", + "phone": "+1 (827) 414-3862", + "address": "508 Hooper Street, Driftwood, District Of Columbia, 4400", + "about": "Esse ipsum est consectetur consectetur consectetur irure eiusmod. Non pariatur do cillum irure laborum tempor elit qui cupidatat. Eiusmod veniam quis consequat pariatur commodo. Officia amet aliquip incididunt Lorem commodo esse deserunt.\r\n", + "registered": "2017-01-10T12:16:55 -01:00", + "latitude": 28.224496, + "longitude": 85.515019, + "tags": [ + "elit", + "incididunt", + "ea", + "voluptate", + "magna", + "excepteur", + "nulla" + ], + "friends": [ + { + "id": 0, + "name": "Lucy Coleman" + }, + { + "id": 1, + "name": "Emerson Greer" + }, + { + "id": 2, + "name": "Lorene Bolton" + } + ], + "greeting": "Hello, Singleton Middleton! You have 4 unread messages.", + "favoriteFruit": "banana" + } +] \ No newline at end of file diff --git a/http/http-advanced-reactive/src/test/resources/football-empty-teams.json b/http/http-advanced-reactive/src/test/resources/football-empty-teams.json new file mode 100644 index 0000000000..b441f670f3 --- /dev/null +++ b/http/http-advanced-reactive/src/test/resources/football-empty-teams.json @@ -0,0 +1,47 @@ +[ + { + "name": "Germany", + "colorTShirt": "White", + "euroCups": 3 + }, + { + "name": "", + "colorTShirt": "", + "euroCups": 3 + }, + { + "name": "France", + "colorTShirt": "Blue", + "euroCups": 2 + }, + { + "name": "Denmark", + "colorTShirt": "White", + "euroCups": 1 + }, + { + "name": "Italy", + "colorTShirt": "Blue", + "euroCups": 2 + }, + { + "name": "England", + "colorTShirt": "White", + "euroCups": 1 + }, + { + "name": "Netherlands", + "colorTShirt": "Orange", + "euroCups": 1 + }, + { + "name": "Portugal", + "colorTShirt": "Red", + "euroCups": 1 + }, + { + "name": "Czechia", + "colorTShirt": "", + "euroCups": 0 + } +] diff --git a/http/http-advanced-reactive/src/test/resources/football-teams.json b/http/http-advanced-reactive/src/test/resources/football-teams.json new file mode 100644 index 0000000000..fbc61a0451 --- /dev/null +++ b/http/http-advanced-reactive/src/test/resources/football-teams.json @@ -0,0 +1,210 @@ +[ + { + "name": "Germany", + "colorTShirt": "White", + "euroCups": 3, + "foundationDate": "1900-01-01", + "stadium": "Olympiastadion", + "keyPlayers": ["Miroslav Klose", "Philipp Lahm", "Manuel Neuer"] + }, + { + "name": "Spain", + "colorTShirt": "Red", + "euroCups": 3, + "foundationDate": "1913-03-29", + "stadium": "Santiago Bernabeu", + "keyPlayers": ["Xavi", "Iker Casillas", "Sergio Ramos"] + }, + { + "name": "France", + "colorTShirt": "Blue", + "euroCups": 2, + "foundationDate": "1919-12-07", + "stadium": "Stade de France", + "keyPlayers": ["Zinedine Zidane", "Thierry Henry", "Michel Platini"] + }, + { + "name": "Denmark", + "colorTShirt": "White", + "euroCups": 1, + "foundationDate": "1889-05-18", + "stadium": "Parken Stadium", + "keyPlayers": ["Peter Schmeichel", "Michael Laudrup", "Christian Eriksen"] + }, + { + "name": "Italy", + "colorTShirt": "Blue", + "euroCups": 2, + "foundationDate": "1898-03-15", + "stadium": "San Siro", + "keyPlayers": ["Paolo Maldini", "Roberto Baggio", "Gianluigi Buffon"] + }, + { + "name": "England", + "colorTShirt": "White", + "euroCups": 1, + "foundationDate": "1863-10-26", + "stadium": "Wembley Stadium", + "keyPlayers": ["David Beckham", "Wayne Rooney", "Bobby Charlton"] + }, + { + "name": "Netherlands", + "colorTShirt": "Orange", + "euroCups": 1, + "foundationDate": "1889-12-08", + "stadium": "Johan Cruyff Arena", + "keyPlayers": ["Johan Cruyff", "Ruud Gullit", "Marco van Basten"] + }, + { + "name": "Portugal", + "colorTShirt": "Red", + "euroCups": 1, + "foundationDate": "1914-12-31", + "stadium": "Estadio da Luz", + "keyPlayers": ["Cristiano Ronaldo", "Luis Figo", "Eusebio"] + }, + { + "name": "Czechia", + "colorTShirt": "White", + "euroCups": 0, + "foundationDate": "1901-10-21", + "stadium": "Generali Arena", + "keyPlayers": ["Pavel Nedved", "Petr Cech", "Tomas Rosicky"] + }, + { + "name": "Switzerland", + "colorTShirt": "Red", + "euroCups": 0, + "foundationDate": "1895-07-04", + "stadium": "St. Jakob-Park", + "keyPlayers": ["Xherdan Shaqiri", "Granit Xhaka", "Stephan Lichtsteiner"] + }, + { + "name": "Sweden", + "colorTShirt": "Yellow", + "euroCups": 0, + "foundationDate": "1904-06-12", + "stadium": "Friends Arena", + "keyPlayers": ["Zlatan Ibrahimovic", "Henrik Larsson", "Freddie Ljungberg"] + }, + { + "name": "Belgium", + "colorTShirt": "Red", + "euroCups": 0, + "foundationDate": "1895-09-01", + "stadium": "King Baudouin Stadium", + "keyPlayers": ["Eden Hazard", "Kevin De Bruyne", "Romelu Lukaku"] + }, + { + "name": "Croatia", + "colorTShirt": "Red and White", + "euroCups": 0, + "foundationDate": "1912-08-20", + "stadium": "Maksimir Stadium", + "keyPlayers": ["Luka Modric", "Ivan Rakitic", "Davor Suker"] + }, + { + "name": "Russia", + "colorTShirt": "Red", + "euroCups": 1, + "foundationDate": "1912-01-01", + "stadium": "Luzhniki Stadium", + "keyPlayers": ["Lev Yashin", "Andrey Arshavin", "Igor Akinfeev"] + }, + { + "name": "Turkey", + "colorTShirt": "Red", + "euroCups": 0, + "foundationDate": "1923-04-01", + "stadium": "Ataturk Olympic Stadium", + "keyPlayers": ["Hakan Sukur", "Arda Turan", "Rustu Recber"] + }, + { + "name": "Poland", + "colorTShirt": "White", + "euroCups": 0, + "foundationDate": "1919-12-20", + "stadium": "National Stadium", + "keyPlayers": ["Robert Lewandowski", "Zbigniew Boniek", "Jakub Blaszczykowski"] + }, + { + "name": "Ukraine", + "colorTShirt": "Yellow", + "euroCups": 0, + "foundationDate": "1991-12-20", + "stadium": "Olympic Stadium", + "keyPlayers": ["Andriy Shevchenko", "Serhiy Rebrov", "Anatoliy Tymoshchuk"] + }, + { + "name": "Romania", + "colorTShirt": "Yellow", + "euroCups": 0, + "foundationDate": "1909-05-06", + "stadium": "Arena Nationala", + "keyPlayers": ["Gheorghe Hagi", "Adrian Mutu", "Dan Petrescu"] + }, + { + "name": "Austria", + "colorTShirt": "Red", + "euroCups": 0, + "foundationDate": "1904-03-01", + "stadium": "Ernst Happel Stadium", + "keyPlayers": ["David Alaba", "Herbert Prohaska", "Toni Polster"] + }, + { + "name": "Hungary", + "colorTShirt": "Red", + "euroCups": 0, + "foundationDate": "1901-06-15", + "stadium": "Puskas Arena", + "keyPlayers": ["Ferenc Puskas", "Laszlo Kubala", "Sandor Kocsis"] + }, + { + "name": "Serbia", + "colorTShirt": "Red", + "euroCups": 0, + "foundationDate": "1919-12-01", + "stadium": "Rajko Mitic Stadium", + "keyPlayers": ["Nemanja Vidic", "Dejan Stankovic", "Dragan Dzajic"] + }, + { + "name": "Scotland", + "colorTShirt": "Blue", + "euroCups": 0, + "foundationDate": "1873-03-13", + "stadium": "Hampden Park", + "keyPlayers": ["Kenny Dalglish", "Denis Law", "Jim Baxter"] + }, + { + "name": "Wales", + "colorTShirt": "Red", + "euroCups": 0, + "foundationDate": "1876-03-25", + "stadium": "Cardiff City Stadium", + "keyPlayers": ["Gareth Bale", "Ryan Giggs", "John Charles"] + }, + { + "name": "Northern Ireland", + "colorTShirt": "Green", + "euroCups": 0, + "foundationDate": "1880-04-18", + "stadium": "Windsor Park", + "keyPlayers": ["George Best", "Pat Jennings", "David Healy"] + }, + { + "name": "Republic of Ireland", + "colorTShirt": "Green", + "euroCups": 0, + "foundationDate": "1921-09-02", + "stadium": "Aviva Stadium", + "keyPlayers": ["Robbie Keane", "Roy Keane", "Damien Duff"] + }, + { + "name": "Greece", + "colorTShirt": "Blue", + "euroCups": 1, + "foundationDate": "1926-11-15", + "stadium": "Olympic Stadium", + "keyPlayers": ["Theodoros Zagorakis", "Giorgos Karagounis", "Angelos Charisteas"] + } +] diff --git a/http/http-advanced-reactive/src/test/resources/football-teams_invalid.json b/http/http-advanced-reactive/src/test/resources/football-teams_invalid.json new file mode 100644 index 0000000000..8dcb025f82 --- /dev/null +++ b/http/http-advanced-reactive/src/test/resources/football-teams_invalid.json @@ -0,0 +1,48 @@ +[ + { + "name": "Germany", + "colorTShirt": "White", + "euroCups": 3 + } + { + "name": "Spain", + "colorTShirt": "Red", + "euroCups": 3 + } + invalid + { + "name": "France", + "colorTShirt": "Blue", + "euroCups": + }, + { + "name": "Denmark", + "colorTShirt": "White", + "euroCups": 1 + }, + { + "name": "Italy", + "colorTShirt": "Blue", + "euroCups": 2 + }, + { + "name": "England", + "colorTShirt": "White", + "euroCups": 1 + }, + { + "name": "Netherlands", + "colorTShirt": "Orange", + "euroCups": 1 + }, + { + "name": "Portugal", + "colorTShirt": "Red", + "euroCups": 1 + }, + { + "name": "Czechia", + "colorTShirt": "White", + "euroCups": 0 + } +] diff --git a/http/http-advanced-reactive/src/test/resources/nonjson.properties b/http/http-advanced-reactive/src/test/resources/oidcdisable.properties similarity index 100% rename from http/http-advanced-reactive/src/test/resources/nonjson.properties rename to http/http-advanced-reactive/src/test/resources/oidcdisable.properties