Mock Data

You can generate your own mockdata at https://mockaroo.com/

Reading Mock Data file :

  • Place your mock data in your resource folder
  • Write the below piece of code to read your data
public class MockData {

  public static ImmutableList<Person> getPeople() throws IOException {
    InputStream inputStream = Resources.getResource("people.json").openStream();
    String json = IOUtils.toString(inputStream);
    Type listType = new TypeToken<ArrayList<Person>>() {
    }.getType();
    List<Person> people = new Gson().fromJson(json, listType);
    return ImmutableList.copyOf(people);
  }

  public static ImmutableList<Car> getCars() throws IOException {
    InputStream inputStream = Resources.getResource("cars.json").openStream();
    String json = IOUtils.toString(inputStream);
    Type listType = new TypeToken<ArrayList<Car>>() {
    }.getType();
    List<Car> cars = new Gson().fromJson(json, listType);
    return ImmutableList.copyOf(cars);
  }

build.gradle

plugins {
    id 'java'
    id 'application'
}

repositories {
    jcenter()
}

dependencies {
    implementation 'com.google.guava:guava:28.0-jre'
    testImplementation 'junit:junit:4.12'
	testImplementation 'com.google.guava:guava:11.0.2'
	testImplementation 'org.assertj:assertj-core:3.6.1'
	testImplementation 'com.google.code.gson:gson:2.3.1'
	testImplementation 'commons-io:commons-io:2.6'
}

application {
    mainClassName = 'java8.App'
}

Below are the json file downloaded from mockaroo (people.json and cars.json)

Beans :

package beans;

public class Car {

  private final Integer id;
  private final String make;
  private final String model;
  private final String color;
  private final Integer year;
  private final Double price;


  public Car(Integer id, String make, String model, String color, Integer year,
      Double price) {
    this.id = id;
    this.make = make;
    this.model = model;
    this.color = color;
    this.year = year;
    this.price = price;
  }

  public Integer getId() {
    return id;
  }

  public String getMake() {
    return make;
  }

  public String getModel() {
    return model;
  }

  public String getColor() {
    return color;
  }

  public Integer getYear() {
    return year;
  }

  public Double getPrice() {
    return price;
  }

  @Override
  public String toString() {
    return "Car{" +
        "id=" + id +
        ", make='" + make + '\'' +
        ", model='" + model + '\'' +
        ", color='" + color + '\'' +
        ", year=" + year +
        ", price=" + price +
        '}';
  }
}
package beans;

public class Person {

  final Integer id;
  final String firstName;
  final String lastName;
  final String email;
  final String gender;
  final Integer age;

  public Person(Integer id, String firstName, String lastName, String email, String gender,
      Integer age) {
    this.id = id;
    this.firstName = firstName;
    this.lastName = lastName;
    this.email = email;
    this.gender = gender;
    this.age = age;
  }

  public Integer getId() {
    return id;
  }

  public String getFirstName() {
    return firstName;
  }

  public String getLastName() {
    return lastName;
  }

  public String getEmail() {
    return email;
  }

  public String getGender() {
    return gender;
  }

  public Integer getAge() {
    return age;
  }

  @Override
  public String toString() {
    return "Person{" +
        "id=" + id +
        ", firstName='" + firstName + '\'' +
        ", lastName='" + lastName + '\'' +
        ", email='" + email + '\'' +
        ", gender='" + gender + '\'' +
        ", age=" + age +
        '}';
  }
}
package beans;

public class PersonDTO {

  private final Integer id;
  private final String name;
  private final Integer age;

  public PersonDTO(Integer id, String name, Integer age) {
    this.id = id;
    this.name = name;
    this.age = age;
  }

  public Integer getId() {
    return id;
  }

  public String getName() {
    return name;
  }

  public Integer getAge() {
    return age;
  }


  @Override
  public String toString() {
    return "PeopleDTO{" +
        "id=" + id +
        ", name='" + name + '\'' +
        ", age=" + age +
        '}';
  }

  public static PersonDTO map(Person person) {
    return new PersonDTO(person.getId(), person.getFirstName(), person.getAge());
  }
}

Example :

  @Test
  public void declarativeApproachUsingStreams() throws Exception {
    ImmutableList<Person> people = MockData.getPeople();
    
    MockData.getPeople()
      .stream()
      .filter(p -> p.getAge() <= 18)
      .limit(10)
      .collect(Collectors.toList())
      .forEach(System.out::println);
  }

Leave a Comment