Skip to content

Commit

Permalink
Add unit-test case for List of objects
Browse files Browse the repository at this point in the history
  • Loading branch information
TranNgocKhoa committed Jun 1, 2020
1 parent 2652909 commit bc2b9c2
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@
*/
package org.apache.commons.lang3.builder;

import org.apache.commons.lang3.builder.ToStringStyleTest.Hobby;
import org.apache.commons.lang3.builder.ToStringStyleTest.Person;
import org.apache.commons.lang3.builder.ToStringStyleTest.Student;
import org.apache.commons.lang3.builder.ToStringStyleTest.Teacher;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
Expand Down Expand Up @@ -213,6 +213,38 @@ public void testArrayEnum() {

}

@Test
public void testCombineListAndEnum() {
Teacher teacher = new Teacher();

Hobby[] teacherHobbies = new Hobby[3];
teacherHobbies[0] = Hobby.BOOK;
teacherHobbies[1] = Hobby.SPORT;
teacherHobbies[2] = Hobby.MUSIC;

teacher.setHobbies(teacherHobbies);

Student john = new Student();
john.setHobbies(Arrays.asList(Hobby.BOOK, Hobby.MUSIC));

Student alice = new Student();
alice.setHobbies(new ArrayList<>());

Student bob = new Student();
bob.setHobbies(Collections.singletonList(Hobby.BOOK));

ArrayList<Student> students = new ArrayList<>();
students.add(john);
students.add(alice);
students.add(bob);

AcademyClass academyClass = new AcademyClass();
academyClass.setStudents(students);
academyClass.setTeacher(teacher);

assertEquals(academyClass.toString(), "{\"students\":[{\"hobbies\":[\"BOOK\",\"MUSIC\"]},{\"hobbies\":[]},{\"hobbies\":[\"BOOK\"]}],\"teacher\":{\"hobbies\":[\"BOOK\",\"SPORT\",\"MUSIC\"]}}");
}

@Test
public void testPerson() {
final Person p = new Person();
Expand Down Expand Up @@ -509,4 +541,70 @@ static class NestingPerson {
*/
Person person;
}

enum Hobby {
SPORT,
BOOK,
MUSIC
}

static class Student {
List<Hobby> hobbies;

public List<Hobby> getHobbies() {
return hobbies;
}

public void setHobbies(List<Hobby> hobbies) {
this.hobbies = hobbies;
}

@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

static class Teacher {
Hobby[] hobbies;

public Hobby[] getHobbies() {
return hobbies;
}

public void setHobbies(Hobby[] hobbies) {
this.hobbies = hobbies;
}

@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

static class AcademyClass {
Teacher teacher;
List<Student> students;

public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}

public void setStudents(List<Student> students) {
this.students = students;
}

public Teacher getTeacher() {
return teacher;
}

public List<Student> getStudents() {
return students;
}

@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@

import org.junit.jupiter.api.Test;

import java.util.List;

import static org.junit.jupiter.api.Assertions.assertEquals;

/**
Expand Down Expand Up @@ -137,44 +135,4 @@ static class Person {
*/
boolean smoker;
}

enum Hobby {
SPORT,
BOOK,
MUSIC
}

static class Student {
List<Hobby> hobbies;

public List<Hobby> getHobbies() {
return hobbies;
}

public void setHobbies(List<Hobby> hobbies) {
this.hobbies = hobbies;
}

@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

static class Teacher {
Hobby[] hobbies;

public Hobby[] getHobbies() {
return hobbies;
}

public void setHobbies(Hobby[] hobbies) {
this.hobbies = hobbies;
}

@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
}

0 comments on commit bc2b9c2

Please sign in to comment.